00001 /* 1D quadrature rules 00002 */ 00003 00004 #ifndef quadrature_hh 00005 #define quadrature_hh 00006 00007 #include <map> 00008 00009 #include "basics/typedefs.hh" 00010 #include "basics/outputOperator.hh" 00011 00012 namespace concepts { 00013 00014 // ************************************************************ Quadrature ** 00015 00094 template<int type> 00095 class Quadrature : public OutputOperator { 00096 public: 00101 Quadrature(uint n); 00103 const Real* abscissas() const { return abscissas_; } 00105 const Real* weights() const { return weights_; } 00107 uint n() const { return n_; } 00112 static std::string storedPoints(); 00113 protected: 00114 virtual std::ostream& info(std::ostream& os) const; 00115 00117 Real* abscissas_; 00119 Real* weights_; 00120 private: 00125 static std::map<uint, Real*> abscissas_H; 00126 00131 static std::map<uint, Real*> weights_H; 00132 00134 uint n_; 00135 00136 bool find_(); 00137 }; 00138 00139 } // namespace concepts 00140 00141 #endif // quadrature_hh