8 #ifndef SPARROW_ORDEREDINPUT_H
9 #define SPARROW_ORDEREDINPUT_H
32 auto isBeta()
const ->
const Eigen::Matrix<bool, -1, 1>& {
35 auto isBeta() -> Eigen::Matrix<bool, -1, 1>& {
43 assert(!orderMap.empty());
44 int nTransitions = orderMap.size();
45 Eigen::Matrix<bool, -1, 1> unorderedIsBeta = Eigen::Matrix<bool, -1, 1>::Constant(nTransitions,
false);
47 unorderedIsBeta.tail(nTransitions / 2).array() =
true;
53 Eigen::Matrix<bool, Eigen::Dynamic, 1> isBeta_;
68 template<Utils::Reference restrictedness>
70 :
public std::conditional<restrictedness == Utils::Reference::Restricted, detail::RestrictedBase, detail::UnrestrictedBase>::type {
73 typename std::conditional<restrictedness == Utils::Reference::Restricted, detail::RestrictedBase, detail::UnrestrictedBase>::type;
77 const Eigen::MatrixXd& transitionCharges,
const std::vector<int>& orderMap)
80 orderMap, TimeDependentUtils::Direction::To);
82 TimeDependentUtils::Direction::To);
86 auto energyDifferences()
const ->
const Eigen::VectorXd& {
87 return energyDifferences_;
89 auto energyDifferences() -> Eigen::VectorXd& {
90 return energyDifferences_;
92 auto excitations()
const ->
const std::vector<Utils::Excitation>& {
95 auto excitations() -> std::vector<Utils::Excitation>& {
98 auto transitionCharges()
const ->
const Eigen::MatrixXd& {
99 return transitionCharges_;
101 auto transitionCharges() -> Eigen::MatrixXd& {
102 return transitionCharges_;
106 Eigen::VectorXd energyDifferences_;
107 std::vector<Utils::Excitation> excitations_;
108 Eigen::MatrixXd transitionCharges_;
113 #endif // SPARROW_ORDEREDINPUT_H
static void transformOrder(const Eigen::MatrixBase< Derived > &toTransform, const Eigen::MatrixBase< DerivedResult > &result, const std::vector< int > &orderVector, Direction direction)
Transforms a vector or matrix from one ordering to another, or back.
Definition: TimeDependentUtils.h:512
static auto flatten(const Utils::SpinAdaptedContainer< Utils::Reference::Restricted, Eigen::VectorXd > &in) -> Eigen::VectorXd
Transforms the SpinAdaptedContainer to a Eigen::VectorXd by extracting its "restricted" member...
Definition: TimeDependentUtils.h:215
Result of the pruning procedure. Unrestricted specialization. Has an additional "isBeta" bool vector...
Definition: OrderedInput.h:31
Result of the pruning procedure. Restricted specialization. Note: all quantities are sorted in increa...
Definition: OrderedInput.h:20