static void evaluate(const Shell &A, const Shell &B, const Shell &C, const Shell &D, double *Q) { adapter::rysq::Shell A_(A), B_(B), C_(C), D_(D); //rysq::Quartet<rysq::Shell> quartet(A_, B_, C_, D_); boost::array<Center,4> centers = {{ A.center(), B.center(), C.center(), D.center() }}; rysq::Eri eri(rysq::Quartet<rysq::Shell>(A_, B_, C_, D_)); eri(centers, Q); }
int main() { double e[] = { 1.0 }; double C[][2] = { { 1.0 }, { 0.0 } }; rysq::Center r = {{ 1, 0, 0 }}; rysq::Shell shell(rysq::Contraction(rysq::D, 1, e, C), r); size_t N = shell.size*shell.size*shell.size*shell.size; double *buffer = new double[N]; double cutoff = 1e-10; rysq::Eri eri; eri(shell, shell, shell, shell, buffer, cutoff); for (int i = 0; i < N; ++i) { printf("eri[%i] = %e\n", i, buffer[i]); } // std::vector<rysq::Contraction> contractions; // std::vector<rysq::Shell> shells; }