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_cints_tform_h
00029 #define _chemistry_qc_cints_tform_h
00030
00031 #include <chemistry/qc/basis/gaussshell.h>
00032 #include <chemistry/qc/basis/transform.h>
00033 #include <chemistry/qc/intcca/macros.h>
00034
00035 namespace sc {
00036
00037 class Integral;
00038
00039 class SphericalTransformComponentCCA : public SphericalTransformComponent {
00040 public:
00041 void init(int a, int b, int c, double coef, int pureindex) {
00042 a_ = a;
00043 b_ = b;
00044 c_ = c;
00045
00046
00047 coef_ = coef;
00048
00049 pureindex_ = pureindex;
00050 cartindex_ = INT_CARTINDEX(a+b+c,a,b);
00051 }
00052 };
00053
00054 class SphericalTransformCCA : public SphericalTransform {
00055 public:
00056 SphericalTransformCCA(int l, int subl=-1):SphericalTransform(l,subl) {
00057 init();
00058 }
00059
00060 SphericalTransformComponent * new_components() {
00061 return new SphericalTransformComponentCCA[n_+1];
00062 }
00063 };
00064
00065 class ISphericalTransformCCA : public ISphericalTransform {
00066 public:
00067 ISphericalTransformCCA(int l, int subl=-1):ISphericalTransform(l,subl) {
00068 init();
00069 }
00070
00071 SphericalTransformComponent * new_components() {
00072 return new SphericalTransformComponentCCA[n_+1];
00073 }
00074 };
00075
00076 }
00077
00078 #endif
00079
00080
00081
00082
00083