15#include "HiCalTypes.h"
18#include "NonLinearLSQ.h"
20#include "IException.h"
54 void setBin(
int bin) { _timet.setBin(bin); }
71 inline int size()
const {
return (_data.dim()); }
84 int nSize()
const {
return (_b2.dim()); }
97 void setabsErr(
double absError) { _absErr = absError; }
99 void setrelErr(
double relError) { _relErr = relError; }
101 double absErr()
const {
return (_absErr); }
103 double relErr()
const {
return (_relErr); }
108 const NLVector &uncerts,
double cplxconj,
111 NLVector
f_x(
const NLVector &a);
112 NLMatrix
df_x(
const NLVector &a);
115 double Chisq()
const {
return (_chisq); }
142 virtual void printOn(std::ostream &o)
const;
Compute HiRISE line times.
Module manages HiRISE calibration vectors from various sources.
NonLinearLSQ Computes a fit using a Levenberg-Marquardt algorithm.
Computes non-linear lsq fit of HiRISE Drift (Zd module)
virtual void printOn(std::ostream &o) const
Provides virtualized dump of data from this module.
int nParms() const
Number of parameter to be fitted.
bool gotGoodLines(const HiVector &d) const
Determines if the vector contains any valid lines.
HiVector Yfit() const
Computes the solution vector using current coefficents.
HiVector Normalize(const HiVector &v)
Compute normalized solution vector from result.
int size() const
Returns the size of the data buffer.
void setrelErr(double relError)
Sets the relative error parameter
double relErr() const
Returns the current value of the relative error.
int DoF() const
Returns the Degrees of Freedom.
NLMatrix df_x(const NLVector &a)
Computes the first derivative of the function at the current iteration.
void setabsErr(double absError)
Sets the absolute error parameter.
int checkIteration(const int Iter, const NLVector &fitcoefs, const NLVector &uncerts, double cplxconj, int Istatus)
Computes the interation check for convergence.
void setBin(int bin)
Set binning/summing mode.
NLVector guess()
Compute the initial guess of the fit.
double absErr() const
Returns the current value of the absolute error.
HiVector Solve(const HiVector &d)
Compute non-linear fit to (typically) ZeroBufferSmooth module.
double Chisq() const
Returns the Chi-Square value of the fit solution.
HiVector poly_fit(const HiVector &d, const double line0=0.0) const
Compute a polyonomial fit using multivariate statistics.
void setLineTime(double ltime)
Set scan line time.
int nSize() const
Returns the size of the fitted buffer.
NLVector f_x(const NLVector &a)
Computes the function value at the current iteration.
int goodLines(const HiVector &d) const
Returns the number of good lines in the image.
virtual ~ZeroBufferFit()
Destructor.
ZeroBufferFit(const HiCalConf &conf)
Compute second level drift correction (Zf module)
This is free and unencumbered software released into the public domain.
TNT::Array1D< double > HiVector
1-D Buffer