21 #ifndef _libint2_src_bin_libint_cgshellordering_h_ 22 #define _libint2_src_bin_libint_cgshellordering_h_ 24 #include <libint2/config.h> 26 #ifndef LIBINT_CARTGAUSS_MAX_AM 27 # include <libint2/util/generated/libint2_params.h> 28 # define LIBINT_CARTGAUSS_MAX_AM LIBINT2_CARTGAUSS_MAX_AM 30 #ifndef LIBINT_CGSHELL_ORDERING 31 # include <libint2/util/generated/libint2_params.h> 32 # define LIBINT_CGSHELL_ORDERING LIBINT2_CGSHELL_ORDERING 33 # define LIBINT_CGSHELL_ORDERING_STANDARD LIBINT2_CGSHELL_ORDERING_STANDARD 34 # define LIBINT_CGSHELL_ORDERING_INTV3 LIBINT2_CGSHELL_ORDERING_INTV3 35 # define LIBINT_CGSHELL_ORDERING_GAMESS LIBINT2_CGSHELL_ORDERING_GAMESS 36 # define LIBINT_CGSHELL_ORDERING_ORCA LIBINT2_CGSHELL_ORDERING_ORCA 37 # define LIBINT_CGSHELL_ORDERING_BAGEL LIBINT2_CGSHELL_ORDERING_BAGEL 42 enum CGShellOrdering {
43 CGShellOrdering_Standard = LIBINT_CGSHELL_ORDERING_STANDARD,
44 CGShellOrdering_IntV3 = LIBINT_CGSHELL_ORDERING_INTV3,
45 CGShellOrdering_GAMESS = LIBINT_CGSHELL_ORDERING_GAMESS,
46 CGShellOrdering_ORCA = LIBINT_CGSHELL_ORDERING_ORCA,
47 CGShellOrdering_BAGEL = LIBINT_CGSHELL_ORDERING_BAGEL,
48 CGShellOrdering_MOLDEN
53 #include <libint2/cgshellinfo.h> 63 #define INT_NCART(am) ((((am)+2)*((am)+1))>>1) 68 #define INT_NCART_DEC(am,n) ((n)-(am)-1) 69 #define INT_NCART_INC(am,n) ((n)+(am)+2) 75 #if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_STANDARD 93 #define INT_CARTINDEX(am,i,j) ( (((((am) - (i) + 1)*((am) - (i)))>>1) + (am) - (i) - (j)) ) 101 #define FOR_CART(i,j,k,am) for((i)=(am);(i)>=0;(i)--) {\ 102 for((j)=(am)-(i);(j)>=0;(j)--) \ 103 { (k) = (am) - (i) - (j); 104 #define END_FOR_CART }} 108 #endif // STANDARD ordering 110 #if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_INTV3 129 #define INT_CARTINDEX(am,i,j) (((((((am)+1)<<1)-(i))*((i)+1))>>1)-(j)-1) 136 #define FOR_CART(i,j,k,am) for((i)=0;(i)<=(am);(i)++) {\ 137 for((k)=0;(k)<=(am)-(i);(k)++) \ 138 { (j) = (am) - (i) - (k); 139 #define END_FOR_CART }} 141 #endif // INTV3 ordering 143 #if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_GAMESS 152 #define INT_CARTINDEX(am,i,j) CGShellInfo< CGShellOrderingData<CGShellOrdering_GAMESS> >::cartindex(am,i,j) 159 #define FOR_CART(i,j,k,am) for(int __xyz=0; __xyz<INT_NCART(am); ++__xyz) { \ 160 CGShellInfo< CGShellOrderingData<CGShellOrdering_GAMESS> >::cartindex_to_ijk(am,__xyz,i,j,k); 161 #define END_FOR_CART } 163 #endif // GAMESS ordering 165 #if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_ORCA 174 #define INT_CARTINDEX(am,i,j) CGShellInfo< CGShellOrderingData<CGShellOrdering_ORCA> >::cartindex(am,i,j) 181 #define FOR_CART(i,j,k,am) for(int __xyz=0; __xyz<INT_NCART(am); ++__xyz) { \ 182 CGShellInfo< CGShellOrderingData<CGShellOrdering_ORCA> >::cartindex_to_ijk(am,__xyz,i,j,k); 183 #define END_FOR_CART } 185 #endif // ORCA ordering 187 #if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_BAGEL 206 #define INT_CARTINDEX(am,i,j) ((((am)+((i)+(j))+2)*((am)-((i)+(j))+1)>>1)-(i)-1) 213 #define FOR_CART(i,j,k,am) for((k)=0;(k)<=(am);(k)++) {\ 214 for((j)=0;(j)<=(am)-(k);(j)++) \ 215 { (i) = (am) - (j) - (k); 216 #define END_FOR_CART }} 218 #endif // Bagel ordering 222 #define INT_CARTINDEX_MOLDEN(am,i,j) CGShellInfo< CGShellOrderingData<CGShellOrdering_MOLDEN,4u> >::cartindex(am,i,j) 227 #define FOR_CART_MOLDEN(i,j,k,am) for(int __xyz=0; __xyz<INT_NCART(am); ++__xyz) { \ 228 CGShellInfo< CGShellOrderingData<CGShellOrdering_MOLDEN,4u> >::cartindex_to_ijk(am,__xyz,i,j,k); 229 #define END_FOR_CART_MOLDEN } 231 #endif // header guard Defaults definitions for various parameters assumed by Libint.
Definition: algebra.cc:24