Loading...
Searching...
No Matches
casacore::Gaussian1DParam< T > Class Template Reference
Functionals_module_internal_classes

More...

`#include <Gaussian1DParam.h>`

## Public Types

enum | { HEIGHT , CENTER , WIDTH }
Public Types inherited from casacore::Function1D< T, U >
typedef const T * | FunctionArg
Public Types inherited from casacore::Function< T, T >
typedef FunctionTraits< T >::ArgType | ArgType
typedef const ArgType * | FunctionArg

## Public Member Functions

| Gaussian1DParam ()
| Constructs the one dimensional Gaussians.
| Gaussian1DParam (const T &height)
| Gaussian1DParam (const T &height, const T &center)
| Gaussian1DParam (const T &height, const T &center, const T &width)
| Gaussian1DParam (const Gaussian1DParam< T > &other)
| Copy constructor (deep copy).
template<class W>
| Gaussian1DParam (const Gaussian1DParam< W > &other)
Gaussian1DParam< T > & | operator= (const Gaussian1DParam< T > &other)
| Copy assignment (deep copy).
virtual | ~Gaussian1DParam ()
| Destructor.
virtual const String & | name () const
| Give name of function.
T | height () const
| Get or set the peak height of the Gaussian.
void | setHeight (const T &height)
T | flux () const
| Get or set the analytical integrated area underneath the Gaussian.
void | setFlux (const T &flux)
T | center () const
| Get or set the center ordinate of the Gaussian.
void | setCenter (const T &cnter)
T | width () const
| Get or set the FWHM of the Gaussian.
void | setWidth (const T &width)
Public Member Functions inherited from casacore::Function1D< T, U >
| Function1D ()
| Constructors.
| Function1D (const uInt n)
| Function1D (const Vector< T > &in)
| Function1D (const FunctionParam< T > &other)
template<class W, class X>
| Function1D (const Function1D< W, X > &other)
virtual | ~Function1D ()
| Destructor.
virtual uInt | ndim () const
| Returns the number of dimensions of function.
Public Member Functions inherited from casacore::Function< T, T >
| Function ()
| Constructors.
virtual | ~Function ()
| Destructor.
uInt | nparameters () const
| Returns the number of parameters.
virtual T | eval (FunctionArg x) const=0
| Evaluate the function object.
T & | operator[] (const uInt n)
| Manipulate the nth parameter (0-based) with no index check.
virtual T | operator() () const
| Evaluate this function object at xor at x, y.
Bool & | mask (const uInt n)
| Manipulate the mask associated with the nth parameter (e.g.
const FunctionParam< T > & | parameters () const
| Return the parameter interface.
const Vector< ArgType > & | argp () const
| Get arg_p and parset_p.
Bool | parsetp () const
void | lockParam ()
| Compiler cannot always find the correct 'const' version of parameter access.
void | unlockParam ()
virtual void | setMode (const RecordInterface &mode)
| get/set the function mode.
virtual void | getMode (RecordInterface &mode) const
virtual Bool | hasMode () const
| return True if the implementing function supports a mode.
ostream & | print (ostream &os) const
| Print the function (i.e.
virtual Function< T, T > * | clone () const=0
| Return a copy of this object from the heap.
virtual Function< typename FunctionTraits< T >::DiffType > * | cloneAD () const
virtual Function< typename FunctionTraits< T >::BaseType > * | cloneNonAD () const
Public Member Functions inherited from casacore::Functional< FunctionTraits< T >::ArgType, T >
virtual | ~Functional ()
| Destructor.
virtual T | operator() (const FunctionTraits< T >::ArgType &x) const=0
| Map a Domain x into a Range y value.
Public Member Functions inherited from casacore::Functional< Vector< FunctionTraits< T >::ArgType >, T >
virtual | ~Functional ()
| Destructor.
virtual T | operator() (const Vector< FunctionTraits< T >::ArgType > &x) const=0
| Map a Domain x into a Range y value.

## Protected Attributes

T | fwhm2int
| Constant to scale halfwidth at 1/e to FWHM.
Protected Attributes inherited from casacore::Function< T, T >
FunctionParam< T > | param_p
| The parameters and masks.
Vector< ArgType > | arg_p
| Aid for non-contiguous argument storage.
Bool | parset_p
| Indicate parameter written.
Bool | locked_p
| Indicate that parameters are expected to be locked from changing.

## Detailed Description

template<class T>
class casacore::Gaussian1DParam< T >

Parameter handling for one dimensional Gaussian class.

### Intended use:

Internal

### Review Status

Reviewed By:
  tcornwel
Date Reviewed:
  1996/02/22
Test programs:
  tGaussian1D

### Prerequisite

- FunctionParam class
- Function1D class

### Etymology

A 1-dimensional Gaussian's parameters.

### Synopsis

A Gaussian1D is described by a height, center, and width. The parameters (height, center and width) may be changed at run time.

The width of the Gaussian (for the constructors or the setWidth function) is always specified in terms of the full width at half maximum (FWHM). It is always positive and attempts to set a non-positive width will throw an assertion when in debug mode.

The peak height of the Gaussian can be specified at construction time or by using the setHeight function. Alternatively the setFlux function can be used to implicitly set the peak height by specifying the integrated area under the Gaussian. The height (or flux) can be positive, negative or zero, as this class makes no assumptions on what quantity the height represents.

Tip: Changing the width of the Gaussian will not affect its peak height but will change its flux; So you should always set the width before setting the flux;

The parameter interface (see FunctionParam class), is used to provide an interface to the Fitting classes.

There are 3 parameters that are used to describe the Gaussian:

1. The height of the Gaussian. This is identical to the value returned using the height() member function.
2. The center of the Gaussian in the x direction. This is identical to the value returned using the center() member function.
3. The width (FWHM) of the Gaussian. To aid convergence of the non-linear fitting routines this parameter is allowed to be negative. This does not affect the shape of the Gaussian as the square of the width is used when evaluating the function.

An enumeration for the HEIGHT, WIDTH and CENTER parameter index is provided, enabling the setting and reading of parameters with the [] operator. The mask() methods can be used to check and set the parameter masks.

This class is in general used implicitly by the Gaussian1D class only.

### Example

Gaussian1D<Double> gf(5.0, 25.0, 7);
gf(25); // = 5.0
gf.setHeight(1.0);
gf[WIDTH](2.0);
gf[CENTER](0.0);
gf(1); // = 0.5*height = 0.5
casacore::Gaussian1DParam::WIDTH
@ WIDTH
Definition Gaussian1DParam.h:129
casacore::Gaussian1DParam::CENTER
@ CENTER
Definition Gaussian1DParam.h:129
casacore::Gaussian1D
Definition Gaussian1D.h:133

### Template Type Argument Requirements (T)

- T should have standard numerical operators and exp() function. Current implementation only tested for real types (and their AutoDiffs).

### Thrown Exceptions

- Assertion in debug mode if attempt is made to set a negative width
- AipsError if incorrect parameter number specified.

### To Do

- Gaussians that know about their DFT's could be required eventually.

Definition at line 126 of file Gaussian1DParam.h.

## Member Enumeration Documentation

## anonymous enum

template<class T>

anonymous enum

Enumerator
HEIGHT |
CENTER |
WIDTH |

Definition at line 129 of file Gaussian1DParam.h.

## Constructor & Destructor Documentation

## Gaussian1DParam() [1/6]

template<class T>

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

Constructs the one dimensional Gaussians.

Defaults: height=1, center=0, width(FWHM)=1.
Warning: Could not use default arguments that worked both with gcc and IRIX and all templates

Referenced by casacore::Gaussian1D< T >::Gaussian1D(), casacore::Gaussian1D< T >::Gaussian1D(), casacore::Gaussian1D< T >::Gaussian1D(), casacore::Gaussian1D< T >::Gaussian1D(), casacore::Gaussian1D< T >::Gaussian1D(), casacore::Gaussian1D< T >::Gaussian1D(), Gaussian1DParam(), Gaussian1DParam(), and operator=().

## Gaussian1DParam() [2/6]

template<class T>

casacore::Gaussian1DParam< T >::Gaussian1DParam | ( | const T & | height | ) |

explicit

References height().

## Gaussian1DParam() [3/6]

template<class T>

casacore::Gaussian1DParam< T >::Gaussian1DParam | ( | const T & | height,
|  | const T & | center )

References center(), and height().

## Gaussian1DParam() [4/6]

template<class T>

casacore::Gaussian1DParam< T >::Gaussian1DParam | ( | const T & | height,
|  | const T & | center,
|  | const T & | width )

References center(), height(), and width().

## Gaussian1DParam() [5/6]

template<class T>

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

Copy constructor (deep copy).

References Gaussian1DParam().

## Gaussian1DParam() [6/6]

template<class T>
template<class W>

casacore::Gaussian1DParam< T >::Gaussian1DParam | ( | const Gaussian1DParam< W > & | other | ) |

inline

Definition at line 147 of file Gaussian1DParam.h.

References casacore::Function1D< T, U >::Function1D(), fwhm2int, Gaussian1DParam(), casacore::log(), and casacore::sqrt().

## ~Gaussian1DParam()

template<class T>

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

virtual

Destructor.

## Member Function Documentation

## center()

template<class T>

T casacore::Gaussian1DParam< T >::center | ( |  | ) | const

inline

Get or set the center ordinate of the Gaussian.

Definition at line 179 of file Gaussian1DParam.h.

References CENTER, and casacore::Function< T, T >::param_p.

Referenced by casacore::Gaussian1D< T >::Gaussian1D(), casacore::Gaussian1D< T >::Gaussian1D(), Gaussian1DParam(), and Gaussian1DParam().

## flux()

template<class T>

T casacore::Gaussian1DParam< T >::flux | ( |  | ) | const

Get or set the analytical integrated area underneath the Gaussian.

Use these functions as an alternative to the height functions.

Referenced by setFlux().

## height()

template<class T>

T casacore::Gaussian1DParam< T >::height | ( |  | ) | const

inline

Get or set the peak height of the Gaussian.

Definition at line 166 of file Gaussian1DParam.h.

References HEIGHT, and casacore::Function< T, T >::param_p.

Referenced by casacore::Gaussian1D< T >::Gaussian1D(), casacore::Gaussian1D< T >::Gaussian1D(), casacore::Gaussian1D< T >::Gaussian1D(), Gaussian1DParam(), Gaussian1DParam(), Gaussian1DParam(), and setHeight().

## name()

template<class T>

virtual const String & casacore::Gaussian1DParam< T >::name | ( |  | ) | const

inline virtual

Give name of function.

Reimplemented from casacore::Function< T, T >.

Definition at line 161 of file Gaussian1DParam.h.

## operator=()

template<class T>

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

Copy assignment (deep copy).

References Gaussian1DParam().

Referenced by casacore::Gaussian1D< T >::operator=().

## setCenter()

template<class T>

void casacore::Gaussian1DParam< T >::setCenter | ( | const T & | cnter | ) |

inline

Definition at line 180 of file Gaussian1DParam.h.

References CENTER, and casacore::Function< T, T >::param_p.

## setFlux()

template<class T>

void casacore::Gaussian1DParam< T >::setFlux | ( | const T & | flux | ) |

References flux().

## setHeight()

template<class T>

void casacore::Gaussian1DParam< T >::setHeight | ( | const T & | height | ) |

inline

Definition at line 167 of file Gaussian1DParam.h.

References HEIGHT, height(), and casacore::Function< T, T >::param_p.

## setWidth()

template<class T>

void casacore::Gaussian1DParam< T >::setWidth | ( | const T & | width | ) |

inline

Definition at line 186 of file Gaussian1DParam.h.

References casacore::Function< T, T >::param_p, WIDTH, and width().

## width()

template<class T>

T casacore::Gaussian1DParam< T >::width | ( |  | ) | const

inline

Get or set the FWHM of the Gaussian.

Definition at line 185 of file Gaussian1DParam.h.

References casacore::Function< T, T >::param_p, and WIDTH.

Referenced by casacore::Gaussian1D< T >::Gaussian1D(), Gaussian1DParam(), and setWidth().

## Member Data Documentation

## fwhm2int

template<class T>

T casacore::Gaussian1DParam< T >::fwhm2int

protected

Constant to scale halfwidth at 1/e to FWHM.

Definition at line 191 of file Gaussian1DParam.h.

Referenced by Gaussian1DParam().

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

- scimath/Functionals/Gaussian1DParam.h