00001
00002
00003
00004 #ifndef LegeIntegration_h
00005 #define LegeIntegration_h
00006
00007 #include "Integration.h"
00008 class LegeQuad;
00009
00010 namespace BIE {
00011
00012
00016 class LegeIntegration : public Integration {
00017 public:
00018
00020 LegeIntegration(int nx, int ny);
00021
00023 ~LegeIntegration();
00024
00026 void ParameterChange(int nu, int nv);
00027
00029 double NormValue(Model* m, Tile* t, SampleDistribution* d);
00030
00032 vector<double> Value(Model* m, Tile* t, SampleDistribution* d);
00033
00039 double NormValue(LikelihoodComputation* p_likelihoodComputation,
00040 Model* p_model, Tile* p_tile,
00041 SampleDistribution* p_dist);
00042
00048 vector<double> Value(LikelihoodComputation* p_likelihoodComputation,
00049 Model* p_model, Tile* p_tile,
00050 SampleDistribution* p_dist);
00051
00052
00054 double NormValue(Model* m, Tile* t, SampleDistribution* d,
00055 int irank, int nrank);
00056
00058 vector<double> Value(Model* m, Tile* t, SampleDistribution* d,
00059 int irank, int nrank, MPI_Comm &comm);
00060
00061 private:
00062
00063 int nU, nV;
00064 LegeQuad *U, *V;
00065
00066
00067 protected:
00068 LegeIntegration() {}
00069 private:
00070 friend class boost::serialization::access;
00071 template<class Archive>
00072 void serialize(Archive & ar, const unsigned int version) {
00073 this->pre_serialize(ar, version);
00074 try {
00075 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Integration);
00076 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00077 }
00078 try {
00079 ar & BOOST_SERIALIZATION_NVP(nU);
00080 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00081 }
00082 try {
00083 ar & BOOST_SERIALIZATION_NVP(nV);
00084 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00085 }
00086 try {
00087 ar & BOOST_SERIALIZATION_NVP(U);
00088 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00089 }
00090 try {
00091 ar & BOOST_SERIALIZATION_NVP(V);
00092 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00093 }
00094 this->post_serialize(ar, version);
00095 }
00096
00097 };
00098 }
00099 BIE_CLASS_TYPE_INFO(BIE::LegeIntegration)
00100 BIE_CLASS_EXPORT_KEY(BIE::LegeIntegration)
00101 #endif
00102
00103