37template <
typename _IntegralScalar,
size_t _N>
41 static constexpr auto N = _N;
93 virtual IntegralScalar value(
const size_t i,
const size_t f1,
const size_t f2,
const size_t f3,
const size_t f4)
const = 0;
112 for (
size_t f1 = 0; f1 != this->
nbf1; f1++) {
113 for (
size_t f2 = 0; f2 != this->
nbf2; f2++) {
114 for (
size_t f3 = 0; f3 != this->
nbf3; f3++) {
115 for (
size_t f4 = 0; f4 != this->
nbf4; f4++) {
117 for (
size_t i = 0; i <
N; i++) {
118 full_components[i](bf1 + f1, bf2 + f2, bf3 + f3, bf4 + f4) = this->
value(i, f1, f2, f3, f4);
Definition: BaseTwoElectronIntegralBuffer.hpp:38
size_t nbf4
Definition: BaseTwoElectronIntegralBuffer.hpp:48
size_t numberOfBasisFunctionsInShell3() const
Definition: BaseTwoElectronIntegralBuffer.hpp:141
size_t nbf3
Definition: BaseTwoElectronIntegralBuffer.hpp:47
size_t numberOfBasisFunctionsInShell1() const
Definition: BaseTwoElectronIntegralBuffer.hpp:131
void emplace(std::array< Tensor< IntegralScalar, 4 >, N > &full_components, const size_t bf1, const size_t bf2, const size_t bf3, const size_t bf4) const
Definition: BaseTwoElectronIntegralBuffer.hpp:109
BaseTwoElectronIntegralBuffer(const size_t nbf1, const size_t nbf2, const size_t nbf3, const size_t nbf4)
Definition: BaseTwoElectronIntegralBuffer.hpp:62
size_t nbf1
Definition: BaseTwoElectronIntegralBuffer.hpp:45
virtual bool areIntegralsAllZero() const =0
size_t numberOfBasisFunctionsInShell4() const
Definition: BaseTwoElectronIntegralBuffer.hpp:146
static constexpr auto N
Definition: BaseTwoElectronIntegralBuffer.hpp:41
_IntegralScalar IntegralScalar
Definition: BaseTwoElectronIntegralBuffer.hpp:40
virtual IntegralScalar value(const size_t i, const size_t f1, const size_t f2, const size_t f3, const size_t f4) const =0
size_t numberOfBasisFunctionsInShell2() const
Definition: BaseTwoElectronIntegralBuffer.hpp:136
size_t nbf2
Definition: BaseTwoElectronIntegralBuffer.hpp:46
virtual ~BaseTwoElectronIntegralBuffer()=default
Definition: Tensor.hpp:46
Definition: BaseOneElectronIntegralBuffer.hpp:25