QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
SegmentIntegral Class Reference

Integral of a one-dimensional function. More...

#include <segmentintegral.hpp>

+ Inheritance diagram for SegmentIntegral:
+ Collaboration diagram for SegmentIntegral:

Public Member Functions

 SegmentIntegral (Size intervals)
 
- Public Member Functions inherited from Integrator
 Integrator (Real absoluteAccuracy, Size maxEvaluations)
 
virtual ~Integrator ()=default
 
Real operator() (const ext::function< Real(Real)> &f, Real a, Real b) const
 
void setAbsoluteAccuracy (Real)
 
void setMaxEvaluations (Size)
 
Real absoluteAccuracy () const
 
Size maxEvaluations () const
 
Real absoluteError () const
 
Size numberOfEvaluations () const
 
virtual bool integrationSuccess () const
 

Protected Member Functions

Real integrate (const ext::function< Real(Real)> &f, Real a, Real b) const override
 
- Protected Member Functions inherited from Integrator
void setAbsoluteError (Real error) const
 
void setNumberOfEvaluations (Size evaluations) const
 
void increaseNumberOfEvaluations (Size increase) const
 

Private Attributes

Size intervals_
 

Detailed Description

Integral of a one-dimensional function.

Given a number \( N \) of intervals, the integral of a function \( f \) between \( a \) and \( b \) is calculated by means of the trapezoid formula

\[ \int_{a}^{b} f \mathrm{d}x = \frac{1}{2} f(x_{0}) + f(x_{1}) + f(x_{2}) + \dots + f(x_{N-1}) + \frac{1}{2} f(x_{N}) \]

where \( x_0 = a \), \( x_N = b \), and \( x_i = a+i \Delta x \) with \( \Delta x = (b-a)/N \).

Tests:
the correctness of the result is tested by checking it against known good values.

Definition at line 50 of file segmentintegral.hpp.

Constructor & Destructor Documentation

◆ SegmentIntegral()

SegmentIntegral ( Size  intervals)
explicit

Definition at line 24 of file segmentintegral.cpp.

Member Function Documentation

◆ integrate()

Real integrate ( const ext::function< Real(Real)> &  f,
Real  a,
Real  b 
) const
overrideprotectedvirtual

Implements Integrator.

Definition at line 64 of file segmentintegral.hpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ intervals_

Size intervals_
private

Definition at line 57 of file segmentintegral.hpp.