#ifndef PSTO_H #define PSTO_H #include #include "Ylm.h" // define if we need to use the normalization factor somewhere // #define USE_NNM using namespace std ; #define NMAX 10 //primitive STO at origin, not normalized Nnm*r^(n-1)exp(-alpha*r)Y_l^m ****************************************** class pSTO : public Ylm { public: int n ; // n=0,1,2,3,.... <= NMAX double alpha; // exponent #ifdef USE_NNM double Nnm; // normalization #endif #if 0 pSTO() : Ylm() ; #endif explicit pSTO(const int nn, const int ll, const int mm, const double expo, const complex coef=1.) ; pSTO & operator*= (const double & fact) ; pSTO & operator*= (const complex & fact) ; private: #ifdef USE_NNM const static double Nntab[NMAX+1] ; #endif } ; /* pSTO */ pSTO conj(const pSTO & arg) ; bool operator== (const pSTO & first, const pSTO & secnd) ; ostream & operator<<(ostream &os, const pSTO & someSTO) ; pSTO operator*(const complex & fact, const pSTO & in) ; vector operator*(const pSTO & left, const pSTO & right) ; #endif /* PSTO_H */