43template <
typename _Scalar,
typename _Vectorizer>
45 public SpinResolvedBase<USQOneElectronOperatorComponent<_Scalar, _Vectorizer>, USQOneElectronOperator<_Scalar, _Vectorizer>>,
95 const auto dimension_of_first_a = fs_a[0].dimension();
96 const auto dimension_of_first_b = fs_b[0].dimension();
98 for (
size_t i = 1; i < N; i++) {
99 const auto dimension_of_ith_a = fs_a[i].dimension();
100 const auto dimension_of_ith_b = fs_b[i].dimension();
102 if ((dimension_of_first_a != dimension_of_ith_a) || (dimension_of_first_b != dimension_of_ith_b)) {
103 throw std::invalid_argument(
"USQOneElectronOperator(const std::array<SquareMatrix<Scalar>, Components>&, const std::array<SquareMatrix<Scalar>, components>&): The given matrix representations do not have the same dimensions for either the alpha or beta component.");
117 template <
typename Z = Vectorizer>
119 typename std::enable_if<std::is_same<Z, ScalarVectorizer>::value>::type* = 0) :
168 template <
typename... Indices>
194 std::transform(result_elements.begin(), result_elements.end(),
195 beta_expectation_value_elements.begin(), result_elements.begin(),
196 std::plus<Scalar> {});
309template <
typename Scalar>
313template <
typename Scalar>
317template <
typename Scalar>
321template <
typename Scalar,
size_t N>
335template <
typename Scalar,
typename Vectorizer>
359template <
typename Scalar,
typename Vectorizer>
374template <
typename Scalar,
typename Vectorizer>
Definition: RSQOneElectronOperator.hpp:42
USQOneElectronOperatorComponent< Scalar, Vectorizer > beta() const
Definition: RSQOneElectronOperator.hpp:81
USQOneElectronOperatorComponent< Scalar, Vectorizer > alpha() const
Definition: RSQOneElectronOperator.hpp:70
const MatrixRepresentation & parameters(const Indices &... indices) const
Definition: SQOperatorStorageBase.hpp:236
size_t numberOfOrbitals() const
Definition: SQOperatorStorageBase.hpp:277
const Vectorizer & vectorizer() const
Definition: SQOperatorStorageBase.hpp:282
static FinalOperator Zero(const size_t dim, const Vectorizer &vectorizer)
Definition: SQOperatorStorageBase.hpp:145
DerivedOperator oneIndexTransformed(const Transformation &T) const
Definition: SimpleSQOneElectronOperator.hpp:301
StorageArray< Scalar, Vectorizer > calculateExpectationValue(const Derived1DM &D) const
Definition: SimpleSQOneElectronOperator.hpp:96
Definition: SpinResolved1DM.hpp:44
Definition: SpinResolved2DM.hpp:44
Definition: SpinResolvedBase.hpp:39
USQOneElectronOperatorComponent< _Scalar, _Vectorizer > Of
Definition: SpinResolvedBase.hpp:42
const Of & beta() const
Definition: SpinResolvedBase.hpp:140
const Of & component(const Spin sigma) const
Definition: SpinResolvedBase.hpp:154
const Of & alpha() const
Definition: SpinResolvedBase.hpp:130
static Derived FromEqual(const Of &equal)
Definition: SpinResolvedBase.hpp:118
Definition: SpinResolvedJacobiRotatable.hpp:35
USQOneElectronOperator< _Scalar, _Vectorizer > rotated(const JacobiRotationType &jacobi_rotation) const override
Definition: SpinResolvedJacobiRotatable.hpp:54
Definition: SquareMatrix.hpp:39
Definition: StorageArray.hpp:38
Definition: UJacobiRotation.hpp:32
Definition: USQOneElectronOperatorComponent.hpp:40
Definition: USQOneElectronOperator.hpp:48
Self & operator+=(const Self &rhs)
Definition: USQOneElectronOperator.hpp:229
Self oneIndexTransformed(const UTransformation< Scalar > &T) const
Definition: USQOneElectronOperator.hpp:282
_Scalar Scalar
Definition: USQOneElectronOperator.hpp:51
USQOneElectronOperator< Scalar, ScalarVectorizer > operator()(const Indices &... indices) const
Definition: USQOneElectronOperator.hpp:169
static USQOneElectronOperator< Scalar, Vectorizer > Zero(const size_t dim)
Definition: USQOneElectronOperator.hpp:139
StorageArray< Scalar, Vectorizer > calculateExpectationValue(const SpinResolved1DM< Scalar > &D) const
Definition: USQOneElectronOperator.hpp:186
Self partitioned(const UTransformation< Scalar > &mulliken_projection_matrix) const
Definition: USQOneElectronOperator.hpp:300
USQOneElectronOperator< Scalar, Vectorizer > Self
Definition: USQOneElectronOperator.hpp:57
Self & operator*=(const Scalar &a)
Definition: USQOneElectronOperator.hpp:242
USQOneElectronOperator()
Definition: USQOneElectronOperator.hpp:126
USQOneElectronOperator(const SquareMatrix< Scalar > &f_a, const SquareMatrix< Scalar > &f_b, typename std::enable_if< std::is_same< Z, ScalarVectorizer >::value >::type *=0)
Definition: USQOneElectronOperator.hpp:118
static USQOneElectronOperator< Scalar, Vectorizer > FromRestricted(const RSQOneElectronOperator< Scalar, Vectorizer > &f_restricted)
Definition: USQOneElectronOperator.hpp:151
size_t numberOfOrbitals(const Spin sigma) const
Definition: USQOneElectronOperator.hpp:219
_Vectorizer Vectorizer
Definition: USQOneElectronOperator.hpp:54
size_t numberOfOrbitals() const
Definition: USQOneElectronOperator.hpp:211
typename SpinResolvedBase< USQOneElectronOperatorComponent< Scalar, Vectorizer >, Self >::Of ComponentType
Definition: USQOneElectronOperator.hpp:66
USQOneElectronOperator(const std::array< SquareMatrix< Scalar >, N > &fs_a, const std::array< SquareMatrix< Scalar >, N > &fs_b, const Vectorizer &vectorizer)
Definition: USQOneElectronOperator.hpp:87
Definition: spinor_tags.hpp:37
Definition: VectorSpaceArithmetic.hpp:35
Definition: BaseOneElectronIntegralBuffer.hpp:25
UnrestrictedSpinorTag UnrestrictedSpinOrbitalTag
Definition: spinor_tags.hpp:42
DenseVectorizer< 0 > ScalarVectorizer
Definition: DenseVectorizer.hpp:203
Spin
Definition: Spin.hpp:27
Definition: JacobiRotatable.hpp:37
Definition: OperatorTraits.hpp:28