21#ifndef _libint2_src_bin_libint_cgshellordering_h_
22#define _libint2_src_bin_libint_cgshellordering_h_
24#include <libint2/config.h>
27#ifndef LIBINT_CARTGAUSS_MAX_AM
28#include <libint2/util/generated/libint2_params.h>
29#define LIBINT_CARTGAUSS_MAX_AM LIBINT2_CARTGAUSS_MAX_AM
31#ifndef LIBINT_CGSHELL_ORDERING
32#include <libint2/util/generated/libint2_params.h>
33#define LIBINT_CGSHELL_ORDERING LIBINT2_CGSHELL_ORDERING
34#define LIBINT_CGSHELL_ORDERING_STANDARD LIBINT2_CGSHELL_ORDERING_STANDARD
35#define LIBINT_CGSHELL_ORDERING_INTV3 LIBINT2_CGSHELL_ORDERING_INTV3
36#define LIBINT_CGSHELL_ORDERING_GAMESS LIBINT2_CGSHELL_ORDERING_GAMESS
37#define LIBINT_CGSHELL_ORDERING_ORCA LIBINT2_CGSHELL_ORDERING_ORCA
38#define LIBINT_CGSHELL_ORDERING_BAGEL LIBINT2_CGSHELL_ORDERING_BAGEL
44 CGShellOrdering_Standard = LIBINT_CGSHELL_ORDERING_STANDARD,
45 CGShellOrdering_IntV3 = LIBINT_CGSHELL_ORDERING_INTV3,
46 CGShellOrdering_GAMESS = LIBINT_CGSHELL_ORDERING_GAMESS,
47 CGShellOrdering_ORCA = LIBINT_CGSHELL_ORDERING_ORCA,
48 CGShellOrdering_BAGEL = LIBINT_CGSHELL_ORDERING_BAGEL,
49 CGShellOrdering_MOLDEN
54#include <libint2/cgshellinfo.h>
65inline int INT_NCART(
int am) {
return ((am + 2) * (am + 1)) >> 1; }
67LIBINT_DEPRECATED(
"please use libint2::INT_NCART instead")
68inline
int INT_NCART(
int am) {
return libint2::INT_NCART(am); }
74inline int INT_NCART_DEC(
int am,
int n) {
return n - am - 1; }
75inline int INT_NCART_INC(
int am,
int n) {
return n + am + 2; }
77LIBINT_DEPRECATED(
"please use libint2::INT_NCART_DEC instead")
78inline
int INT_NCART_DEC(
int am,
int n) {
79 return libint2::INT_NCART_DEC(am, n);
81LIBINT_DEPRECATED(
"please use libint2::INT_NCART_INC instead")
82inline
int INT_NCART_INC(
int am,
int n) {
83 return libint2::INT_NCART_INC(am, n);
90#if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_STANDARD
110inline int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
111 return (((am - i + 1) * (am - i)) >> 1) + am - i - j;
114LIBINT_DEPRECATED(
"please use libint2::INT_CARTINDEX instead")
115inline
int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
116 return libint2::INT_CARTINDEX(am, i, j);
125#define FOR_CART(i, j, k, am) \
126 for ((i) = (am); (i) >= 0; (i)--) { \
127 for ((j) = (am) - (i); (j) >= 0; (j)--) { \
128 (k) = (am) - (i) - (j);
129#define END_FOR_CART \
138#if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_INTV3
158inline int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
159 return ((((am + 1) << 1) - i) * (i + 1)) >> 1 - j - 1;
162LIBINT_DEPRECATED(
"please use libint2::INT_CARTINDEX instead")
163inline
int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
164 return libint2::INT_CARTINDEX(am, i, j);
172#define FOR_CART(i, j, k, am) \
173 for ((i) = 0; (i) <= (am); (i)++) { \
174 for ((k) = 0; (k) <= (am) - (i); (k)++) { \
175 (j) = (am) - (i) - (k);
176#define END_FOR_CART \
182#if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_GAMESS
192inline int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
194 libint2::CGShellOrdering_GAMESS>>::cartindex(am, i, j);
197LIBINT_DEPRECATED(
"please use libint2::INT_CARTINDEX instead")
198inline
int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
199 return libint2::INT_CARTINDEX(am, i, j);
207#define FOR_CART(i, j, k, am) \
208 for (int __xyz = 0; __xyz < INT_NCART(am); ++__xyz) { \
210 CGShellOrderingData<CGShellOrdering_GAMESS>>::cartindex_to_ijk(am, \
214#define END_FOR_CART }
218#if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_ORCA
228inline int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
230 libint2::CGShellOrdering_ORCA>>::cartindex(am, i, j);
233LIBINT_DEPRECATED(
"please use libint2::INT_CARTINDEX instead")
234inline
int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
235 return libint2::INT_CARTINDEX(am, i, j);
243#define FOR_CART(i, j, k, am) \
244 for (int __xyz = 0; __xyz < INT_NCART(am); ++__xyz) { \
245 CGShellInfo<CGShellOrderingData<CGShellOrdering_ORCA>>::cartindex_to_ijk( \
247#define END_FOR_CART }
251#if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_BAGEL
271inline int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
272 return ((am + (i + j) + 2) * (am - (i + j) + 1) >> 1) - i - 1;
275LIBINT_DEPRECATED(
"please use libint2::INT_CARTINDEX instead")
276inline
int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
277 return libint2::INT_CARTINDEX(am, i, j);
285#define FOR_CART(i, j, k, am) \
286 for ((k) = 0; (k) <= (am); (k)++) { \
287 for ((j) = 0; (j) <= (am) - (k); (j)++) { \
288 (i) = (am) - (j) - (k);
289#define END_FOR_CART \
298inline int INT_CARTINDEX_MOLDEN(
unsigned int am,
int i,
int j) {
300 libint2::CGShellOrdering_MOLDEN, 4u>>::cartindex(am, i, j);
303LIBINT_DEPRECATED(
"please use libint2::INT_CARTINDEX_MOLDEN instead")
304inline
int INT_CARTINDEX_MOLDEN(
unsigned int am,
int i,
int j) {
305 return libint2::INT_CARTINDEX_MOLDEN(am, i, j);
311#define FOR_CART_MOLDEN(i, j, k, am) \
312 for (int __xyz = 0; __xyz < INT_NCART(am); ++__xyz) { \
313 CGShellInfo<CGShellOrderingData<CGShellOrdering_MOLDEN, 4u>>:: \
314 cartindex_to_ijk(am, __xyz, i, j, k);
315#define END_FOR_CART_MOLDEN }
Defaults definitions for various parameters assumed by Libint.
Definition algebra.cc:24
provides ordering maps for up to angular momentum lmax and ordering specified by CGShellOrderingSpec
Definition cgshellinfo.h:462
Definition cgshellinfo.h:434