28 #ifndef _chemistry_qc_basis_gaussshell_h
29 #define _chemistry_qc_basis_gaussshell_h
36 #include <util/state/state.h>
37 #include <math/scmat/vector3.h>
38 #include <util/keyval/keyval.h>
43 class SphericalTransformIter;
50 enum PrimitiveType { Normalized, Unnormalized };
51 enum GaussianType { Cartesian, Pure };
66 void init_computed_data();
68 double shell_normalization(
int);
70 void normalize_shell();
71 PrimitiveType keyval_init(
const Ref<KeyVal>&,
int,
int);
72 static const char* amtypes;
73 static const char* AMTYPES;
75 int test_monobound(
double &r,
double &bound)
const;
104 PrimitiveType pt = GaussianShell::Normalized,
105 bool do_normalize_shell =
true);
117 PrimitiveType pt = GaussianShell::Normalized);
141 int am(
int con)
const {
return l[con]; }
147 char amchar(
int con)
const {
return amtypes[l[con]]; }
156 int ncartesian(
int con)
const {
return ((l[con]+2)*(l[con]+1))>>1; }
160 int is_pure(
int con)
const {
return puream[con]; }
168 double exponent(
int iprim)
const {
return exp[iprim]; }
173 const SCVector3& r,
double* basis_values);
179 double* basis_values=0)
const;
184 double* h_values,
double* g_values=0,
185 double* basis_values=0)
const;
191 int con,
int func1,
int func2)
const;
197 int a1,
int b1,
int c1,
198 int a2,
int b2,
int c2)
const;
205 double extent(
double threshold)
const;