ARTS 2.5.11 (git: 725533f0)
quantum_numbers.h File Reference
#include <algorithm>
#include <compare>
#include <cstddef>
#include <istream>
#include <limits>
#include <ostream>
#include <sstream>
#include <string>
#include <string_view>
#include <utility>
#include <variant>
#include <vector>
#include "debug.h"
#include "enums.h"
#include "isotopologues.h"
#include "matpack_concepts.h"
#include "nonstd.h"
#include "rational.h"

Go to the source code of this file.

Classes

struct  Quantum::Number::StringValue
 Holds string values but can only hold sizeof(Index) long values. More...
 
struct  Quantum::Number::IntegerValue
 Holds integer values. More...
 
struct  Quantum::Number::HalfIntegerValue
 Holds half integer values, but only its denominator. More...
 
union  Quantum::Number::ValueHolder
 A union of the three type of values we need to consider. More...
 
struct  Quantum::Number::ValueDescription
 A complete description of a value, its type and value. More...
 
struct  Quantum::Number::TwoLevelValueHolder
 The values of two levels. More...
 
struct  Quantum::Number::LevelMatch
 Struct that converts to bool automatically but allows checking both energy levels matching status. More...
 
struct  Quantum::Number::Value
 A complete quantum number value with type information. More...
 
struct  Quantum::Number::CheckMatch
 Status of comparing two lists that are supposedly of some type. More...
 
class  Quantum::Number::ValueList
 A list of many quantum numbers. Should always remain sorted. More...
 
struct  Quantum::Number::LocalState
 A logical struct for local quantum numbers. More...
 
struct  Quantum::Number::LevelTest
 
struct  Quantum::Number::GlobalState
 A logical struct for global quantum numbers with species identifiers. More...
 
struct  Quantum::Number::StateMatch
 StateMatchType operates so that a check less than a level should be 'better', bar None. More...
 

Namespaces

namespace  Quantum
 
namespace  Quantum::Number
 

Typedefs

using QuantumNumberType = Quantum::Number::Type
 
using QuantumNumberValue = Quantum::Number::Value
 
using QuantumNumberValueList = Quantum::Number::ValueList
 
using QuantumNumberLocalState = Quantum::Number::LocalState
 
using QuantumIdentifier = Quantum::Number::GlobalState
 
using ArrayOfQuantumIdentifier = Array< QuantumIdentifier >
 

Functions

 Quantum::Number::ENUMCLASS (Type, char, alpha, config, ElecStateLabel, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, I, J, K, Ka, Kc, L, Lambda, N, Omega, S, Sigma, SpinComponentLabel, asSym, elecInv, elecRefl, elecSym, kronigParity, l, l1, l10, l11, l12, l2, l3, l4, l5, l6, l7, l8, l9, n, parity, r, rotSym, rovibSym, sym, tau, term, v, v1, v10, v11, v12, v2, v3, v4, v5, v6, v7, v8, v9, vibInv, vibRefl, vibSym) const expr ValueType common_value_type(Type type) noexcept
 Three tags, S: str, I: index, H: half-index.
 
constexpr ValueType Quantum::Number::common_value_type (ValueType a, ValueType b) noexcept
 Return a common type between a and b.
 
constexpr std::strong_ordering Quantum::Number::cmp (std::strong_ordering &&a, std::strong_ordering &&b)
 
constexpr ValueDescription Quantum::Number::value_holder (Rational r_)
 Takes a rational and determine which type of quantum number it is, returning this information or throwing a runtime error if there's an error.
 
constexpr Rational Quantum::Number::cast_qnrat (std::string_view s) noexcept
 Returns a rational if possible or RATIONAL_UNDEFINED otherwise.
 
constexpr ValueDescription Quantum::Number::value_holder (std::string_view s, Type t)
 Returns a value description for the quantum number.
 
constexpr Index Quantum::Number::count_items (std::string_view s) noexcept
 Count all space-separated items in s.
 
constexpr std::string_view Quantum::Number::rstrip (std::string_view x)
 Strips spaces at the end of x before returning it.
 
constexpr std::string_view Quantum::Number::lstrip (std::string_view x)
 Strips spaces at the beginning x before returning it.
 
constexpr std::string_view Quantum::Number::strip (std::string_view x)
 Strips spaces at the beginning and end of x before returning it.
 
template<std::size_t n = 1>
constexpr std::string_view Quantum::Number::items (std::string_view s, std::size_t i) noexcept
 Get a view of a number of space-separated items from the list.
 
constexpr CheckValue Quantum::Number::update (CheckValue val, CheckValue res) noexcept
 Updates old by what a new check says it should be.
 
constexpr CheckMatch Quantum::Number::update (CheckMatch val, CheckValue res) noexcept
 Updates old by what a new check says it should be.
 
constexpr CheckMatch Quantum::Number::update (CheckMatch val, CheckMatch res) noexcept
 Updates old by what a new check says it should be.
 
template<size_t N>
constexpr bool Quantum::Number::is_sorted (const std::array< Type, N > &types) noexcept
 Checks if an array of types is sorted.
 
ValueList Quantum::Number::from_hitran (std::string_view upp, std::string_view low)
 
 Quantum::Number::ENUMCLASS (VAMDC, char, asymcs, asymos, dcs, hunda, hundb, lpcs, lpos, ltcs, ltos, nltcs, nltos, sphcs, sphos, stcs) bool vamdcCheck(const ValueList &l
 VAMDC classes of quantum number cases.
 

Variables

constexpr Index quantum_number_error_value = -999'999'999
 
VAMDC type Quantum::Number::ARTS_NOEXCEPT
 
constexpr std::array Quantum::Number::global_types
 A default state of global quantum numbers.
 
constexpr std::array Quantum::Number::local_types
 A default state of local quantum numbers.
 

Typedef Documentation

◆ ArrayOfQuantumIdentifier

◆ QuantumIdentifier

◆ QuantumNumberLocalState

◆ QuantumNumberType

using QuantumNumberType = Quantum::Number::Type

Definition at line 1218 of file quantum_numbers.h.

◆ QuantumNumberValue

Definition at line 1219 of file quantum_numbers.h.

◆ QuantumNumberValueList

Variable Documentation

◆ quantum_number_error_value

constexpr Index quantum_number_error_value = -999'999'999
constexpr

Definition at line 24 of file quantum_numbers.h.

Referenced by Quantum::Number::value_holder().