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>
64inline int INT_NCART(
int am) {
return ((am + 2) * (am + 1)) >> 1; }
66LIBINT_DEPRECATED(
"please use libint2::INT_NCART instead")
67inline
int INT_NCART(
int am) {
return libint2::INT_NCART(am); }
73inline int INT_NCART_DEC(
int am,
int n) {
return n - am - 1; }
74inline int INT_NCART_INC(
int am,
int n) {
return n + am + 2; }
76LIBINT_DEPRECATED(
"please use libint2::INT_NCART_DEC instead")
77inline
int INT_NCART_DEC(
int am,
int n) {
return libint2::INT_NCART_DEC(am, n); }
78LIBINT_DEPRECATED(
"please use libint2::INT_NCART_INC instead")
79inline
int INT_NCART_INC(
int am,
int n) {
return libint2::INT_NCART_INC(am, n); }
85#if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_STANDARD
104inline int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
105 return (((am - i + 1) * (am - i)) >> 1) + am - i - j;
108LIBINT_DEPRECATED(
"please use libint2::INT_CARTINDEX instead")
109inline
int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
return libint2::INT_CARTINDEX(am, i, j); }
117#define FOR_CART(i,j,k,am) for((i)=(am);(i)>=0;(i)--) {\
118 for((j)=(am)-(i);(j)>=0;(j)--) \
119 { (k) = (am) - (i) - (j);
120#define END_FOR_CART }}
126#if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_INTV3
146inline int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
147 return ((((am + 1) << 1)- i) * (i + 1)) >> 1 - j - 1 ;
150LIBINT_DEPRECATED(
"please use libint2::INT_CARTINDEX instead")
151inline
int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
return libint2::INT_CARTINDEX(am, i, j); }
158#define FOR_CART(i,j,k,am) for((i)=0;(i)<=(am);(i)++) {\
159 for((k)=0;(k)<=(am)-(i);(k)++) \
160 { (j) = (am) - (i) - (k);
161#define END_FOR_CART }}
165#if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_GAMESS
175inline int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
179LIBINT_DEPRECATED(
"please use libint2::INT_CARTINDEX instead")
180inline
int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
return libint2::INT_CARTINDEX(am, i, j); }
187#define FOR_CART(i,j,k,am) for(int __xyz=0; __xyz<INT_NCART(am); ++__xyz) { \
188 CGShellInfo< CGShellOrderingData<CGShellOrdering_GAMESS> >::cartindex_to_ijk(am,__xyz,i,j,k);
189#define END_FOR_CART }
193#if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_ORCA
203inline int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
207LIBINT_DEPRECATED(
"please use libint2::INT_CARTINDEX instead")
208inline
int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
return libint2::INT_CARTINDEX(am, i, j); }
215#define FOR_CART(i,j,k,am) for(int __xyz=0; __xyz<INT_NCART(am); ++__xyz) { \
216 CGShellInfo< CGShellOrderingData<CGShellOrdering_ORCA> >::cartindex_to_ijk(am,__xyz,i,j,k);
217#define END_FOR_CART }
221#if LIBINT_CGSHELL_ORDERING == LIBINT_CGSHELL_ORDERING_BAGEL
241inline int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
242 return ((am + (i + j) + 2) * (am - (i + j) + 1) >> 1) - i -1;
245LIBINT_DEPRECATED(
"please use libint2::INT_CARTINDEX instead")
246inline
int INT_CARTINDEX(
unsigned int am,
int i,
int j) {
return libint2::INT_CARTINDEX(am, i, j); }
253#define FOR_CART(i,j,k,am) for((k)=0;(k)<=(am);(k)++) {\
254 for((j)=0;(j)<=(am)-(k);(j)++) \
255 { (i) = (am) - (j) - (k);
256#define END_FOR_CART }}
263inline int INT_CARTINDEX_MOLDEN(
unsigned int am,
int i,
int j) {
267LIBINT_DEPRECATED(
"please use libint2::INT_CARTINDEX_MOLDEN instead")
268inline
int INT_CARTINDEX_MOLDEN(
unsigned int am,
int i,
int j) {
return libint2::INT_CARTINDEX_MOLDEN(am, i, j); }
273#define FOR_CART_MOLDEN(i,j,k,am) for(int __xyz=0; __xyz<INT_NCART(am); ++__xyz) { \
274 CGShellInfo< CGShellOrderingData<CGShellOrdering_MOLDEN,4u> >::cartindex_to_ijk(am,__xyz,i,j,k);
275#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:464