File indexing completed on 2025-04-19 09:10:07
0001 #ifndef METOOLS__Main__Polarization_Index_H
0002 #define METOOLS__Main__Polarization_Index_H
0003
0004 #include <vector>
0005 #include <cstddef>
0006 #include <string>
0007
0008 namespace METOOLS {
0009
0010 class Polarization_Index {
0011 protected:
0012
0013
0014
0015
0016 std::vector<int> m_spins;
0017 std::string m_id;
0018
0019 size_t m_n;
0020
0021 public:
0022
0023 inline Polarization_Index(): m_n(0) {}
0024 inline Polarization_Index(const std::vector<int> &spins) { Init(spins); }
0025
0026 void Init(const std::vector<int> &spins);
0027
0028 size_t operator()(const std::vector<int> &spins) const;
0029
0030 std::vector<int> operator()(size_t number) const;
0031
0032 inline const std::vector<int> &Spins() const { return m_spins; }
0033
0034 inline const std::string &SpinID() const { return m_id; }
0035
0036 inline size_t N() const { return m_n; }
0037
0038 };
0039
0040 }
0041
0042 #endif