10#include <initializer_list>
17template <
typename Scalar>
18class BasisPairCreator;
20template <
typename Scalar>
23template <
typename Scalar>
33 KetPair(Private , std::initializer_list<size_t> atomic_indices,
38 std::shared_ptr<KetPair<Scalar>>
50 std::vector<size_t> atomic_indices;
51 std::vector<std::shared_ptr<const BasisAtom<Scalar>>> atomic_bases;
53 calculate_quantum_number_f(
const std::vector<size_t> &indices,
56 calculate_quantum_number_m(
const std::vector<size_t> &indices,
59 calculate_parity(
const std::vector<size_t> &indices,
Class for creating a basis of atomic kets.
bool operator==(const KetPair< Scalar > &other) const
std::string get_label() const override
std::vector< std::shared_ptr< const BasisAtom< Scalar > > > get_atomic_states() const
bool operator!=(const KetPair< Scalar > &other) const
std::shared_ptr< KetPair< Scalar > > get_ket_for_different_quantum_number_m(real_t new_quantum_number_m) const
KetPair(Private, std::initializer_list< size_t > atomic_indices, std::initializer_list< std::shared_ptr< const BasisAtom< Scalar > > > atomic_bases, real_t energy)
std::size_t operator()(const KetPair< Scalar > &k) const
Helper struct to extract types from a numerical type.