41template <
typename _Scalar,
typename _DerivedOrbitalRotationGenerators>
53 size_t number_of_orbitals;
83 throw std::invalid_argument(
"SimpleOrbitalRotationGenerators(const SquareMatrix<Scalar>& kappa): The given kappa matrix is not anti-Hermitian.");
103 if (row_occupation_type != column_occupation_type) {
104 throw std::invalid_argument(
"SimpleOrbitalRotationGenerators::FromOccupationTypes(const DerivedOrbitalRotationGenerators& generators, const OccupationType row_occupation_type, const OccupationType column_occupation_type, const size_t K): Occupied/virtual and virtual/occupied rotations are currently disabled. The row and column occupation types should be the same.");
112 kappa.topLeftCorner(generators.numberOfOrbitals(), generators.numberOfOrbitals()) = generators.asMatrix();
114 kappa.bottomRightCorner(generators.numberOfOrbitals(), generators.numberOfOrbitals()) = generators.asMatrix();
132 return kappa - kappa.adjoint();
Definition: Matrix.hpp:47
Definition: SimpleOrbitalRotationGenerators.hpp:42
_Scalar Scalar
Definition: SimpleOrbitalRotationGenerators.hpp:46
_DerivedOrbitalRotationGenerators DerivedOrbitalRotationGenerators
Definition: SimpleOrbitalRotationGenerators.hpp:49
size_t numberOfOrbitals() const
Definition: SimpleOrbitalRotationGenerators.hpp:144
static DerivedOrbitalRotationGenerators FromOccupationTypes(const DerivedOrbitalRotationGenerators &generators, const OccupationType row_occupation_type, const OccupationType column_occupation_type, const size_t K)
Definition: SimpleOrbitalRotationGenerators.hpp:102
const VectorX< Scalar > & asVector() const
Definition: SimpleOrbitalRotationGenerators.hpp:138
SimpleOrbitalRotationGenerators(const VectorX< Scalar > &v)
Definition: SimpleOrbitalRotationGenerators.hpp:69
SimpleOrbitalRotationGenerators(const SquareMatrix< Scalar > &kappa)
Definition: SimpleOrbitalRotationGenerators.hpp:79
const SquareMatrix< Scalar > asMatrix() const
Definition: SimpleOrbitalRotationGenerators.hpp:128
Definition: SquareMatrix.hpp:39
static Self Zero(const size_t dim)
Definition: SquareMatrix.hpp:289
static Self FromStrictTriangle(const VectorX< Scalar > &v)
Definition: SquareMatrix.hpp:115
bool isAntiHermitian(const double threshold=1.0e-08) const
Definition: SquareMatrix.hpp:317
Definition: BaseOneElectronIntegralBuffer.hpp:25
size_t strictTriangularRootOf(const size_t x)
Definition: miscellaneous.cpp:226
OccupationType
Definition: OccupationType.hpp:29