29#define INT_NONZERO(x) (((x)< -1.0e-10)||((x)> 1.0e-10))
46#define INT_CARTINDEX(am,i,j) (((((((am)+1)<<1)-(i))*((i)+1))>>1)-(j)-1)
53#define FOR_CART(i,j,k,am) for((i)=0;(i)<=(am);(i)++) {\
54 for((k)=0;(k)<=(am)-(i);(k)++) \
55 { (j) = (am) - (i) - (k);
56#define END_FOR_CART }}
65#define FOR_GCCART(gc,index,i,j,k,sh)\
66 for ((gc)=0; (gc)<(sh)->ncon; (gc)++) {\
68 FOR_CART(i,j,k,(sh)->type[gc].am)
70#define FOR_GCCART_GS(gc,index,i,j,k,sh)\
71 for ((gc)=0; (gc)<(sh)->ncontraction(); (gc)++) {\
73 FOR_CART(i,j,k,(sh)->am(gc))
75#define END_FOR_GCCART(index)\
80#define END_FOR_GCCART_GS(index)\
86#define FOR_GCCART2(gc,i,j,k,sh)\
87 for ((gc)=0; (gc)<(sh)->ncon; (gc)++) {\
88 FOR_CART(i,j,k,(sh)->type[gc].am)
90#define END_FOR_GCCART2\
96#define FOR_SHELLS(c,i,j) for((i)=0;(i)<(c)->n;i++) {\
97 for((j)=0;(j)<(c)->center[(i)].basis.n;j++) {
98#define END_FOR_SHELLS }}
104#define INT_NCART(am) ((am>=0)?((((am)+2)*((am)+1))>>1):0)
107#define INT_NCART_NN(am) ((((am)+2)*((am)+1))>>1)
112#define INT_NCART_DEC(am,n) ((n)-(am)-1)
113#define INT_NCART_INC(am,n) ((n)+(am)+2)
118#define INT_NPURE(am) (2*(am)+1)
124#define INT_NFUNC(pu,am) ((pu)?INT_NPURE(am):INT_NCART(am))
128#define INT_SH(c,s) ((c)->center[(c)->center_num[s]].basis.shell[(c)->shell_num[s]])
132#define INT_SH_AM(c,s) ((c)->center[(c)->center_num[s]].basis.shell[(c)->shell_num[s]].type.am)
136#define INT_SH_PU(c,s) ((c)->center[(c)->center_num[s]].basis.shell[(c)->shell_num[s]].type.puream)
140#define INT_CE_SH_AM(c,a,s) ((c)->center[(a)].basis.shell[(s)].type.am)
144#define INT_CE_SH_PU(c,a,s) ((c)->center[(a)].basis.shell[(s)].type.puream)
149#define INT_SH_NFUNC(c,s) ((c)->center[(c)->center_num[s]].basis.shell[(c)->shell_num[s]].nfunc)
163#define INT_MAX1(n1) ((n1)-1)
164#define INT_MAX2(e12,i,n2) ((e12)?(i):((n2)-1))
165#define INT_MAX3(e13e24,i,n3) ((e13e24)?(i):((n3)-1))
166#define INT_MAX4(e13e24,e34,i,j,k,n4) \
167 ((e34)?(((e13e24)&&((k)==(i)))?(j):(k)) \
168 :((e13e24)&&((k)==(i)))?(j):(n4)-1)
Generated at Sun Nov 27 2022 00:00:00 for MPQC
2.3.1 using the documentation package Doxygen
1.9.5.