double electron_repulsion_integral ( int nxa,int nya, int nza, double alp_a, VECTOR& Ra, int nxb,int nyb, int nzb, double alp_b, VECTOR& Rb, int nxc,int nyc, int nzc, double alp_c, VECTOR& Rc, int nxd,int nyd, int nzd, double alp_d, VECTOR& Rd, int is_normalize, int is_derivs, VECTOR& DA,VECTOR& DB,VECTOR& DC,VECTOR& DD ){ // Allocate working memory int i; int n_aux = 40; int n_auxv = 40; vector<double*> auxd(30); for(i=0;i<30;i++){ auxd[i] = new double[n_aux]; } vector<VECTOR*> auxv(5); for(i=0;i<5;i++){ auxv[i] = new VECTOR[n_auxv]; } // Do computations double res = electron_repulsion_integral(nxa,nya,nza,alp_a,Ra, nxb,nyb,nzb,alp_b,Rb, nxc,nyc,nzc,alp_c,Rc, nxd,nyd,nzd,alp_d,Rd, is_normalize, is_derivs, DA, DB, DC, DD, auxd, n_aux, auxv, n_auxv); // Clean working memory for(i=0;i<30;i++){ delete [] auxd[i]; } auxd.clear(); for(i=0;i<5;i++){ delete [] auxv[i]; } auxv.clear(); return res; }// eri - without externam memory allocation
inline unsigned int hwcap() { return auxv(AT_HWCAP); }