#include <fbsinverse.h>
Public Member Functions | |
BSInverse (Function1D &f, double a, double b, double Tol) | |
virtual double | operator() (double y, unsigned cmp) const |
virtual | ~BSInverse () |
Private Attributes | |
Function1D & | _f |
double | _a |
double | _b |
double | _Tol |
Definition at line 7 of file fbsinverse.h.
BSInverse::BSInverse | ( | Function1D & | f, | |
double | a, | |||
double | b, | |||
double | Tol | |||
) |
BSInverse::~BSInverse | ( | ) | [virtual] |
Definition at line 29 of file fbsinverse.cpp.
double BSInverse::operator() | ( | double | y, | |
unsigned | cmp = 0 | |||
) | const [virtual] |
Implements Function1D.
Definition at line 11 of file fbsinverse.cpp.
00012 { 00013 assert(isInDomain(y,cmp)); 00014 double y_M, x_M; 00015 double x_L = _a; 00016 double x_R = _b; 00017 double diff = x_R-x_L; 00018 while (diff > _Tol) 00019 { 00020 x_M = 0.5*(x_L + x_R); 00021 y_M = _f(x_M); 00022 if (y <= y_M) x_L = x_M; 00023 else x_R = x_M; 00024 diff = x_R-x_L; 00025 } 00026 return x_M; 00027 }
double BSInverse::_a [private] |
Definition at line 14 of file fbsinverse.h.
double BSInverse::_b [private] |
Definition at line 14 of file fbsinverse.h.
Function1D& BSInverse::_f [private] |
Definition at line 10 of file fbsinverse.h.
double BSInverse::_Tol [private] |
Definition at line 15 of file fbsinverse.h.