Loading...
Searching...
No Matches
casacore::LinearFitSVD< T > Class Template Reference
scimath package (libcasa_scimath) » Fitting_module

More...

`#include <LinearFitSVD.h>`

## Public Member Functions

| LinearFitSVD ()
| Create a fitter: the normal way to generate a fitter object.
| LinearFitSVD (const LinearFitSVD &other)
| Copy constructor (deep copy).
LinearFitSVD & | operator= (const LinearFitSVD &other)
| Assignment (deep copy).
virtual | ~LinearFitSVD ()
| Destructor.
Public Member Functions inherited from casacore::LinearFit< T >
| LinearFit ()
| Create a fitter: the normal way to generate a fitter object.
| LinearFit (const LinearFit &other)
| Copy constructor (deep copy).
LinearFit & | operator= (const LinearFit &other)
| Assignment (deep copy).
virtual | ~LinearFit ()
| Destructor.
Public Member Functions inherited from casacore::GenericL2Fit< T >
| GenericL2Fit ()
| Create a fitter: the normal way to generate a fitter object.
| GenericL2Fit (const GenericL2Fit &other)
| Copy constructor (deep copy).
GenericL2Fit & | operator= (const GenericL2Fit &other)
| Assignment (deep copy).
virtual | ~GenericL2Fit ()
| Destructor.
template<class U>
void | setFunction (const Function< U, U > &function)
| Sets the function to be fitted.
template<class U>
Bool | setConstraint (const uInt n, const Function< U, U > &function, const Vector< typename FunctionTraits< T >::BaseType > &x, const typename FunctionTraits< T >::BaseType y=typename FunctionTraits< T >::BaseType(0))
| Set the possible constraint functions.
Bool | setConstraint (const uInt n, const Vector< typename FunctionTraits< T >::BaseType > &x, const typename FunctionTraits< T >::BaseType y=typename FunctionTraits< T >::BaseType(0))
Bool | setConstraint (const uInt n, const typename FunctionTraits< T >::BaseType y=typename FunctionTraits< T >::BaseType(0))
Bool | addConstraint (const Function< typename FunctionTraits< T >::DiffType, typename FunctionTraits< T >::DiffType > &function, const Vector< typename FunctionTraits< T >::BaseType > &x, const typename FunctionTraits< T >::BaseType y=typename FunctionTraits< T >::BaseType(0))
Bool | addConstraint (const Vector< typename FunctionTraits< T >::BaseType > &x, const typename FunctionTraits< T >::BaseType y=typename FunctionTraits< T >::BaseType(0))
Bool | addConstraint (const typename FunctionTraits< T >::BaseType y=typename FunctionTraits< T >::BaseType(0))
void | setCollinearity (const Double cln)
| Set the collinearity factor as the square of the sine of the minimum angle allowed between input vectors (default zero for non-SVD, 1e-8 for SVD).
void | asWeight (const Bool aswgt)
| Set sigma values to be interpreted as weight (i.e.
void | asSVD (const Bool svd)
| Set the use of SVD or not (default).
Function< typename FunctionTraits< T >::DiffType, typename FunctionTraits< T >::DiffType > * | fittedFunction ()
| Return a pointer to the function being fitted.
const Function< typename FunctionTraits< T >::DiffType, typename FunctionTraits< T >::DiffType > * | fittedFunction () const
uInt | fittedNumber () const
| Return the number of fitted parameters.
uInt | NConstraints ()
| Return the number of constraints, and pointers to constraint functions.
Function< typename FunctionTraits< T >::DiffType, typename FunctionTraits< T >::DiffType > * | getConstraint (const uInt n)
Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > | getSVDConstraint (uInt n)
| Return the nth constraint equation derived from SVD Note that the number present will be given by getDeficiency().
void | setParameterValues (const Vector< typename FunctionTraits< T >::BaseType > &parms)
| Set the parameter values.
void | setMaskedParameterValues (const Vector< typename FunctionTraits< T >::BaseType > &parms)
Vector< typename FunctionTraits< T >::BaseType > | fit (const Vector< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > &sigma, const Vector< Bool > *const mask=0)
| Fit the function to the data.
Vector< typename FunctionTraits< T >::BaseType > | fit (const Matrix< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > &sigma, const Vector< Bool > *const mask=0)
Vector< typename FunctionTraits< T >::BaseType > | fit (const Vector< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< Bool > *const mask=0)
Vector< typename FunctionTraits< T >::BaseType > | fit (const Matrix< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< Bool > *const mask=0)
Vector< typename FunctionTraits< T >::BaseType > | fit (const Vector< Bool > *const mask=0)
Bool | fit (Vector< typename FunctionTraits< T >::BaseType > &sol, const Vector< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > &sigma, const Vector< Bool > *const mask=0)
Bool | fit (Vector< typename FunctionTraits< T >::BaseType > &sol, const Matrix< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > &sigma, const Vector< Bool > *const mask=0)
Bool | fit (Vector< typename FunctionTraits< T >::BaseType > &sol, const Vector< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const typename FunctionTraits< T >::BaseType &sigma, const Vector< Bool > *const mask=0)
Bool | fit (Vector< typename FunctionTraits< T >::BaseType > &sol, const Matrix< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const typename FunctionTraits< T >::BaseType &sigma, const Vector< Bool > *const mask=0)
Bool | fit (Vector< typename FunctionTraits< T >::BaseType > &sol, const Vector< Bool > *const mask=0)
Double | chiSquare () const
| Obtain the chi squared.
const Vector< typename FunctionTraits< T >::BaseType > & | errors () const
| Get the errors on the solved values.
Bool | errors (Vector< typename FunctionTraits< T >::BaseType > &err) const
Matrix< Double > | compuCovariance ()
| Get covariance matrix.
void | compuCovariance (Matrix< Double > &cov)
void | buildNormalMatrix (const Vector< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > &sigma, const Vector< Bool > *const mask=0)
| Generate the normal equations by one or more calls to the buildNormalMatrix(), before calling a fit() without arguments.
void | buildNormalMatrix (const Matrix< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > &sigma, const Vector< Bool > *const mask=0)
void | buildNormalMatrix (const Vector< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< Bool > *const mask=0)
void | buildNormalMatrix (const Matrix< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< Bool > *const mask=0)
Bool | residual (Vector< typename FunctionTraits< T >::BaseType > &y, const Array< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &sol, const Bool model=False)
| Return the residual after a fit in y.
Bool | residual (Vector< typename FunctionTraits< T >::BaseType > &y, const Array< typename FunctionTraits< T >::BaseType > &x, const Bool model=False)
uInt | getRank () const
| Get the rank of the solution (or zero of no fit() done yet).
Public Member Functions inherited from casacore::LSQaips
| LSQaips (uInt nUnknowns, uInt nConstraints=0)
| Construct an object with the number of unknown, knowns and constraints, and type, using the default collinearity factor and the default Levenberg-Marquardt adjustment factor.
| LSQaips (uInt nUnknowns, const LSQReal &, uInt nConstraints=0)
| Allow explicit complex/real specification.
| LSQaips (uInt nUnknowns, const LSQComplex &, uInt nConstraints=0)
| LSQaips ()
| Default constructor (empty, real, only usable after a set(nUnknowns)).
| LSQaips (const LSQaips &other)
| Copy constructor (deep copy).
LSQaips & | operator= (const LSQaips &other)
| Assignment (deep copy).
| ~LSQaips ()
template<class U>
void | solve (U *sol)
| Solve normal equations.
template<class U>
void | solve (std::complex< U > *sol)
template<class U>
void | solve (U &sol)
template<class U>
void | solve (Vector< U > &sol)
template<class U>
Bool | solveLoop (uInt &nRank, U *sol, Bool doSVD=False)
| Solve a Levenberg-Marquardt loop.
template<class U>
Bool | solveLoop (uInt &nRank, std::complex< U > *sol, Bool doSVD=False)
template<class U>
Bool | solveLoop (uInt &nRank, U &sol, Bool doSVD=False)
template<class U>
Bool | solveLoop (uInt &nRank, Vector< U > &sol, Bool doSVD=False)
template<class U>
Bool | solveLoop (Double &fit, uInt &nRank, U *sol, Bool doSVD=False)
template<class U>
Bool | solveLoop (Double &fit, uInt &nRank, std::complex< U > *sol, Bool doSVD=False)
template<class U>
Bool | solveLoop (Double &fit, uInt &nRank, U &sol, Bool doSVD=False)
template<class U>
Bool | solveLoop (Double &fit, uInt &nRank, Vector< U > &sol, Bool doSVD=False)
template<class U>
Bool | getCovariance (U *covar)
| Get the covariance matrix.
template<class U>
Bool | getCovariance (std::complex< U > *covar)
template<class U>
Bool | getCovariance (Array< U > &covar)
template<class U>
Bool | getErrors (U *errors)
| Get main diagonal of covariance function (of size nUnknowns).
template<class U>
Bool | getErrors (std::complex< U > *errors)
template<class U>
Bool | getErrors (U &errors)
template<class U>
Bool | getErrors (Vector< U > &errors)
Public Member Functions inherited from casacore::LSQFit
| LSQFit (uInt nUnknowns, uInt nConstraints=0)
| Construct an object with the number of unknowns and constraints, using the default collinearity factor and the default Levenberg-Marquardt adjustment factor.
| LSQFit (uInt nUnknowns, const LSQReal &, uInt nConstraints=0)
| Allow explicit Real specification.
| LSQFit (uInt nUnknowns, const LSQComplex &, uInt nConstraints=0)
| Allow explicit Complex specification.
| LSQFit ()
| Default constructor (empty, only usable after a set(nUnknowns)).
| LSQFit (const LSQFit &other)
| Copy constructor (deep copy).
LSQFit & | operator= (const LSQFit &other)
| Assignment (deep copy).
| ~LSQFit ()
Bool | invert (uInt &nRank, Bool doSVD=False)
| Triangularize the normal equations and determine the rank nRank of the normal equations and, in the case of an SVD solution, the constraint equations.
template<class U>
void | copy (const Double *beg, const Double *end, U &sol, LSQReal)
| Copy date from beg to end; converting if necessary to complex data.
template<class U>
void | copy (const Double *beg, const Double *end, U &sol, LSQComplex)
template<class U>
void | copy (const Double *beg, const Double *end, U *sol, LSQReal)
template<class U>
void | copy (const Double *beg, const Double *end, U *sol, LSQComplex)
template<class U>
void | uncopy (Double *beg, const Double *end, U &sol, LSQReal)
template<class U>
void | uncopy (Double *beg, const Double *end, U &sol, LSQComplex)
template<class U>
void | uncopy (Double *beg, const Double *end, U *sol, LSQReal)
template<class U>
void | uncopy (Double *beg, const Double *end, U *sol, LSQComplex)
template<class U>
void | copyDiagonal (U &errors, LSQReal)
template<class U>
void | copyDiagonal (U &errors, LSQComplex)
template<class U>
void | solve (U *sol)
| Solve normal equations.
template<class U>
void | solve (std::complex< U > *sol)
template<class U>
void | solve (U &sol)
template<class U>
Bool | solveLoop (uInt &nRank, U *sol, Bool doSVD=False)
| Solve a loop in a non-linear set.
template<class U>
Bool | solveLoop (uInt &nRank, std::complex< U > *sol, Bool doSVD=False)
template<class U>
Bool | solveLoop (uInt &nRank, U &sol, Bool doSVD=False)
template<class U>
Bool | solveLoop (Double &fit, uInt &nRank, U *sol, Bool doSVD=False)
template<class U>
Bool | solveLoop (Double &fit, uInt &nRank, std::complex< U > *sol, Bool doSVD=False)
template<class U>
Bool | solveLoop (Double &fit, uInt &nRank, U &sol, Bool doSVD=False)
template<class U, class V>
void | makeNorm (const V &cEq, const U &weight, const U &obs, Bool doNorm=True, Bool doKnown=True)
| Make normal equations using the cEq condition equation (cArray) (with nUnknowns elements) and a weight weight, given the known observed value obs.
template<class U, class V>
void | makeNorm (const V &cEq, const U &weight, const U &obs, LSQFit::Real, Bool doNorm=True, Bool doKnown=True)
template<class U, class V>
void | makeNorm (const V &cEq, const U &weight, const std::complex< U > &obs, Bool doNorm=True, Bool doKnown=True)
template<class U, class V>
void | makeNorm (const V &cEq, const U &weight, const std::complex< U > &obs, LSQFit::Complex, Bool doNorm=True, Bool doKnown=True)
template<class U, class V>
void | makeNorm (const V &cEq, const U &weight, const std::complex< U > &obs, LSQFit::Separable, Bool doNorm=True, Bool doKnown=True)
template<class U, class V>
void | makeNorm (const V &cEq, const U &weight, const std::complex< U > &obs, LSQFit::AsReal, Bool doNorm=True, Bool doKnown=True)
template<class U, class V>
void | makeNorm (const V &cEq, const U &weight, const std::complex< U > &obs, LSQFit::Conjugate, Bool doNorm=True, Bool doKnown=True)
template<class U, class V, class W>
void | makeNorm (uInt nIndex, const W &cEqIndex, const V &cEq, const U &weight, const U &obs, Bool doNorm=True, Bool doKnown=True)
template<class U, class V, class W>
void | makeNorm (uInt nIndex, const W &cEqIndex, const V &cEq, const V &cEq2, const U &weight, const U &obs, const U &obs2, Bool doNorm=True, Bool doKnown=True)
template<class U, class V, class W>
void | makeNorm (uInt nIndex, const W &cEqIndex, const V &cEq, const U &weight, const U &obs, LSQFit::Real, Bool doNorm=True, Bool doKnown=True)
template<class U, class V, class W>
void | makeNorm (uInt nIndex, const W &cEqIndex, const V &cEq, const U &weight, const std::complex< U > &obs, Bool doNorm=True, Bool doKnown=True)
template<class U, class V, class W>
void | makeNorm (uInt nIndex, const W &cEqIndex, const V &cEq, const U &weight, const std::complex< U > &obs, LSQFit::Complex, Bool doNorm=True, Bool doKnown=True)
template<class U, class V, class W>
void | makeNorm (uInt nIndex, const W &cEqIndex, const V &cEq, const U &weight, const std::complex< U > &obs, LSQFit::Separable, Bool doNorm=True, Bool doKnown=True)
template<class U, class V, class W>
void | makeNorm (uInt nIndex, const W &cEqIndex, const V &cEq, const U &weight, const std::complex< U > &obs, LSQFit::AsReal, Bool doNorm=True, Bool doKnown=True)
template<class U, class V, class W>
void | makeNorm (uInt nIndex, const W &cEqIndex, const V &cEq, const U &weight, const std::complex< U > &obs, LSQFit::Conjugate, Bool doNorm=True, Bool doKnown=True)
template<class U, class V>
void | makeNorm (const std::vector< std::pair< uInt, V > > &cEq, const U &weight, const U &obs, Bool doNorm=True, Bool doKnown=True)
template<class U, class V>
void | makeNorm (const std::vector< std::pair< uInt, V > > &cEq, const U &weight, const U &obs, LSQFit::Real, Bool doNorm=True, Bool doKnown=True)
template<class U, class V>
void | makeNorm (const std::vector< std::pair< uInt, V > > &cEq, const U &weight, const std::complex< U > &obs, Bool doNorm=True, Bool doKnown=True)
template<class U, class V>
void | makeNorm (const std::vector< std::pair< uInt, V > > &cEq, const U &weight, const std::complex< U > &obs, LSQFit::Complex, Bool doNorm=True, Bool doKnown=True)
template<class U, class V>
void | makeNorm (const std::vector< std::pair< uInt, V > > &cEq, const U &weight, const std::complex< U > &obs, LSQFit::Separable, Bool doNorm=True, Bool doKnown=True)
template<class U, class V>
void | makeNorm (const std::vector< std::pair< uInt, V > > &cEq, const U &weight, const std::complex< U > &obs, LSQFit::AsReal, Bool doNorm=True, Bool doKnown=True)
template<class U, class V>
void | makeNorm (const std::vector< std::pair< uInt, V > > &cEq, const U &weight, const std::complex< U > &obs, LSQFit::Conjugate, Bool doNorm=True, Bool doKnown=True)
template<class U, class V, class W>
void | makeNormSorted (uInt nIndex, const W &cEqIndex, const V &cEq, const U &weight, const U &obs, Bool doNorm=True, Bool doKnown=True)
template<class U, class V, class W>
void | makeNormSorted (uInt nIndex, const W &cEqIndex, const V &cEq, const V &cEq2, const U &weight, const U &obs, const U &obs2, Bool doNorm=True, Bool doKnown=True)
template<class U>
Bool | getConstraint (uInt n, U *cEq) const
| Get the n-th (from 0 to the rank deficiency, or missing rank, see e.g.
template<class U>
Bool | getConstraint (uInt n, std::complex< U > *cEq) const
template<class U>
Bool | getConstraint (uInt n, U &cEq) const
template<class U, class V>
Bool | setConstraint (uInt n, const V &cEq, const U &obs)
| Add a new constraint equation (updating nConstraints); or set a numbered constraint equation (0..nConstraints-1).
template<class U, class V>
Bool | setConstraint (uInt n, const V &cEq, const std::complex< U > &obs)
template<class U, class V, class W>
Bool | setConstraint (uInt n, uInt nIndex, const W &cEqIndex, const V &cEq, const U &obs)
template<class U, class V, class W>
Bool | setConstraint (uInt n, uInt nIndex, const W &cEqIndex, const V &cEq, const std::complex< U > &obs)
template<class U, class V>
Bool | addConstraint (const V &cEq, const U &obs)
template<class U, class V>
Bool | addConstraint (const V &cEq, const std::complex< U > &obs)
template<class U, class V, class W>
Bool | addConstraint (uInt nIndex, const W &cEqIndex, const V &cEq, const U &obs)
template<class U, class V, class W>
Bool | addConstraint (uInt nIndex, const W &cEqIndex, const V &cEq, const std::complex< U > &obs)
Bool | merge (const LSQFit &other)
| Merge other LSQFit object (i.e.
Bool | merge (const LSQFit &other, uInt nIndex, const uInt *nEqIndex)
Bool | merge (const LSQFit &other, uInt nIndex, const std::vector< uInt > &nEqIndex)
template<class W>
Bool | merge (const LSQFit &other, uInt nIndex, const W &nEqIndex)
void | reset ()
| Reset status to empty.
void | set (uInt nUnknowns, uInt nConstraints=0)
| Set new sizes (default is for Real).
void | set (Int nUnknowns, Int nConstraints=0)
void | set (uInt nUnknowns, const LSQReal &, uInt nConstraints=0)
void | set (Int nUnknowns, const LSQReal &, Int nConstraints=0)
void | set (uInt nUnknowns, const LSQComplex &, uInt nConstraints=0)
void | set (Int nUnknowns, const LSQComplex &, Int nConstraints=0)
void | set (Double factor=1e-6, Double LMFactor=1e-3)
| Set new factors (collinearity factor, and Levenberg-Marquardt LMFactor).
void | setEpsValue (Double epsval=1e-8)
| Set new value solution test.
void | setEpsDerivative (Double epsder=1e-8)
| Set new derivative test.
void | setMaxIter (uInt maxiter=0)
| Set maximum number of iterations.
uInt | nIterations () const
| Get number of iterations done.
void | setBalanced (Bool balanced=False)
| Set the expected form of the normal equations.
LSQFit::ReadyCode | isReady () const
| Ask the state of the non-linear solutions.
const std::string & | readyText () const
template<class U>
Bool | getCovariance (U *covar)
| Get the covariance matrix (of size nUnknowns * nUnknowns).
template<class U>
Bool | getCovariance (std::complex< U > *covar)
template<class U>
Bool | getErrors (U *errors)
| Get main diagonal of covariance function (of size nUnknowns).
template<class U>
Bool | getErrors (std::complex< U > *errors)
template<class U>
Bool | getErrors (U &errors)
uInt | nUnknowns () const
| Get the number of unknowns.
uInt | nConstraints () const
| Get the number of constraints.
uInt | getDeficiency () const
| Get the rank deficiency Warning: Note that the number is returned assuming real values; For complex values it has to be halved .
Double | getChi () const
| Get chi^2 (both are identical); the standard deviation (per observation) and the standard deviation per weight unit.
Double | getChi2 () const
Double | getSD () const
Double | getWeightedSD () const
void | debugIt (uInt &nun, uInt &np, uInt &ncon, uInt &ner, uInt &rank, Double *&nEq, Double *&known, Double *&constr, Double *&er, uInt *&piv, Double *&sEq, Double *&sol, Double &prec, Double &nonlin) const
| Debug:
Bool | fromRecord (String &error, const RecordInterface &in)
| Create an LSQFit object from a record.
Bool | toRecord (String &error, RecordInterface &out) const
| Create a record from an LSQFit object.
const String & | ident () const
| Get identification of record.
void | toAipsIO (AipsIO &) const
| Save or restore using AipsIO.
void | fromAipsIO (AipsIO &)

## Additional Inherited Members

Public Types inherited from casacore::LSQFit
enum | ReadyCode { NONREADY , SOLINCREMENT , DERIVLEVEL , MAXITER , NOREDUCTION , SINGULAR , N_ReadyCode }
| State of the non-linear solution. More...
enum | ErrorField { NC , SUMWEIGHT , SUMLL , CHI2 , N_ErrorField }
| Offset of fields in error_p data area. More...
Public Attributes inherited from casacore::GenericL2Fit< T >
const Double | COLLINEARITY
| Default collinearity test for SVD.
Static Public Attributes inherited from casacore::LSQFit
static Real | REAL
| And values to use.
static Complex | COMPLEX
static Separable | SEPARABLE
static AsReal | ASREAL
static Conjugate | CONJUGATE
Protected Types inherited from casacore::LSQFit
enum | StateBit { INVERTED , TRIANGLE , NONLIN , N_StateBit }
| Bits that can be set/referenced. More...
Protected Member Functions inherited from casacore::LinearFit< T >
virtual Bool | fitIt (Vector< typename FunctionTraits< T >::BaseType > &sol, const Array< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > *const sigma, const Vector< Bool > *const mask=0)
| Generalised fitter.
Protected Member Functions inherited from casacore::GenericL2Fit< T >
void | buildMatrix (const Array< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > *const sigma, const Vector< Bool > *const mask=0)
| Build the normal matrix.
void | buildConstraint ()
| Build the constraint equations.
void | fillSVDConstraints ()
| Get the SVD constraints.
Bool | buildResidual (Vector< typename FunctionTraits< T >::BaseType > &y, const Array< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > *const sol, const Bool model=False)
| Calculate residuals.
FunctionTraits< T >::BaseType | getVal_p (const Array< typename FunctionTraits< T >::BaseType > &x, uInt j, uInt i) const
| Function to get evaluated functional value.
void | initfit_p (uInt parcnt)
| Initialise the fitter with number of solvable parameters.
uInt | testInput_p (const Array< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > *const sigma)
| Return number of condition equations and check sizes x, y, sigma.
void | resetFunction ()
| Reset all the input.
Protected Member Functions inherited from casacore::LSQFit
Double * | rowrt (uInt i) const
| Get pointer in rectangular array.
Double * | rowru (uInt i) const
void | init ()
| Initialise areas.
void | clear ()
| Clear areas.
void | deinit ()
| De-initialise area.
void | solveIt ()
| Solve normal equations.
Bool | solveItLoop (Double &fit, uInt &nRank, Bool doSVD=False)
| One non-linear LM loop.
void | solveMR (uInt nin)
| Solve missing rank part.
Bool | invertRect ()
| Invert rectangular matrix (i.e.
Double | normSolution (const Double *sol) const
| Get the norm of the current solution vector.
Double | normInfKnown (const Double *known) const
| Get the infinite norm of the known vector.
Bool | mergeIt (const LSQFit &other, uInt nIndex, const uInt *nEqIndex)
| Merge sparse normal equations.
void | save (Bool all=True)
| Save current status (or part).
void | restore (Bool all=True)
| Restore current status.
void | copy (const LSQFit &other, Bool all=True)
| Copy data.
void | extendConstraints (uInt n)
| Extend the constraint equation area to the specify number of equations.
void | createNCEQ ()
| Create the solution equation area nceq_p and fill it.
void | getWorkSOL ()
| Get work areas for solutions, covariance.
void | getWorkCOV ()
Static Protected Member Functions inherited from casacore::LSQFit
static Double | realMC (const std::complex< Double > &x, const std::complex< Double > &y)
| Calculate the real or imag part of x*conj(y).
static Double | imagMC (const std::complex< Double > &x, const std::complex< Double > &y)
static Float | realMC (const std::complex< Float > &x, const std::complex< Float > &y)
static Float | imagMC (const std::complex< Float > &x, const std::complex< Float > &y)
Protected Attributes inherited from casacore::GenericL2Fit< T >
uInt | aCount_ai
| Adjustable.
Bool | svd_p
| SVD indicator.
Function< typename FunctionTraits< T >::DiffType, typename FunctionTraits< T >::DiffType > * | ptr_derive_p
| Function to use in evaluating condition equation.
PtrBlock< Vector< typename FunctionTraits< T >::BaseType > * > | constrArg_p
| List of functions describing the possible constraint equations e.g.
PtrBlock< typename FunctionTraits< T >::BaseType * > | constrVal_p
| List of values describing the constraint equations' value.
uInt | pCount_p
| Number of available parameters.
uInt | ndim_p
| Number of dimensions of input data.
Bool | needInit_p
| No normal equations yet.
Bool | solved_p
| Have solution.
Bool | errors_p
| Have errors.
Bool | ferrors_p
Bool | asweight_p
| Interpret as weights rather than as sigma the given values.
uInt | nr_p
| The rank of the solution.
Vector< typename FunctionTraits< T >::BaseType > | condEq_p
| Condition equation parameters (for number of adjustable parameters).
Vector< typename FunctionTraits< T >::BaseType > | fullEq_p
| Equation for all available parameters.
Vector< typename FunctionTraits< T >::ArgType > | arg_p
| Contiguous argument areas.
Vector< typename FunctionTraits< T >::ArgType > | carg_p
Vector< typename FunctionTraits< T >::BaseType > | sol_p
| Local solution area.
Vector< typename FunctionTraits< T >::BaseType > | fsol_p
Vector< typename FunctionTraits< T >::BaseType > | err_p
| Local error area.
Vector< typename FunctionTraits< T >::BaseType > | ferr_p
FunctionTraits< T >::DiffType | valder_p
| Local value and derivatives.
Vector< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > > | consvd_p
| Local SVD constraints.
Protected Attributes inherited from casacore::LSQFit
uInt | state_p
| Bits set to indicate state.
uInt | nun_p
| Number of unknowns.
uInt | ncon_p
| Number of constraints.
uInt | n_p
| Matrix size (will be n_p = nun_p + ncon_p).
uInt | r_p
| Rank of normal equations (normally n_p).
Double | prec_p
| Collinearity precision.
Double | startnon_p
| Levenberg start factor.
Double | nonlin_p
| Levenberg current factor.
Double | stepfactor_p
| Levenberg step factor.
Double | epsval_p
| Test value for [incremental] solution in non-linear loop.
Double | epsder_p
| Test value for known vector in non-linear loop.
Bool | balanced_p
| Indicator for a well balanced normal equation.
uInt | maxiter_p
| Maximum number of iterations for non-linear solution.
uInt | niter_p
| Iteration count for non-linear solution.
ReadyCode | ready_p
| Indicate the non-linear state.
uInt * | piv_p
| Pivot table (n_p).
LSQMatrix * | norm_p
| Normal equations (triangular nun_p * nun_p).
uInt | nnc_p
| Current length nceq_p.
LSQMatrix * | nceq_p
| Normal combined with constraint equations for solutions (triangular nnc_p*nnc_p).
Double * | known_p
| Known part equations (n_p).
Double * | error_p
| Counts for errors (N_ErrorField).
Double * | constr_p
| Constraint equation area (nun_p*ncon_p)).
Double * | sol_p
| Solution area (n_p).
LSQFit * | nar_p
| Save area for non-linear case (size determined internally).
Double * | lar_p
| Save area for non-symmetric (i.e.
Double * | wsol_p
| Work areas for interim solutions and covariance.
Double * | wcov_p
Static Protected Attributes inherited from casacore::LSQFit
static const String | recid
| Record field names.
static const String | state
static const String | nun
static const String | ncon
static const String | prec
static const String | startnon
static const String | nonlin
static const String | rank
static const String | nnc
static const String | piv
static const String | constr
static const String | known
static const String | errors
static const String | sol
static const String | lar
static const String | wsol
static const String | wcov
static const String | nceq
static const String | nar

## Detailed Description

template<class T>
class casacore::LinearFitSVD< T >

Linear least-squares fit using Singular Value Decomposition method.

### Review Status

Reviewed By:
  wbrouw
Date Reviewed:
  2004/06/15
Test programs:
  tLinearFitSVD

### Prerequisite

- LinearFit
- Fitting

### Etymology

Solves the linear least-squares fit problem using the singular value decomposition method.

### Synopsis

The operation, calls and results are identical to those for the LinearFit class. The only difference is a collinearity default of 1e-8 rather than 0. The actual calculations do a singular value decomposition solution. A method exists to get the constraints used in solving for missing rank.

### Motivation

The creation of this class was driven by the need to provide users with a reliable least-squares fit method. "Numerical Recipes" recommends that singular value decomposition (SVD) method be always used for linear least-squares problems, because of its robustness. Not everybody agrees with this.

Definition at line 70 of file LinearFitSVD.h.

## Constructor & Destructor Documentation

## LinearFitSVD() [1/2]

template<class T>

casacore::LinearFitSVD< T >::LinearFitSVD | ( |  | ) |

Create a fitter: the normal way to generate a fitter object.

Necessary data will be deduced from the Functional provided with setFunction()

Referenced by LinearFitSVD(), and operator=().

## LinearFitSVD() [2/2]

template<class T>

casacore::LinearFitSVD< T >::LinearFitSVD | ( | const LinearFitSVD< T > & | other | ) |

Copy constructor (deep copy).

References LinearFitSVD().

## ~LinearFitSVD()

template<class T>

virtual casacore::LinearFitSVD< T >::~LinearFitSVD | ( |  | ) |

virtual

Destructor.

References casacore::GenericL2Fit< T >::COLLINEARITY, casacore::LinearFit< T >::LinearFit(), and casacore::GenericL2Fit< T >::svd_p.

## Member Function Documentation

## operator=()

template<class T>

LinearFitSVD & casacore::LinearFitSVD< T >::operator= | ( | const LinearFitSVD< T > & | other | ) |

Assignment (deep copy).

References LinearFitSVD().

The documentation for this class was generated from the following file:

- scimath/Fitting/LinearFitSVD.h