28 #ifndef _chemistry_qc_basis_obint_h
29 #define _chemistry_qc_basis_obint_h
35 #include <util/ref/ref.h>
36 #include <util/state/state.h>
37 #include <math/scmat/matrix.h>
38 #include <math/scmat/elemop.h>
40 #include <chemistry/qc/basis/gaussbas.h>
41 #include <chemistry/qc/basis/dercent.h>
58 void set_position(
double*);
59 void set_vector(
double*);
68 DipoleData(
double *d) {origin[0]=d[0]; origin[1]=d[1]; origin[2]=d[2];}
69 DipoleData() {origin[0]=origin[1]=origin[2]=0.0;}
71 void set_origin(
double*);
79 const double *charges_;
80 const double *
const*positions_;
81 double *alloced_charges_;
82 double **alloced_positions_;
88 const double *
const*positions,
const double *charges,
92 int ncharges()
const {
return ncharges_; }
93 const double *charges()
const {
return charges_; }
94 const double *
const*positions()
const {
return positions_; }
142 const double *
buffer()
const;
160 Integral *integral()
const {
return integral_; }
201 const double *
buffer()
const;
219 Integral *integral()
const {
return integral_; }
257 void init(
const double * buffer,
int ishell,
int jshell,
258 int ioff,
int joff,
int nfunci,
int nfuncj,
int redund=0,
261 void start() { icur=jcur=index=0; }
262 int ready()
const {
return (icur < iend); }
265 if (jcur < ((e12)?(icur):((jend)-1))) {
277 int current_i()
const {
return icur; }
278 int current_j()
const {
return jcur; }
280 int i()
const {
return icur+ioffset; }
281 int j()
const {
return jcur+joffset; }
283 int nint()
const {
return iend*jend; }
285 double val()
const {
return buf[index]*scale_; }
313 virtual void start(
int ist=0,
int jst=0,
int ien=0,
int jen=0);
316 int ready()
const {
return (icur < iend); }
318 int ishell()
const {
return icur; }
319 int jshell()
const {
return jcur; }
321 int ijshell()
const {
return ij; }
323 int redundant()
const {
return redund; }
324 void set_redundant(
int i) { redund=i; }
326 virtual double scale()
const;
332 virtual bool cloneable();
380 int has_side_effects();
381 int has_side_effects_in_arg1();
382 int has_side_effects_in_arg2();
430 const double *
buffer()
const;
437 virtual void compute_shell(
int ish,
int jsh,
int center) = 0;
474 const double *
buffer()
const;