Docs | All | Real | Category | PDF | DataSet | Plot | Container | Misc | Aux | User |
RooGaussKronrodIntegrator1Dclass description - source file - inheritance tree (.pdf) class RooGaussKronrodIntegrator1D : public RooAbsIntegrator
protected: Data Membersprotected: Class DescriptionRooGaussKronrodIntegrator1D implements the Gauss-Kronrod integration algorithm. An Gaussian quadrature method for numerical integration in which error is estimation based on evaluation at special points known as "Kronrod points." By suitably picking these points, abscissas from previous iterations can be reused as part of the new set of points, whereas usual Gaussian quadrature would require recomputation of all abscissas at each iteration. This class automatically handles (-inf,+inf) integrals by dividing the integration in three regions (-inf,-1), (-1,1), (1,inf) and calculating the 1st and 3rd term using a x -> 1/x coordinate transformation This class embeds the Gauss-Kronrod integrator from the GNU Scientific Library version 1.5 and applies the 10-, 21-, 43- and 87-point rule in succession until the required target precision is reached RooGaussKronrodIntegrator1D() RooGaussKronrodIntegrator1D(const RooAbsFunc& function, const RooNumIntConfig& config) : RooAbsIntegrator(function), _epsAbs(config.epsRel()), _epsRel(config.epsAbs()) Use this form of the constructor to integrate over the function's default range. RooGaussKronrodIntegrator1D(const RooAbsFunc& function, Double_t xmin, Double_t xmax, const RooNumIntConfig& config) : RooAbsIntegrator(function), _epsAbs(config.epsRel()), _epsRel(config.epsAbs()), _xmin(xmin), _xmax(xmax) Use this form of the constructor to integrate over the function's default range. RooAbsIntegrator* clone(const RooAbsFunc& function, const RooNumIntConfig& config) const Bool_t initialize() Allocate coordinate buffer size after number of function dimensions ~RooGaussKronrodIntegrator1D() Bool_t setLimits(Double_t xmin, Double_t xmax) Change our integration limits. Return kTRUE if the new limits are ok, or otherwise kFALSE. Always returns kFALSE and does nothing if this object was constructed to always use our integrand's limits. Bool_t checkLimits() const Check that our integration range is finite and otherwise return kFALSE. Update the limits from the integrand if requested. Double_t integral(const Double_t *yvec) Inline FunctionsBool_t setUseIntegrandLimits(Bool_t flag) Bool_t canIntegrate1D() const Bool_t canIntegrate2D() const Bool_t canIntegrateND() const Bool_t canIntegrateOpenEnded() const Double_t* xvec(Double_t& xx) TClass* Class() TClass* IsA() const void ShowMembers(TMemberInspector& insp, char* parent) void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) RooGaussKronrodIntegrator1D RooGaussKronrodIntegrator1D(const RooGaussKronrodIntegrator1D&)
|
Page maintained by Wouter Verkerke and David Kirkby |