BIE |
/home/weinberg/src/BIE/include/AdaptiveLegeIntegration.h00001 // This is really -*- C++ -*- 00002 00003 00004 #ifndef AdaptiveLegeIntegration_h 00005 #define AdaptiveLegeIntegration_h 00006 00007 #include "gaussQ.h" 00008 #include "Integration.h" 00009 00010 #include <map> // STL's unique associative map 00011 00012 #include "Serializable.h" 00013 00014 00015 namespace BIE { 00016 00017 //+ CLICLASS AdaptiveLegeIntegration SUPER Integration 00021 class AdaptiveLegeIntegration : public Integration 00022 { 00023 public: 00024 00026 static int min_nlb; 00027 00029 static int max_nlb; 00030 00031 //+ CLICONSTR double double 00033 AdaptiveLegeIntegration(double dx, double dy); 00034 00036 ~AdaptiveLegeIntegration(); 00037 00039 void ParameterChange(double dx, double dy); 00040 00041 double NormValue(Model* m, Tile* t, SampleDistribution* d); 00042 vector<double> Value(Model* m, Tile* t, SampleDistribution* d); 00043 00045 double NormValue(Model* m, Tile* t, SampleDistribution* d, 00046 int irank, int nrank); 00047 00049 vector<double> Value(Model* m, Tile* t, SampleDistribution* d, 00050 int irank, int nrank, MPI_Comm& comm); 00051 00057 double NormValue(LikelihoodComputation* p_likelihoodComputation, 00058 Model* p_model, Tile* p_tile, 00059 SampleDistribution* p_dist); 00060 00066 vector<double> Value(LikelihoodComputation* p_likelihoodComputation, 00067 Model* p_model, Tile* p_tile, 00068 SampleDistribution* p_dist); 00069 00070 private: 00071 00072 double dx, dy; 00073 int nV, nU; 00074 LegeQuad *U, *V; 00075 00076 // Store the integration cache 00077 map<const int, LegeQuad*> table; 00078 00079 // Retrieve the integration grid from 00080 // the cache or create it if necessary 00081 void SetKnots(double X, double Y); 00082 00083 // AUTO GENERATED BY ../persistence/autopersist.py 00084 protected: 00085 AdaptiveLegeIntegration() {} 00086 private: 00087 friend class boost::serialization::access; 00088 template<class Archive> 00089 void serialize(Archive & ar, const unsigned int version) { 00090 this->pre_serialize(ar, version); 00091 try { 00092 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Integration); 00093 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00094 } 00095 try { 00096 ar & BOOST_SERIALIZATION_NVP(min_nlb); 00097 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00098 } 00099 try { 00100 ar & BOOST_SERIALIZATION_NVP(max_nlb); 00101 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00102 } 00103 try { 00104 ar & BOOST_SERIALIZATION_NVP(dx); 00105 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00106 } 00107 try { 00108 ar & BOOST_SERIALIZATION_NVP(dy); 00109 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00110 } 00111 this->post_serialize(ar, version); 00112 } 00113 00114 }; 00115 } // namespace BIE 00116 BIE_CLASS_TYPE_INFO(BIE::AdaptiveLegeIntegration) 00117 BIE_CLASS_EXPORT_KEY(BIE::AdaptiveLegeIntegration) 00118 #endif Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:09 2010 by
|