Functions | |
| template<typename FunctionType, typename ScalarType> | |
| ScalarType | adaptsim (FunctionType &func, ScalarType a, ScalarType b, ScalarType tol, int &info) |
| template<typename FunctionType, typename ScalarType> | |
| ScalarType | adaptsimstp (FunctionType &func, ScalarType a, ScalarType b, ScalarType fa, ScalarType fm, ScalarType fb, ScalarType is, int &info) |
| void | polint (const vector< double > &xa, const vector< double > &ya, const double x, double &y, double &dy) |
| template<typename FunctionType> | |
| double | trapzd (FunctionType &func, const double a, const double b, const int n) |
| template<typename FunctionType> | |
| double | qtrap (FunctionType &func, double a, double b, double tol, int &info) |
| template<typename FunctionType> | |
| double | qromb (FunctionType &func, double a, double b, double tol, int &info) |
| void | spline (const vector< double > &x, const vector< double > &y, const double yp1, const double ypn, vector< double > &y2) |
| void | splint (const vector< double > &xa, const vector< double > &ya, const vector< double > &y2a, const double x, double &y) |
| void | spline (const std::vector< double > &x, const std::vector< double > &y, const double yp1, const double ypn, std::vector< double > &y2) |
| void | splint (const std::vector< double > &xa, const std::vector< double > &ya, const std::vector< double > &y2a, const double x, double &y) |
| ScalarType NR::adaptsim | ( | FunctionType & | func, | |
| ScalarType | a, | |||
| ScalarType | b, | |||
| ScalarType | tol, | |||
| int & | info | |||
| ) |
function Q = adaptsim(f,a,b,tol,trace,varargin) ADAPTSIM Numerically evaluate integral using adaptive % Simpson rule. % % Q = ADAPTSIM('F',A,B) approximates the integral of % F(X) from A to B to machine precision. 'F' is a % string containing the name of the function. The % function F must return a vector of output values if % given a vector of input values. % % Q = ADAPTSIM('F',A,B,TOL) integrates to a relative % error of TOL. % % Q = ADAPTSIM('F',A,B,TOL,TRACE) displays the left % end point of the current interval, the interval % length, and the partial integral. % % Q = ADAPTSIM('F',A,B,TOL,TRACE,P1,P2,...) allows % coefficients P1, ... to be passed directly to the % function F: G = F(X,P1,P2,...). To use default values % for TOL or TRACE, one may pass the empty matrix ([]). % % See also ADAPTSIMSTP. % % Walter Gander, 08/03/98 % Reference: Gander, Computermathematik, Birkhaeuser, 1992.
Definition at line 48 of file adaptsim.h.
References adaptsimstp().
Referenced by eval_gap_voltage().
Here is the call graph for this function:

| ScalarType NR::adaptsimstp | ( | FunctionType & | func, | |
| ScalarType | a, | |||
| ScalarType | b, | |||
| ScalarType | fa, | |||
| ScalarType | fm, | |||
| ScalarType | fb, | |||
| ScalarType | is, | |||
| int & | info | |||
| ) |
ADAPTSIMSTP Recursive function used by ADAPTSIM. % % Q = ADAPTSIMSTP('F',A,B,FA,FM,FB,IS,TRACE) tries to % approximate the integral of F(X) from A to B to % an appropriate relative error. The argument 'F' is % a string containing the name of f. The remaining % arguments are generated by ADAPTSIM or by recursion. % % See also ADAPTSIM. % % Walter Gander, 08/03/98
Definition at line 94 of file adaptsim.h.
References Q.
Referenced by adaptsim().
| void NR::polint | ( | const vector< double > & | xa, | |
| const vector< double > & | ya, | |||
| const double | x, | |||
| double & | y, | |||
| double & | dy | |||
| ) |
Polynomial interpolation using Neville's algorithm.
Let n be the size of arrays xa and ya. If f(x) is the polynomial of degree n-1, such that f(xa[i]) = ya[i], i = 0..n-1, then y = f(x).
| xa | Vector of x values | |
| ya | Vector of corresponding y values, y_i = f(x_i) | |
| x | x to interpolate at | |
| y | Interpolated f(x) | |
| dy | Error estimate (the last dy added to y). |
Definition at line 19 of file romberg.cpp.
Referenced by qromb().
| double NR::trapzd | ( | FunctionType & | func, | |
| const double | a, | |||
| const double | b, | |||
| const int | n | |||
| ) |
Compute the n-th stage of refinement of an extended trapezoidal rule.
Must be called with inceasing n, starting with n=1.
| func | Function to integrate, must implement operator()(double) | |
| a | Left boundary of integral interval | |
| b | Right boundary of integral interval | |
| n | n-th stage of refinement of trapezoidal rule |
Definition at line 50 of file romberg.h.
References x.
| double NR::qtrap | ( | FunctionType & | func, | |
| double | a, | |||
| double | b, | |||
| double | tol, | |||
| int & | info | |||
| ) |
| double NR::qromb | ( | FunctionType & | func, | |
| double | a, | |||
| double | b, | |||
| double | tol, | |||
| int & | info | |||
| ) |
Caluculate Int(func(t), t=a..b) using Romberg integration.
| func | Function to integrate, must implement operator()(double) | |
| a | ||
| b | ||
| tol | Relative tolerance | |
| info | Status, 0 means no error |
Definition at line 112 of file romberg.h.
References polint().
Referenced by eval_gap_voltage().
Here is the call graph for this function:

| void NR::spline | ( | const vector< double > & | x, | |
| const vector< double > & | y, | |||
| const double | yp1, | |||
| const double | ypn, | |||
| vector< double > & | y2 | |||
| ) |
| void NR::splint | ( | const vector< double > & | xa, | |
| const vector< double > & | ya, | |||
| const vector< double > & | y2a, | |||
| const double | x, | |||
| double & | y | |||
| ) |
| void NR::spline | ( | const std::vector< double > & | x, | |
| const std::vector< double > & | y, | |||
| const double | yp1, | |||
| const double | ypn, | |||
| std::vector< double > & | y2 | |||
| ) |
Preprocess spline interpolation. Adapted from Numerical Recipes, Chapter 3.3.
| void NR::splint | ( | const std::vector< double > & | xa, | |
| const std::vector< double > & | ya, | |||
| const std::vector< double > & | y2a, | |||
| const double | x, | |||
| double & | y | |||
| ) |
Spline interpolation. Adapted from Numerical Recipes, Chapter 3.3.
1.4.7