vtkExponentialFunctions Class Reference

#include <vtkExponentialFunctions.h>

Inheritance diagram for vtkExponentialFunctions:

Inheritance graph
[legend]
Collaboration diagram for vtkExponentialFunctions:

Collaboration graph
[legend]
List of all members.

Detailed Description

provides mutiple static exponential functions and their Jacobians.

vtkExponentialFunctions provides methods to perform fittings of various exponential functions using Non-linear least squares Levenberg-Marquardt.

Definition at line 55 of file vtkExponentialFunctions.h.

Public Member Functions

 vtkTypeRevisionMacro (vtkExponentialFunctions, vtkObject)

Static Public Member Functions

static vtkExponentialFunctionsNew ()
static void exponential (double *p, double *x, int m, int n, void *data)
static void exponentialWithConstant (double *p, double *x, int m, int n, void *data)
static void jacexponential (double *p, double *jac, int m, int n, void *data)
static void oneminusexponential (double *p, double *x, int m, int n, void *data)
static void jaconeminusexponential (double *p, double *jac, int m, int n, void *data)
static double sinc (double x)
static void exponentialSincMod (double *p, double *x, int m, int n, void *data)
static void exponentialSincModWithConstant (double *p, double *x, int m, int n, void *data)
static void jacexponentialSincMod (double *p, double *jac, int m, int n, void *data)
static void exponentialSincModThreeParam (double *p, double *x, int m, int n, void *data)
static void exponentialSincModThreeParamWithConstant (double *p, double *x, int m, int n, void *data)
static void jacexponentialSincModThreeParam (double *p, double *jac, int m, int n, void *data)
static void CalculateParameterApproximates (double *x, double *y, unsigned int num, double &A, double &B)
static void CalculateParameterApproximatesWithConstant (double *x, double *y, unsigned int num, double &A, double &B, double &C)

Protected Member Functions

 vtkExponentialFunctions ()
 ~vtkExponentialFunctions ()


Constructor & Destructor Documentation

vtkExponentialFunctions::vtkExponentialFunctions (  )  [inline, protected]

Definition at line 274 of file vtkExponentialFunctions.h.

vtkExponentialFunctions::~vtkExponentialFunctions (  )  [inline, protected]

Definition at line 275 of file vtkExponentialFunctions.h.


Member Function Documentation

static vtkExponentialFunctions* vtkExponentialFunctions::New (  )  [static]

Reimplemented from vtkObject.

vtkExponentialFunctions::vtkTypeRevisionMacro ( vtkExponentialFunctions  ,
vtkObject   
)

static void vtkExponentialFunctions::exponential ( double *  p,
double *  x,
int  m,
int  n,
void *  data 
) [inline, static]

The function below is used for fitting 'x=p[0]*e^-(data*p[1])' using Levenberg-Marquardt non-linear least squares algorithms. The # of elements in data must match 'n'.

Definition at line 66 of file vtkExponentialFunctions.h.

References EXP.

static void vtkExponentialFunctions::exponentialWithConstant ( double *  p,
double *  x,
int  m,
int  n,
void *  data 
) [inline, static]

The function below is used for fitting 'x=p[0]*e^-(data*p[1]) + p[3]' using Levenberg-Marquardt non-linear least squares algorithms. The # of elements in data must match 'n'.

Definition at line 82 of file vtkExponentialFunctions.h.

References EXP.

static void vtkExponentialFunctions::jacexponential ( double *  p,
double *  jac,
int  m,
int  n,
void *  data 
) [inline, static]

The Jacobian of the above two functions. 'jac=-p[1]*p[0]*e^-(data*p[1])' The # of elements in data must match 'n'.

Definition at line 97 of file vtkExponentialFunctions.h.

References EXP.

static void vtkExponentialFunctions::oneminusexponential ( double *  p,
double *  x,
int  m,
int  n,
void *  data 
) [inline, static]

The function below is used for fitting 'x=p[0]*(1-e^-(data*p[1]))' using Levenberg-Marquardt non-linear least squares algorithms. The # of elements in data must match 'n'.

Definition at line 113 of file vtkExponentialFunctions.h.

References EXP.

static void vtkExponentialFunctions::jaconeminusexponential ( double *  p,
double *  jac,
int  m,
int  n,
void *  data 
) [inline, static]

The Jacobian of the above function. 'jac=p[1]*p[0]*e^-(data*p[1])' The # of elements in data must match 'n'.

Definition at line 128 of file vtkExponentialFunctions.h.

References EXP.

static double vtkExponentialFunctions::sinc ( double  x  )  [inline, static]

Standard sinc function.

Definition at line 141 of file vtkExponentialFunctions.h.

References SIN.

Referenced by exponentialSincMod(), exponentialSincModThreeParam(), exponentialSincModThreeParamWithConstant(), exponentialSincModWithConstant(), jacexponentialSincMod(), and jacexponentialSincModThreeParam().

static void vtkExponentialFunctions::exponentialSincMod ( double *  p,
double *  x,
int  m,
int  n,
void *  data 
) [inline, static]

The function below is used for fitting 'x=p[0]*|sinc(data[0]*data)|*e^-(p[1]*data)' using Levenberg-Marquardt non-linear least squares algorithms. data[0] = (gamma/2)*deltaB data[1-(n+1)] = time points The # of elements in data must match 'n+1'.

Definition at line 153 of file vtkExponentialFunctions.h.

References EXP, and sinc().

static void vtkExponentialFunctions::exponentialSincModWithConstant ( double *  p,
double *  x,
int  m,
int  n,
void *  data 
) [inline, static]

The function below is used for fitting 'x=p[0]*|sinc(data[0]*data)|*e^-(p[1]*data) + p[2]' using Levenberg-Marquardt non-linear least squares algorithms. data[0] = (gamma/2)*deltaB data[1-(n+1)] = time points The # of elements in data must match 'n+1'.

Definition at line 171 of file vtkExponentialFunctions.h.

References EXP, and sinc().

static void vtkExponentialFunctions::jacexponentialSincMod ( double *  p,
double *  jac,
int  m,
int  n,
void *  data 
) [inline, static]

The Jacobian of the above two functions. The # of elements in data must match 'n+1'.

Definition at line 187 of file vtkExponentialFunctions.h.

References COS, EXP, SIGN, and sinc().

static void vtkExponentialFunctions::exponentialSincModThreeParam ( double *  p,
double *  x,
int  m,
int  n,
void *  data 
) [inline, static]

The function below is used for fitting 'x=p[0]*|sinc(p[2]*data)|*e^-(p[1]*data)' using Levenberg-Marquardt non-linear least squares algorithms. data[0] = (gamma/2) data[1-(n+1)] = time points The # of elements in data must match 'n+1'.

Definition at line 209 of file vtkExponentialFunctions.h.

References EXP, and sinc().

static void vtkExponentialFunctions::exponentialSincModThreeParamWithConstant ( double *  p,
double *  x,
int  m,
int  n,
void *  data 
) [inline, static]

The function below is used for fitting 'x=data[0]*p[0]*|sinc(p[2]*data)|*e^-(p[1]*data) + p[3]' using Levenberg-Marquardt non-linear least squares algorithms. data[0] = (gamma/2) data[1-(n+1)] = time points The # of elements in data must match 'n+1'.

Definition at line 227 of file vtkExponentialFunctions.h.

References EXP, and sinc().

static void vtkExponentialFunctions::jacexponentialSincModThreeParam ( double *  p,
double *  jac,
int  m,
int  n,
void *  data 
) [inline, static]

The Jacobian of the above two functions. The # of elements in data must match 'n+1'.

Definition at line 243 of file vtkExponentialFunctions.h.

References COS, EXP, SIGN, and sinc().

static void vtkExponentialFunctions::CalculateParameterApproximates ( double *  x,
double *  y,
unsigned int  num,
double &  A,
double &  B 
) [static]

Calculate parameter approximates for the function 'y=A*e^-(B*x)'.

static void vtkExponentialFunctions::CalculateParameterApproximatesWithConstant ( double *  x,
double *  y,
unsigned int  num,
double &  A,
double &  B,
double &  C 
) [static]

Calculate parameter approximates for the function 'y=A*e^-(B*x) + C'.


The documentation for this class was generated from the following file:
Generated on Tue May 12 14:53:19 2009 for vtkCNMRRLibrary by  doxygen 1.4.7