21#ifndef _libint2_src_bin_libint_cr11gtg111d_h_
22#define _libint2_src_bin_libint_cr11gtg111d_h_
24#include <generic_rr.h>
25#include <util_types.h>
31template <CartesianAxis Axis>
34 CR_11_GTG_11_1d<Axis>, CGShell1d<Axis>,
35 GenIntegralSet_11_11<CGShell1d<Axis>, GTG_1d, EmptySet> > {
44 static const unsigned int max_nchildren = 1;
53 using ParentType::target_;
54 using ParentType::RecurrenceRelation::expr_;
55 using ParentType::RecurrenceRelation::nflops_;
60 static std::string descr() {
return "CR"; }
62#if LIBINT_ENABLE_GENERIC_CODE
65 const std::shared_ptr<CompilationParameters>& cparams)
const override {
69 std::string generic_header()
const override {
return "VRR_GTG_1d_xx_xx.h"; }
71 std::string generic_instance(
72 const std::shared_ptr<CodeContext>& context,
73 const std::shared_ptr<CodeSymbols>& args)
const override;
77template <CartesianAxis Axis>
78CR_11_GTG_11_1d<Axis>::CR_11_GTG_11_1d(
const std::shared_ptr<TargetType>& Tint,
80 : ParentType(Tint, dir) {
84 BasisFunctionType _0(0);
86 if (target_->oper()->descr().contracted())
return;
88 ChildFactory<ThisType, TargetType> factory(
this);
89 auto _00_GTG_00 = factory.make_child(_0, _0, _0, _0, 0u, oper);
92#if LIBINT_ENABLE_GENERIC_CODE
93template <CartesianAxis Axis>
94std::string CR_11_GTG_11_1d<Axis>::generic_instance(
95 const std::shared_ptr<CodeContext>& context,
96 const std::shared_ptr<CodeSymbols>& args)
const {
97 std::ostringstream oss;
98 auto a = target_->bra(0, 0);
99 auto b = target_->ket(0, 0);
100 auto c = target_->bra(1, 0);
101 auto d = target_->kt(1, 0);
103 const bool vec = (context->cparams()->max_vector_length() != 1);
105 oss <<
"VRR_GTG_1d_xx_xx::compute<" << to_string<Axis> <<
"," << a[0] <<
","
106 << b[0] <<
"," << c[0] <<
"," << d[0] <<
"," << (vec ?
"true" :
"false")
109 const unsigned int nargs = args->n();
110 for (
unsigned int a = 0; a < nargs; a++) {
111 oss << args->symbol(a) <<
",";
114 oss <<
",inteval->_00_GTG1d_00_" <<
to_string(Axis) <<
");";
119 std::list<std::string> forced_symbol;
120 forced_symbol.push_back(std::string(
"AB_") +
to_string(Axis));
121 forced_symbol.push_back(std::string(
"CD_") +
to_string(Axis));
122 forced_symbol.push_back(std::string(
"R12kG12_pfac0_0_") +
to_string(Axis));
123 forced_symbol.push_back(std::string(
"R12kG12_pfac0_1_") +
to_string(Axis));
124 forced_symbol.push_back(std::string(
"R12kG12_pfac1_0"));
125 forced_symbol.push_back(std::string(
"R12kG12_pfac1_1"));
126 forced_symbol.push_back(std::string(
"R12kG12_pfac2"));
127 taskmgr.current().symbols()->add(forced_symbol);
a "shell" of 1D CGFs with quantum number L is a set of 1D CGFs with quantum numbers 0 .
Definition bfset.h:647
Compute relation for 1-dimensional Gaussian-type geminal integrals.
Definition comp_11_gtg_11_1d.h:35
static bool directional()
This relation is not directional.
Definition comp_11_gtg_11_1d.h:49
Generic integral over a two-body operator with one bfs for each particle in bra and ket.
Definition integral_11_11.h:36
RRImpl must inherit GenericRecurrenceRelation<RRImpl>
Definition generic_rr.h:47
bool is_simple() const override
Implementation of RecurrenceRelation::is_simple()
Definition generic_rr.h:81
static std::shared_ptr< RRImpl > Instance(const std::shared_ptr< TargetType > &Tint, unsigned int dir)
Return an instance if applicable, or a null pointer otherwise.
Definition generic_rr.h:55
static LibraryTaskManager & Instance()
LibraryTaskManager is a Singleton.
Definition task.cc:32
Defaults definitions for various parameters assumed by Libint.
Definition algebra.cc:24
std::string to_string(const T &x)
Converts x to its string representation.
Definition entity.h:121