From 308cf1cb191d1e1ec1d92fa302604ad57f41a2bc Mon Sep 17 00:00:00 2001 From: Qiming Sun Date: Tue, 20 Mar 2018 17:24:56 -0700 Subject: [PATCH] New integrals --- ChangeLog | 12 +- README | 4 +- scripts/auto_intor.cl | 4 + src/autocode/intor1.c | 408 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 423 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index adaf6d6f..872b8929 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,14 @@ -Version 3.0.9 (2017-03-08): +Version 3.0.10 (2018-03-20): + * New integrals + , + , + and + +Version 3.0.9 (2018-03-08): * New integrals (i |nabla j) and -1/2 *(i | nabla^2 j) -Version 3.0.8 (2017-02-14): +Version 3.0.8 (2018-02-14): * Fix Fortran APIs -Version 3.0.7 (2017-01-15): +Version 3.0.7 (2018-01-15): * Add 3-center SOC integrals Version 3.0.6 (2017-12-20): * Add integrals for X2C graidents and hessian diff --git a/README b/README index 7337f14c..3d30a2ac 100644 --- a/README +++ b/README @@ -1,8 +1,8 @@ libcint ======= -version 3.0.9 -2018-03-08 +version 3.0.10 +2018-03-20 What is libcint diff --git a/scripts/auto_intor.cl b/scripts/auto_intor.cl index 3a0cf6c9..2b338499 100644 --- a/scripts/auto_intor.cl +++ b/scripts/auto_intor.cl @@ -35,6 +35,10 @@ '("int1e_prinvxp" (p* \| rinv cross p \| )) '("int1e_pnucxp" (p* \| nuc cross p \| )) '("int2e_p1vxp1" (p* \, cross p \| \, )) ; SSO + '("int1e_irp" ( \| rc nabla \| )) + '("int1e_irrp" ( \| rc rc nabla \| )) + '("int1e_irpr" ( \| rc nabla rc \| )) + '("int1e_irrr" ( \| rc rc rc \| )) ) (gen-cint "intor2.c" diff --git a/src/autocode/intor1.c b/src/autocode/intor1.c index 41adf1b9..9bc7376c 100644 --- a/src/autocode/intor1.c +++ b/src/autocode/intor1.c @@ -2123,3 +2123,411 @@ return CINT2e_spinor_drv(out, dims, &envs, opt, cache, &c2s_sf_2e1, &c2s_sf_2e2) } // int2e_p1vxp1_spinor ALL_CINT(int2e_p1vxp1) ALL_CINT_FORTRAN_(int2e_p1vxp1) +/* */ +static void CINTgout1e_int1e_irp(double *gout, double *g, int *idx, CINTEnvVars *envs, int gout_empty) { +int nf = envs->nf; +int ix, iy, iz, n; +double *g0 = g; +double *g1 = g0 + envs->g_size * 3; +double *g2 = g1 + envs->g_size * 3; +double *g3 = g2 + envs->g_size * 3; +double drj[3]; +drj[0] = envs->rj[0] - envs->env[PTR_COMMON_ORIG+0]; +drj[1] = envs->rj[1] - envs->env[PTR_COMMON_ORIG+1]; +drj[2] = envs->rj[2] - envs->env[PTR_COMMON_ORIG+2]; +double s[9]; +G1E_D_J(g1, g0, envs->i_l+0, envs->j_l+0, 0); +G1E_RCJ(g2, g0, envs->i_l+0, envs->j_l+1, 0); +G1E_D_J(g3, g2, envs->i_l+0, envs->j_l+0, 0); +for (n = 0; n < nf; n++) { +ix = idx[0+n*3]; +iy = idx[1+n*3]; +iz = idx[2+n*3]; +s[0] = + g3[ix+0]*g0[iy+0]*g0[iz+0]; +s[1] = + g2[ix+0]*g1[iy+0]*g0[iz+0]; +s[2] = + g2[ix+0]*g0[iy+0]*g1[iz+0]; +s[3] = + g1[ix+0]*g2[iy+0]*g0[iz+0]; +s[4] = + g0[ix+0]*g3[iy+0]*g0[iz+0]; +s[5] = + g0[ix+0]*g2[iy+0]*g1[iz+0]; +s[6] = + g1[ix+0]*g0[iy+0]*g2[iz+0]; +s[7] = + g0[ix+0]*g1[iy+0]*g2[iz+0]; +s[8] = + g0[ix+0]*g0[iy+0]*g3[iz+0]; +gout[n*9+0] += + s[0]; +gout[n*9+1] += + s[1]; +gout[n*9+2] += + s[2]; +gout[n*9+3] += + s[3]; +gout[n*9+4] += + s[4]; +gout[n*9+5] += + s[5]; +gout[n*9+6] += + s[6]; +gout[n*9+7] += + s[7]; +gout[n*9+8] += + s[8]; +}} +void int1e_irp_optimizer(CINTOpt **opt, int *atm, int natm, int *bas, int nbas, double *env) { +int ng[] = {0, 2, 0, 0, 2, 1, 1, 9}; +CINTall_1e_optimizer(opt, ng, atm, natm, bas, nbas, env); +} +int int1e_irp_cart(double *out, int *dims, int *shls, +int *atm, int natm, int *bas, int nbas, double *env, CINTOpt *opt, double *cache) { +int ng[] = {0, 2, 0, 0, 2, 1, 1, 9}; +CINTEnvVars envs; +CINTinit_int1e_EnvVars(&envs, ng, shls, atm, natm, bas, nbas, env); +envs.f_gout = &CINTgout1e_int1e_irp; +return CINT1e_drv(out, dims, &envs, cache, &c2s_cart_1e, 0); +} // int1e_irp_cart +int int1e_irp_sph(double *out, int *dims, int *shls, +int *atm, int natm, int *bas, int nbas, double *env, CINTOpt *opt, double *cache) { +int ng[] = {0, 2, 0, 0, 2, 1, 1, 9}; +CINTEnvVars envs; +CINTinit_int1e_EnvVars(&envs, ng, shls, atm, natm, bas, nbas, env); +envs.f_gout = &CINTgout1e_int1e_irp; +return CINT1e_drv(out, dims, &envs, cache, &c2s_sph_1e, 0); +} // int1e_irp_sph +int int1e_irp_spinor(double complex *out, int *dims, int *shls, +int *atm, int natm, int *bas, int nbas, double *env, CINTOpt *opt, double *cache) { +int ng[] = {0, 2, 0, 0, 2, 1, 1, 9}; +CINTEnvVars envs; +CINTinit_int1e_EnvVars(&envs, ng, shls, atm, natm, bas, nbas, env); +envs.f_gout = &CINTgout1e_int1e_irp; +return CINT1e_spinor_drv(out, dims, &envs, cache, &c2s_sf_1e, 0); +} // int1e_irp_spinor +ALL_CINT1E(int1e_irp) +ALL_CINT1E_FORTRAN_(int1e_irp) +/* */ +static void CINTgout1e_int1e_irrp(double *gout, double *g, int *idx, CINTEnvVars *envs, int gout_empty) { +int nf = envs->nf; +int ix, iy, iz, n; +double *g0 = g; +double *g1 = g0 + envs->g_size * 3; +double *g2 = g1 + envs->g_size * 3; +double *g3 = g2 + envs->g_size * 3; +double *g4 = g3 + envs->g_size * 3; +double *g5 = g4 + envs->g_size * 3; +double *g6 = g5 + envs->g_size * 3; +double *g7 = g6 + envs->g_size * 3; +double drj[3]; +drj[0] = envs->rj[0] - envs->env[PTR_COMMON_ORIG+0]; +drj[1] = envs->rj[1] - envs->env[PTR_COMMON_ORIG+1]; +drj[2] = envs->rj[2] - envs->env[PTR_COMMON_ORIG+2]; +double s[27]; +G1E_D_J(g1, g0, envs->i_l+0, envs->j_l+0, 0); +G1E_RCJ(g2, g0, envs->i_l+0, envs->j_l+1, 0); +G1E_D_J(g3, g2, envs->i_l+0, envs->j_l+0, 0); +G1E_RCJ(g4, g0, envs->i_l+0, envs->j_l+2, 0); +G1E_D_J(g5, g4, envs->i_l+0, envs->j_l+0, 0); +G1E_RCJ(g6, g4, envs->i_l+0, envs->j_l+1, 0); +G1E_D_J(g7, g6, envs->i_l+0, envs->j_l+0, 0); +for (n = 0; n < nf; n++) { +ix = idx[0+n*3]; +iy = idx[1+n*3]; +iz = idx[2+n*3]; +s[0] = + g7[ix+0]*g0[iy+0]*g0[iz+0]; +s[1] = + g6[ix+0]*g1[iy+0]*g0[iz+0]; +s[2] = + g6[ix+0]*g0[iy+0]*g1[iz+0]; +s[3] = + g5[ix+0]*g2[iy+0]*g0[iz+0]; +s[4] = + g4[ix+0]*g3[iy+0]*g0[iz+0]; +s[5] = + g4[ix+0]*g2[iy+0]*g1[iz+0]; +s[6] = + g5[ix+0]*g0[iy+0]*g2[iz+0]; +s[7] = + g4[ix+0]*g1[iy+0]*g2[iz+0]; +s[8] = + g4[ix+0]*g0[iy+0]*g3[iz+0]; +s[9] = + g3[ix+0]*g4[iy+0]*g0[iz+0]; +s[10] = + g2[ix+0]*g5[iy+0]*g0[iz+0]; +s[11] = + g2[ix+0]*g4[iy+0]*g1[iz+0]; +s[12] = + g1[ix+0]*g6[iy+0]*g0[iz+0]; +s[13] = + g0[ix+0]*g7[iy+0]*g0[iz+0]; +s[14] = + g0[ix+0]*g6[iy+0]*g1[iz+0]; +s[15] = + g1[ix+0]*g4[iy+0]*g2[iz+0]; +s[16] = + g0[ix+0]*g5[iy+0]*g2[iz+0]; +s[17] = + g0[ix+0]*g4[iy+0]*g3[iz+0]; +s[18] = + g3[ix+0]*g0[iy+0]*g4[iz+0]; +s[19] = + g2[ix+0]*g1[iy+0]*g4[iz+0]; +s[20] = + g2[ix+0]*g0[iy+0]*g5[iz+0]; +s[21] = + g1[ix+0]*g2[iy+0]*g4[iz+0]; +s[22] = + g0[ix+0]*g3[iy+0]*g4[iz+0]; +s[23] = + g0[ix+0]*g2[iy+0]*g5[iz+0]; +s[24] = + g1[ix+0]*g0[iy+0]*g6[iz+0]; +s[25] = + g0[ix+0]*g1[iy+0]*g6[iz+0]; +s[26] = + g0[ix+0]*g0[iy+0]*g7[iz+0]; +gout[n*27+0] += + s[0]; +gout[n*27+1] += + s[1]; +gout[n*27+2] += + s[2]; +gout[n*27+3] += + s[3]; +gout[n*27+4] += + s[4]; +gout[n*27+5] += + s[5]; +gout[n*27+6] += + s[6]; +gout[n*27+7] += + s[7]; +gout[n*27+8] += + s[8]; +gout[n*27+9] += + s[9]; +gout[n*27+10] += + s[10]; +gout[n*27+11] += + s[11]; +gout[n*27+12] += + s[12]; +gout[n*27+13] += + s[13]; +gout[n*27+14] += + s[14]; +gout[n*27+15] += + s[15]; +gout[n*27+16] += + s[16]; +gout[n*27+17] += + s[17]; +gout[n*27+18] += + s[18]; +gout[n*27+19] += + s[19]; +gout[n*27+20] += + s[20]; +gout[n*27+21] += + s[21]; +gout[n*27+22] += + s[22]; +gout[n*27+23] += + s[23]; +gout[n*27+24] += + s[24]; +gout[n*27+25] += + s[25]; +gout[n*27+26] += + s[26]; +}} +void int1e_irrp_optimizer(CINTOpt **opt, int *atm, int natm, int *bas, int nbas, double *env) { +int ng[] = {0, 3, 0, 0, 3, 1, 1, 27}; +CINTall_1e_optimizer(opt, ng, atm, natm, bas, nbas, env); +} +int int1e_irrp_cart(double *out, int *dims, int *shls, +int *atm, int natm, int *bas, int nbas, double *env, CINTOpt *opt, double *cache) { +int ng[] = {0, 3, 0, 0, 3, 1, 1, 27}; +CINTEnvVars envs; +CINTinit_int1e_EnvVars(&envs, ng, shls, atm, natm, bas, nbas, env); +envs.f_gout = &CINTgout1e_int1e_irrp; +return CINT1e_drv(out, dims, &envs, cache, &c2s_cart_1e, 0); +} // int1e_irrp_cart +int int1e_irrp_sph(double *out, int *dims, int *shls, +int *atm, int natm, int *bas, int nbas, double *env, CINTOpt *opt, double *cache) { +int ng[] = {0, 3, 0, 0, 3, 1, 1, 27}; +CINTEnvVars envs; +CINTinit_int1e_EnvVars(&envs, ng, shls, atm, natm, bas, nbas, env); +envs.f_gout = &CINTgout1e_int1e_irrp; +return CINT1e_drv(out, dims, &envs, cache, &c2s_sph_1e, 0); +} // int1e_irrp_sph +int int1e_irrp_spinor(double complex *out, int *dims, int *shls, +int *atm, int natm, int *bas, int nbas, double *env, CINTOpt *opt, double *cache) { +int ng[] = {0, 3, 0, 0, 3, 1, 1, 27}; +CINTEnvVars envs; +CINTinit_int1e_EnvVars(&envs, ng, shls, atm, natm, bas, nbas, env); +envs.f_gout = &CINTgout1e_int1e_irrp; +return CINT1e_spinor_drv(out, dims, &envs, cache, &c2s_sf_1e, 0); +} // int1e_irrp_spinor +ALL_CINT1E(int1e_irrp) +ALL_CINT1E_FORTRAN_(int1e_irrp) +/* */ +static void CINTgout1e_int1e_irpr(double *gout, double *g, int *idx, CINTEnvVars *envs, int gout_empty) { +int nf = envs->nf; +int ix, iy, iz, n; +double *g0 = g; +double *g1 = g0 + envs->g_size * 3; +double *g2 = g1 + envs->g_size * 3; +double *g3 = g2 + envs->g_size * 3; +double *g4 = g3 + envs->g_size * 3; +double *g5 = g4 + envs->g_size * 3; +double *g6 = g5 + envs->g_size * 3; +double *g7 = g6 + envs->g_size * 3; +double drj[3]; +drj[0] = envs->rj[0] - envs->env[PTR_COMMON_ORIG+0]; +drj[1] = envs->rj[1] - envs->env[PTR_COMMON_ORIG+1]; +drj[2] = envs->rj[2] - envs->env[PTR_COMMON_ORIG+2]; +double s[27]; +G1E_RCJ(g1, g0, envs->i_l+0, envs->j_l+0, 0); +G1E_D_J(g2, g0, envs->i_l+0, envs->j_l+1, 0); +G1E_RCJ(g3, g2, envs->i_l+0, envs->j_l+0, 0); +G1E_RCJ(g4, g0, envs->i_l+0, envs->j_l+2, 0); +G1E_RCJ(g5, g4, envs->i_l+0, envs->j_l+0, 0); +G1E_D_J(g6, g4, envs->i_l+0, envs->j_l+1, 0); +G1E_RCJ(g7, g6, envs->i_l+0, envs->j_l+0, 0); +for (n = 0; n < nf; n++) { +ix = idx[0+n*3]; +iy = idx[1+n*3]; +iz = idx[2+n*3]; +s[0] = + g7[ix+0]*g0[iy+0]*g0[iz+0]; +s[1] = + g6[ix+0]*g1[iy+0]*g0[iz+0]; +s[2] = + g6[ix+0]*g0[iy+0]*g1[iz+0]; +s[3] = + g5[ix+0]*g2[iy+0]*g0[iz+0]; +s[4] = + g4[ix+0]*g3[iy+0]*g0[iz+0]; +s[5] = + g4[ix+0]*g2[iy+0]*g1[iz+0]; +s[6] = + g5[ix+0]*g0[iy+0]*g2[iz+0]; +s[7] = + g4[ix+0]*g1[iy+0]*g2[iz+0]; +s[8] = + g4[ix+0]*g0[iy+0]*g3[iz+0]; +s[9] = + g3[ix+0]*g4[iy+0]*g0[iz+0]; +s[10] = + g2[ix+0]*g5[iy+0]*g0[iz+0]; +s[11] = + g2[ix+0]*g4[iy+0]*g1[iz+0]; +s[12] = + g1[ix+0]*g6[iy+0]*g0[iz+0]; +s[13] = + g0[ix+0]*g7[iy+0]*g0[iz+0]; +s[14] = + g0[ix+0]*g6[iy+0]*g1[iz+0]; +s[15] = + g1[ix+0]*g4[iy+0]*g2[iz+0]; +s[16] = + g0[ix+0]*g5[iy+0]*g2[iz+0]; +s[17] = + g0[ix+0]*g4[iy+0]*g3[iz+0]; +s[18] = + g3[ix+0]*g0[iy+0]*g4[iz+0]; +s[19] = + g2[ix+0]*g1[iy+0]*g4[iz+0]; +s[20] = + g2[ix+0]*g0[iy+0]*g5[iz+0]; +s[21] = + g1[ix+0]*g2[iy+0]*g4[iz+0]; +s[22] = + g0[ix+0]*g3[iy+0]*g4[iz+0]; +s[23] = + g0[ix+0]*g2[iy+0]*g5[iz+0]; +s[24] = + g1[ix+0]*g0[iy+0]*g6[iz+0]; +s[25] = + g0[ix+0]*g1[iy+0]*g6[iz+0]; +s[26] = + g0[ix+0]*g0[iy+0]*g7[iz+0]; +gout[n*27+0] += + s[0]; +gout[n*27+1] += + s[1]; +gout[n*27+2] += + s[2]; +gout[n*27+3] += + s[3]; +gout[n*27+4] += + s[4]; +gout[n*27+5] += + s[5]; +gout[n*27+6] += + s[6]; +gout[n*27+7] += + s[7]; +gout[n*27+8] += + s[8]; +gout[n*27+9] += + s[9]; +gout[n*27+10] += + s[10]; +gout[n*27+11] += + s[11]; +gout[n*27+12] += + s[12]; +gout[n*27+13] += + s[13]; +gout[n*27+14] += + s[14]; +gout[n*27+15] += + s[15]; +gout[n*27+16] += + s[16]; +gout[n*27+17] += + s[17]; +gout[n*27+18] += + s[18]; +gout[n*27+19] += + s[19]; +gout[n*27+20] += + s[20]; +gout[n*27+21] += + s[21]; +gout[n*27+22] += + s[22]; +gout[n*27+23] += + s[23]; +gout[n*27+24] += + s[24]; +gout[n*27+25] += + s[25]; +gout[n*27+26] += + s[26]; +}} +void int1e_irpr_optimizer(CINTOpt **opt, int *atm, int natm, int *bas, int nbas, double *env) { +int ng[] = {0, 3, 0, 0, 3, 1, 1, 27}; +CINTall_1e_optimizer(opt, ng, atm, natm, bas, nbas, env); +} +int int1e_irpr_cart(double *out, int *dims, int *shls, +int *atm, int natm, int *bas, int nbas, double *env, CINTOpt *opt, double *cache) { +int ng[] = {0, 3, 0, 0, 3, 1, 1, 27}; +CINTEnvVars envs; +CINTinit_int1e_EnvVars(&envs, ng, shls, atm, natm, bas, nbas, env); +envs.f_gout = &CINTgout1e_int1e_irpr; +return CINT1e_drv(out, dims, &envs, cache, &c2s_cart_1e, 0); +} // int1e_irpr_cart +int int1e_irpr_sph(double *out, int *dims, int *shls, +int *atm, int natm, int *bas, int nbas, double *env, CINTOpt *opt, double *cache) { +int ng[] = {0, 3, 0, 0, 3, 1, 1, 27}; +CINTEnvVars envs; +CINTinit_int1e_EnvVars(&envs, ng, shls, atm, natm, bas, nbas, env); +envs.f_gout = &CINTgout1e_int1e_irpr; +return CINT1e_drv(out, dims, &envs, cache, &c2s_sph_1e, 0); +} // int1e_irpr_sph +int int1e_irpr_spinor(double complex *out, int *dims, int *shls, +int *atm, int natm, int *bas, int nbas, double *env, CINTOpt *opt, double *cache) { +int ng[] = {0, 3, 0, 0, 3, 1, 1, 27}; +CINTEnvVars envs; +CINTinit_int1e_EnvVars(&envs, ng, shls, atm, natm, bas, nbas, env); +envs.f_gout = &CINTgout1e_int1e_irpr; +return CINT1e_spinor_drv(out, dims, &envs, cache, &c2s_sf_1e, 0); +} // int1e_irpr_spinor +ALL_CINT1E(int1e_irpr) +ALL_CINT1E_FORTRAN_(int1e_irpr) +/* */ +static void CINTgout1e_int1e_irrr(double *gout, double *g, int *idx, CINTEnvVars *envs, int gout_empty) { +int nf = envs->nf; +int ix, iy, iz, n; +double *g0 = g; +double *g1 = g0 + envs->g_size * 3; +double *g2 = g1 + envs->g_size * 3; +double *g3 = g2 + envs->g_size * 3; +double *g4 = g3 + envs->g_size * 3; +double *g5 = g4 + envs->g_size * 3; +double *g6 = g5 + envs->g_size * 3; +double *g7 = g6 + envs->g_size * 3; +double drj[3]; +drj[0] = envs->rj[0] - envs->env[PTR_COMMON_ORIG+0]; +drj[1] = envs->rj[1] - envs->env[PTR_COMMON_ORIG+1]; +drj[2] = envs->rj[2] - envs->env[PTR_COMMON_ORIG+2]; +double s[27]; +G1E_RCJ(g1, g0, envs->i_l+0, envs->j_l+0, 0); +G1E_RCJ(g2, g0, envs->i_l+0, envs->j_l+1, 0); +G1E_RCJ(g3, g2, envs->i_l+0, envs->j_l+0, 0); +G1E_RCJ(g4, g0, envs->i_l+0, envs->j_l+2, 0); +G1E_RCJ(g5, g4, envs->i_l+0, envs->j_l+0, 0); +G1E_RCJ(g6, g4, envs->i_l+0, envs->j_l+1, 0); +G1E_RCJ(g7, g6, envs->i_l+0, envs->j_l+0, 0); +for (n = 0; n < nf; n++) { +ix = idx[0+n*3]; +iy = idx[1+n*3]; +iz = idx[2+n*3]; +s[0] = + g7[ix+0]*g0[iy+0]*g0[iz+0]; +s[1] = + g6[ix+0]*g1[iy+0]*g0[iz+0]; +s[2] = + g6[ix+0]*g0[iy+0]*g1[iz+0]; +s[3] = + g5[ix+0]*g2[iy+0]*g0[iz+0]; +s[4] = + g4[ix+0]*g3[iy+0]*g0[iz+0]; +s[5] = + g4[ix+0]*g2[iy+0]*g1[iz+0]; +s[6] = + g5[ix+0]*g0[iy+0]*g2[iz+0]; +s[7] = + g4[ix+0]*g1[iy+0]*g2[iz+0]; +s[8] = + g4[ix+0]*g0[iy+0]*g3[iz+0]; +s[9] = + g3[ix+0]*g4[iy+0]*g0[iz+0]; +s[10] = + g2[ix+0]*g5[iy+0]*g0[iz+0]; +s[11] = + g2[ix+0]*g4[iy+0]*g1[iz+0]; +s[12] = + g1[ix+0]*g6[iy+0]*g0[iz+0]; +s[13] = + g0[ix+0]*g7[iy+0]*g0[iz+0]; +s[14] = + g0[ix+0]*g6[iy+0]*g1[iz+0]; +s[15] = + g1[ix+0]*g4[iy+0]*g2[iz+0]; +s[16] = + g0[ix+0]*g5[iy+0]*g2[iz+0]; +s[17] = + g0[ix+0]*g4[iy+0]*g3[iz+0]; +s[18] = + g3[ix+0]*g0[iy+0]*g4[iz+0]; +s[19] = + g2[ix+0]*g1[iy+0]*g4[iz+0]; +s[20] = + g2[ix+0]*g0[iy+0]*g5[iz+0]; +s[21] = + g1[ix+0]*g2[iy+0]*g4[iz+0]; +s[22] = + g0[ix+0]*g3[iy+0]*g4[iz+0]; +s[23] = + g0[ix+0]*g2[iy+0]*g5[iz+0]; +s[24] = + g1[ix+0]*g0[iy+0]*g6[iz+0]; +s[25] = + g0[ix+0]*g1[iy+0]*g6[iz+0]; +s[26] = + g0[ix+0]*g0[iy+0]*g7[iz+0]; +gout[n*27+0] += + s[0]; +gout[n*27+1] += + s[1]; +gout[n*27+2] += + s[2]; +gout[n*27+3] += + s[3]; +gout[n*27+4] += + s[4]; +gout[n*27+5] += + s[5]; +gout[n*27+6] += + s[6]; +gout[n*27+7] += + s[7]; +gout[n*27+8] += + s[8]; +gout[n*27+9] += + s[9]; +gout[n*27+10] += + s[10]; +gout[n*27+11] += + s[11]; +gout[n*27+12] += + s[12]; +gout[n*27+13] += + s[13]; +gout[n*27+14] += + s[14]; +gout[n*27+15] += + s[15]; +gout[n*27+16] += + s[16]; +gout[n*27+17] += + s[17]; +gout[n*27+18] += + s[18]; +gout[n*27+19] += + s[19]; +gout[n*27+20] += + s[20]; +gout[n*27+21] += + s[21]; +gout[n*27+22] += + s[22]; +gout[n*27+23] += + s[23]; +gout[n*27+24] += + s[24]; +gout[n*27+25] += + s[25]; +gout[n*27+26] += + s[26]; +}} +void int1e_irrr_optimizer(CINTOpt **opt, int *atm, int natm, int *bas, int nbas, double *env) { +int ng[] = {0, 3, 0, 0, 3, 1, 1, 27}; +CINTall_1e_optimizer(opt, ng, atm, natm, bas, nbas, env); +} +int int1e_irrr_cart(double *out, int *dims, int *shls, +int *atm, int natm, int *bas, int nbas, double *env, CINTOpt *opt, double *cache) { +int ng[] = {0, 3, 0, 0, 3, 1, 1, 27}; +CINTEnvVars envs; +CINTinit_int1e_EnvVars(&envs, ng, shls, atm, natm, bas, nbas, env); +envs.f_gout = &CINTgout1e_int1e_irrr; +return CINT1e_drv(out, dims, &envs, cache, &c2s_cart_1e, 0); +} // int1e_irrr_cart +int int1e_irrr_sph(double *out, int *dims, int *shls, +int *atm, int natm, int *bas, int nbas, double *env, CINTOpt *opt, double *cache) { +int ng[] = {0, 3, 0, 0, 3, 1, 1, 27}; +CINTEnvVars envs; +CINTinit_int1e_EnvVars(&envs, ng, shls, atm, natm, bas, nbas, env); +envs.f_gout = &CINTgout1e_int1e_irrr; +return CINT1e_drv(out, dims, &envs, cache, &c2s_sph_1e, 0); +} // int1e_irrr_sph +int int1e_irrr_spinor(double complex *out, int *dims, int *shls, +int *atm, int natm, int *bas, int nbas, double *env, CINTOpt *opt, double *cache) { +int ng[] = {0, 3, 0, 0, 3, 1, 1, 27}; +CINTEnvVars envs; +CINTinit_int1e_EnvVars(&envs, ng, shls, atm, natm, bas, nbas, env); +envs.f_gout = &CINTgout1e_int1e_irrr; +return CINT1e_spinor_drv(out, dims, &envs, cache, &c2s_sf_1e, 0); +} // int1e_irrr_spinor +ALL_CINT1E(int1e_irrr) +ALL_CINT1E_FORTRAN_(int1e_irrr)