Main Page   Class Hierarchy   Compound List   File List   Compound Members   Related Pages  

extent.h

00001 //
00002 // extent.h
00003 //
00004 
00005 #ifndef _chemistry_qc_basis_extent_h
00006 #define _chemistry_qc_basis_extent_h
00007 
00008 #ifdef __GNUC__
00009 #pragma interface
00010 #endif
00011 
00012 #include <float.h>
00013 #include <chemistry/qc/basis/basis.h>
00014 
00015 struct ExtentData {
00016     int shell;
00017     double bound;
00018     ExtentData() {}
00019     ExtentData(int s, double b): shell(s), bound(b) {}
00020 };
00021 
00022 ARRAY_dec(ExtentData);
00023 
00024 class ShellExtent: public RefCount {
00025     double lower_[3];
00026     double resolution_;
00027     int n_[3];
00028     ArrayExtentData *contributing_shells_;
00029     ArrayExtentData null_;
00030 
00031     ArrayExtentData &data(int *b);
00032     double distance(double loc, int axis, int origin, int point);
00033     ArrayExtentData &data(int x, int y, int z);
00034   public:
00035     ShellExtent();
00036     ~ShellExtent();
00037     void init(const Ref<GaussianBasisSet>&,
00038               double resolution = 1.0, double tolerance = DBL_EPSILON);
00041     const ArrayExtentData &contributing_shells(int x, int y, int z)
00042         { return data(x,y,z); }
00043     const ArrayExtentData &contributing_shells(double x, double y, double z);
00044     void print(std::ostream &o = ExEnv::out());
00045     const int *n() const { return n_; }
00046     int n(int ixyz) const { return n_[ixyz]; }
00047     double lower(int ixyz) const { return lower_[ixyz]; }
00048     double resolution() const { return resolution_; }
00049 };
00050 
00051 
00052 #endif
00053 
00054 // Local Variables:
00055 // mode: c++
00056 // c-file-style: "CLJ"
00057 // End:

Generated at Thu Oct 4 18:08:44 2001 for MPQC 2.0.0 using the documentation package Doxygen 1.2.5.