SciDAVis  1.D4
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
Filter Class Reference

Abstract base class for data analysis operations. More...

#include <Filter.h>

Inheritance diagram for Filter:
Convolution Correlation Differentiation FFT FFTFilter Fit Integration Interpolation SmoothFilter

List of all members.

Public Member Functions

int dataSize ()
 Returns the size of the fitted data set.
bool error ()
 Filter (ApplicationWindow *parent, Table *t=0, const char *name=0)
 Filter (ApplicationWindow *parent, Graph *g=0, const char *name=0)
virtual QString legendInfo ()
 Output string added to the plot as a new legend.
virtual bool run ()
 Actually does the job. Should be reimplemented in derived classes.
void setColor (int colorId)
 Sets the color of the output fit curve.
void setColor (const QString &colorName)
 Sets the color of the output fit curve. Provided for convenience. To be used in scripts only!
virtual void setDataCurve (int curve, double start, double end)
bool setDataFromCurve (const QString &curveTitle, Graph *g=0)
bool setDataFromCurve (const QString &curveTitle, double from, double to, Graph *g=0)
void setInterval (double from, double to)
 Changes the data range if the source curve was already assigned. Provided for convenience.
void setMaximumIterations (int iter)
 Sets the maximum number of iterations to be performed during an iterative session.
void setOutputPoints (int points)
 Sets the number of points in the output curve.
void setOutputPrecision (int digits)
 Sets the precision used for the output.
void setTolerance (double eps)
 Sets the tolerance used by the GSL routines.
virtual void showLegend ()
 Adds a new legend to the plot. Calls virtual legendInfo()
 ~Filter ()

Protected Member Functions

QwtPlotCurve * addResultCurve (double *x, double *y)
 Adds the result curve to the target output plot window. Creates a hidden table and frees the input data from memory.
virtual void calculateOutputData (double *X, double *Y)
 Calculates the data for the output curve and store it in the X an Y vectors.
int curveIndex (const QString &curveTitle, Graph *g)
 Performs checks and returns the index of the source data curve if OK, -1 otherwise.
virtual bool isDataAcceptable ()
virtual QString logInfo ()
 Output string added to the log pannel of the application.
virtual void output ()
 Performs the data analysis and takes care of the output.

Protected Attributes

QwtPlotCurve * d_curve
 The curve to be analysed.
int d_curveColorIndex
 Color index of the result curve.
QString d_explanation
 String explaining the operation in the comment of the result table and in the project explorer.
double d_from
 Data interval.
Graphd_graph
 The graph where the result curve should be displayed.
bool d_init_err
 Error flag telling if something went wrong during the initialization phase.
int d_max_iterations
 Maximum number of iterations per fit.
int d_min_points
 Minimum number of data points necessary to perform the operation.
int d_n
 Size of the data arrays.
int d_points
 Number of result points to de calculated and displayed in the output curve.
int d_prec
 Precision (number of significant digits) used for the results output.
bool d_sort_data
 Specifies if the filter needs sorted data as input.
Tabled_table
 A table source of data.
double d_to
double d_tolerance
 GSL Tolerance, if ever needed...
double * d_x
 x data set to be analysed
double * d_y
 y data set to be analysed

Private Member Functions

int curveData (QwtPlotCurve *c, double start, double end, double **x, double **y)
 Sets x and y to the curve points between start and end.
void init ()
int sortedCurveData (QwtPlotCurve *c, double start, double end, double **x, double **y)
 Same as curveData, but sorts the points by their x value.

Detailed Description

Abstract base class for data analysis operations.


Constructor & Destructor Documentation

Filter::Filter ( ApplicationWindow parent,
Table t = 0,
const char *  name = 0 
)

References d_table, and init().

Filter::Filter ( ApplicationWindow parent,
Graph g = 0,
const char *  name = 0 
)

References d_graph, and init().

Filter::~Filter ( )

References d_n, d_x, and d_y.


Member Function Documentation

QwtPlotCurve * Filter::addResultCurve ( double *  x,
double *  y 
)
protected
virtual void Filter::calculateOutputData ( double *  X,
double *  Y 
)
inlineprotectedvirtual

Calculates the data for the output curve and store it in the X an Y vectors.

Reimplemented in FFTFilter, SmoothFilter, and Interpolation.

Referenced by output().

int Filter::curveData ( QwtPlotCurve *  c,
double  start,
double  end,
double **  x,
double **  y 
)
private

Sets x and y to the curve points between start and end.

Returns:
the number of points within range == size of x and y arrays. Memory will be allocated with new double[].

Referenced by setDataCurve().

int Filter::curveIndex ( const QString &  curveTitle,
Graph g 
)
protected

Performs checks and returns the index of the source data curve if OK, -1 otherwise.

References Graph::curveIndex(), d_graph, and d_init_err.

Referenced by setDataFromCurve().

int Filter::dataSize ( )
inline

Returns the size of the fitted data set.

References d_n.

bool Filter::error ( )
inline
void Filter::init ( )
private
bool Filter::isDataAcceptable ( )
protectedvirtual

Reimplemented in Integration, and Interpolation.

References d_min_points, and d_n.

Referenced by setDataCurve().

virtual QString Filter::legendInfo ( )
inlinevirtual

Output string added to the plot as a new legend.

Reimplemented in Fit, and PolynomialFit.

Referenced by showLegend().

virtual QString Filter::logInfo ( )
inlineprotectedvirtual

Output string added to the log pannel of the application.

Reimplemented in Integration.

Referenced by run().

void Filter::output ( )
protectedvirtual

Performs the data analysis and takes care of the output.

Reimplemented in Deconvolution, Integration, Convolution, FFT, Correlation, and Differentiation.

References addResultCurve(), calculateOutputData(), and d_points.

Referenced by run().

bool Filter::run ( )
virtual
void Filter::setColor ( int  colorId)
inline
void Filter::setColor ( const QString &  colorName)

Sets the color of the output fit curve. Provided for convenience. To be used in scripts only!

References ColorBox::colorIndex(), d_curveColorIndex, and ColorBox::isValidColor().

void Filter::setDataCurve ( int  curve,
double  start,
double  end 
)
virtual
bool Filter::setDataFromCurve ( const QString &  curveTitle,
Graph g = 0 
)
bool Filter::setDataFromCurve ( const QString &  curveTitle,
double  from,
double  to,
Graph g = 0 
)
void Filter::setInterval ( double  from,
double  to 
)

Changes the data range if the source curve was already assigned. Provided for convenience.

References d_curve, and setDataFromCurve().

void Filter::setMaximumIterations ( int  iter)
inline

Sets the maximum number of iterations to be performed during an iterative session.

References d_max_iterations.

Referenced by FitDialog::accept().

void Filter::setOutputPoints ( int  points)
inline

Sets the number of points in the output curve.

References d_points.

Referenced by InterpolationDialog::interpolate().

void Filter::setOutputPrecision ( int  digits)
inline

Sets the precision used for the output.

References d_prec.

Referenced by ApplicationWindow::analyzeCurve(), PolynomFitDialog::fit(), and ExpDecayDialog::fit().

void Filter::setTolerance ( double  eps)
inline

Sets the tolerance used by the GSL routines.

References d_tolerance.

Referenced by FitDialog::accept().

void Filter::showLegend ( )
virtual
int Filter::sortedCurveData ( QwtPlotCurve *  c,
double  start,
double  end,
double **  x,
double **  y 
)
private

Same as curveData, but sorts the points by their x value.

Referenced by setDataCurve().


Member Data Documentation

QwtPlotCurve* Filter::d_curve
protected
int Filter::d_curveColorIndex
protected
QString Filter::d_explanation
protected
double Filter::d_from
protected
Graph* Filter::d_graph
protected
bool Filter::d_init_err
protected
int Filter::d_max_iterations
protected

Maximum number of iterations per fit.

Referenced by Fit::Fit(), Fit::fitGslMultifit(), Fit::fitGslMultimin(), init(), and setMaximumIterations().

int Filter::d_min_points
protected
int Filter::d_n
protected

Size of the data arrays.

Referenced by Correlation::addResultCurve(), Convolution::addResultCurve(), SigmoidalFit::calculateFitCurveData(), NonLinearFit::calculateFitCurveData(), ExponentialFit::calculateFitCurveData(), PluginFit::calculateFitCurveData(), PolynomialFit::calculateFitCurveData(), TwoExpFit::calculateFitCurveData(), LinearFit::calculateFitCurveData(), ThreeExpFit::calculateFitCurveData(), GaussAmpFit::calculateFitCurveData(), Interpolation::calculateOutputData(), FFTFilter::calculateOutputData(), dataSize(), Fit::errors(), Fit::evaluate_d(), Fit::evaluate_df(), Fit::evaluate_f(), FFT::fftCurve(), PolynomialFit::fit(), Fit::Fit(), Fit::fit(), LinearFit::fit(), Fit::fitGslMultifit(), Fit::fitGslMultimin(), MultiPeakFit::generateFitCurve(), Fit::generateFitCurve(), SigmoidalFit::guessInitialValues(), MultiPeakFit::guessInitialValues(), SmoothFilter::init(), FFTFilter::init(), init(), Fit::insertFitFunctionCurve(), MultiPeakFit::insertPeakFunctionCurve(), Interpolation::isDataAcceptable(), Integration::isDataAcceptable(), isDataAcceptable(), Fit::legendInfo(), Fit::logFitInfo(), Integration::logInfo(), Differentiation::output(), Correlation::output(), Fit::rSquare(), run(), setDataCurve(), Fit::setDataCurve(), Correlation::setDataFromTable(), Convolution::setDataFromTable(), FFT::setDataFromTable(), Interpolation::setMethod(), Fit::setYErrorSource(), SmoothFilter::smoothAverage(), SmoothFilter::smoothFFT(), SmoothFilter::smoothModifiedSavGol(), SmoothFilter::smoothSavGol(), and ~Filter().

int Filter::d_points
protected
int Filter::d_prec
protected
bool Filter::d_sort_data
protected

Specifies if the filter needs sorted data as input.

Referenced by Fit::Fit(), Interpolation::init(), Integration::init(), init(), and setDataCurve().

Table* Filter::d_table
protected
double Filter::d_to
protected
double Filter::d_tolerance
protected

GSL Tolerance, if ever needed...

Referenced by Fit::Fit(), Fit::fitGslMultifit(), Fit::fitGslMultimin(), init(), Fit::logFitInfo(), and setTolerance().

double* Filter::d_x
protected
double* Filter::d_y
protected

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