00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _chemistry_qc_libint2_libint2utils_h
00029 #define _chemistry_qc_libint2_libint2utils_h
00030
00031 namespace {
00032 typedef Libint_t prim_data;
00033 inline void assign_FjT(prim_data* Data, const int& jmax, const double* FjT, const double& scale) {
00034 switch (jmax) {
00035 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(28))
00036 case 28:
00037 Data->LIBINT_T_SS_EREP_SS(28)[0] = FjT[28] * scale;
00038 #endif
00039 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(27))
00040 case 27:
00041 Data->LIBINT_T_SS_EREP_SS(27)[0] = FjT[27] * scale;
00042 #endif
00043 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(26))
00044 case 26:
00045 Data->LIBINT_T_SS_EREP_SS(26)[0] = FjT[26] * scale;
00046 #endif
00047 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(25))
00048 case 25:
00049 Data->LIBINT_T_SS_EREP_SS(25)[0] = FjT[25] * scale;
00050 #endif
00051 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(24))
00052 case 24:
00053 Data->LIBINT_T_SS_EREP_SS(24)[0] = FjT[24] * scale;
00054 #endif
00055 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(23))
00056 case 23:
00057 Data->LIBINT_T_SS_EREP_SS(23)[0] = FjT[23] * scale;
00058 #endif
00059 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(22))
00060 case 22:
00061 Data->LIBINT_T_SS_EREP_SS(22)[0] = FjT[22] * scale;
00062 #endif
00063 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(21))
00064 case 21:
00065 Data->LIBINT_T_SS_EREP_SS(21)[0] = FjT[21] * scale;
00066 #endif
00067 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(20))
00068 case 20:
00069 Data->LIBINT_T_SS_EREP_SS(20)[0] = FjT[20] * scale;
00070 #endif
00071 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(19))
00072 case 19:
00073 Data->LIBINT_T_SS_EREP_SS(19)[0] = FjT[19] * scale;
00074 #endif
00075 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(18))
00076 case 18:
00077 Data->LIBINT_T_SS_EREP_SS(18)[0] = FjT[18] * scale;
00078 #endif
00079 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(17))
00080 case 17:
00081 Data->LIBINT_T_SS_EREP_SS(17)[0] = FjT[17] * scale;
00082 #endif
00083 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(16))
00084 case 16:
00085 Data->LIBINT_T_SS_EREP_SS(16)[0] = FjT[16] * scale;
00086 #endif
00087 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(15))
00088 case 15:
00089 Data->LIBINT_T_SS_EREP_SS(15)[0] = FjT[15] * scale;
00090 #endif
00091 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(14))
00092 case 14:
00093 Data->LIBINT_T_SS_EREP_SS(14)[0] = FjT[14] * scale;
00094 #endif
00095 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(13))
00096 case 13:
00097 Data->LIBINT_T_SS_EREP_SS(13)[0] = FjT[13] * scale;
00098 #endif
00099 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(12))
00100 case 12:
00101 Data->LIBINT_T_SS_EREP_SS(12)[0] = FjT[12] * scale;
00102 #endif
00103 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(11))
00104 case 11:
00105 Data->LIBINT_T_SS_EREP_SS(11)[0] = FjT[11] * scale;
00106 #endif
00107 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(10))
00108 case 10:
00109 Data->LIBINT_T_SS_EREP_SS(10)[0] = FjT[10] * scale;
00110 #endif
00111 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(9))
00112 case 9:
00113 Data->LIBINT_T_SS_EREP_SS(9)[0] = FjT[9] * scale;
00114 #endif
00115 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(8))
00116 case 8:
00117 Data->LIBINT_T_SS_EREP_SS(8)[0] = FjT[8] * scale;
00118 #endif
00119 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(7))
00120 case 7:
00121 Data->LIBINT_T_SS_EREP_SS(7)[0] = FjT[7] * scale;
00122 #endif
00123 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(6))
00124 case 6:
00125 Data->LIBINT_T_SS_EREP_SS(6)[0] = FjT[6] * scale;
00126 #endif
00127 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(5))
00128 case 5:
00129 Data->LIBINT_T_SS_EREP_SS(5)[0] = FjT[5] * scale;
00130 #endif
00131 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(4))
00132 case 4:
00133 Data->LIBINT_T_SS_EREP_SS(4)[0] = FjT[4] * scale;
00134 #endif
00135 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(3))
00136 case 3:
00137 Data->LIBINT_T_SS_EREP_SS(3)[0] = FjT[3] * scale;
00138 #endif
00139 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(2))
00140 case 2:
00141 Data->LIBINT_T_SS_EREP_SS(2)[0] = FjT[2] * scale;
00142 #endif
00143 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(1))
00144 case 1:
00145 Data->LIBINT_T_SS_EREP_SS(1)[0] = FjT[1] * scale;
00146 #endif
00147 #if LIBINT2_DEFINED(eri,LIBINT_T_SS_EREP_SS(0))
00148 case 0:
00149 Data->LIBINT_T_SS_EREP_SS(0)[0] = FjT[0] * scale;
00150 #endif
00151 break;
00152 default:
00153 throw std::logic_error("assign_FjT() -- max_am exceeded");
00154 }
00155 }
00156
00157 inline void assign_ss_r12m1g12_ss(prim_data* Data, const int& jmax, const double* ss_r12m1g12_ss, const double& scale) {
00158 switch (jmax) {
00159 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(28))
00160 case 28:
00161 Data->LIBINT_T_SS_Km1G12_SS(28)[0] = ss_r12m1g12_ss[28] * scale;
00162 #endif
00163 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(27))
00164 case 27:
00165 Data->LIBINT_T_SS_Km1G12_SS(27)[0] = ss_r12m1g12_ss[27] * scale;
00166 #endif
00167 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(26))
00168 case 26:
00169 Data->LIBINT_T_SS_Km1G12_SS(26)[0] = ss_r12m1g12_ss[26] * scale;
00170 #endif
00171 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(25))
00172 case 25:
00173 Data->LIBINT_T_SS_Km1G12_SS(25)[0] = ss_r12m1g12_ss[25] * scale;
00174 #endif
00175 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(24))
00176 case 24:
00177 Data->LIBINT_T_SS_Km1G12_SS(24)[0] = ss_r12m1g12_ss[24] * scale;
00178 #endif
00179 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(23))
00180 case 23:
00181 Data->LIBINT_T_SS_Km1G12_SS(23)[0] = ss_r12m1g12_ss[23] * scale;
00182 #endif
00183 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(22))
00184 case 22:
00185 Data->LIBINT_T_SS_Km1G12_SS(22)[0] = ss_r12m1g12_ss[22] * scale;
00186 #endif
00187 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(21))
00188 case 21:
00189 Data->LIBINT_T_SS_Km1G12_SS(21)[0] = ss_r12m1g12_ss[21] * scale;
00190 #endif
00191 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(20))
00192 case 20:
00193 Data->LIBINT_T_SS_Km1G12_SS(20)[0] = ss_r12m1g12_ss[20] * scale;
00194 #endif
00195 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(19))
00196 case 19:
00197 Data->LIBINT_T_SS_Km1G12_SS(19)[0] = ss_r12m1g12_ss[19] * scale;
00198 #endif
00199 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(18))
00200 case 18:
00201 Data->LIBINT_T_SS_Km1G12_SS(18)[0] = ss_r12m1g12_ss[18] * scale;
00202 #endif
00203 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(17))
00204 case 17:
00205 Data->LIBINT_T_SS_Km1G12_SS(17)[0] = ss_r12m1g12_ss[17] * scale;
00206 #endif
00207 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(16))
00208 case 16:
00209 Data->LIBINT_T_SS_Km1G12_SS(16)[0] = ss_r12m1g12_ss[16] * scale;
00210 #endif
00211 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(15))
00212 case 15:
00213 Data->LIBINT_T_SS_Km1G12_SS(15)[0] = ss_r12m1g12_ss[15] * scale;
00214 #endif
00215 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(14))
00216 case 14:
00217 Data->LIBINT_T_SS_Km1G12_SS(14)[0] = ss_r12m1g12_ss[14] * scale;
00218 #endif
00219 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(13))
00220 case 13:
00221 Data->LIBINT_T_SS_Km1G12_SS(13)[0] = ss_r12m1g12_ss[13] * scale;
00222 #endif
00223 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(12))
00224 case 12:
00225 Data->LIBINT_T_SS_Km1G12_SS(12)[0] = ss_r12m1g12_ss[12] * scale;
00226 #endif
00227 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(11))
00228 case 11:
00229 Data->LIBINT_T_SS_Km1G12_SS(11)[0] = ss_r12m1g12_ss[11] * scale;
00230 #endif
00231 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(10))
00232 case 10:
00233 Data->LIBINT_T_SS_Km1G12_SS(10)[0] = ss_r12m1g12_ss[10] * scale;
00234 #endif
00235 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(9))
00236 case 9:
00237 Data->LIBINT_T_SS_Km1G12_SS(9)[0] = ss_r12m1g12_ss[9] * scale;
00238 #endif
00239 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(8))
00240 case 8:
00241 Data->LIBINT_T_SS_Km1G12_SS(8)[0] = ss_r12m1g12_ss[8] * scale;
00242 #endif
00243 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(7))
00244 case 7:
00245 Data->LIBINT_T_SS_Km1G12_SS(7)[0] = ss_r12m1g12_ss[7] * scale;
00246 #endif
00247 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(6))
00248 case 6:
00249 Data->LIBINT_T_SS_Km1G12_SS(6)[0] = ss_r12m1g12_ss[6] * scale;
00250 #endif
00251 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(5))
00252 case 5:
00253 Data->LIBINT_T_SS_Km1G12_SS(5)[0] = ss_r12m1g12_ss[5] * scale;
00254 #endif
00255 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(4))
00256 case 4:
00257 Data->LIBINT_T_SS_Km1G12_SS(4)[0] = ss_r12m1g12_ss[4] * scale;
00258 #endif
00259 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(3))
00260 case 3:
00261 Data->LIBINT_T_SS_Km1G12_SS(3)[0] = ss_r12m1g12_ss[3] * scale;
00262 #endif
00263 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(2))
00264 case 2:
00265 Data->LIBINT_T_SS_Km1G12_SS(2)[0] = ss_r12m1g12_ss[2] * scale;
00266 #endif
00267 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(1))
00268 case 1:
00269 Data->LIBINT_T_SS_Km1G12_SS(1)[0] = ss_r12m1g12_ss[1] * scale;
00270 #endif
00271 #if LIBINT2_DEFINED(r12kg12,LIBINT_T_SS_Km1G12_SS(0))
00272 case 0:
00273 Data->LIBINT_T_SS_Km1G12_SS(0)[0] = ss_r12m1g12_ss[0] * scale;
00274 #endif
00275 break;
00276 default:
00277 throw std::logic_error("assign_ss_r12m1g12_ss() -- max_am exceeded");
00278 }
00279 }
00280 };
00281
00282 #endif
00283