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

More...

`#include <Lorentzian1D.h>`

## Public Member Functions

| Lorentzian1D ()
| Constructs the one dimensional Lorentzians.
| Lorentzian1D (const T &height)
| Lorentzian1D (const T &height, const T &center)
| Lorentzian1D (const T &height, const T &center, const T &width)
| Lorentzian1D (const Lorentzian1D< T > &other)
| Copy constructor (deep copy).
template<class W>
| Lorentzian1D (const Lorentzian1D< W > &other)
Lorentzian1D< T > & | operator= (const Lorentzian1D< T > &other)
| Copy assignment (deep copy).
virtual | ~Lorentzian1D ()
| Destructor.
virtual T | eval (typename Function1D< T >::FunctionArg x) const
| Evaluate the Lorentzian at x.
virtual Function< T > * | clone () const
| 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::Lorentzian1DParam< T >
| Lorentzian1DParam ()
| Constructs the one dimensional Lorentzians.
| Lorentzian1DParam (const T &height)
| Lorentzian1DParam (const T &height, const T &center)
| Lorentzian1DParam (const T &height, const T &center, const T &width)
| Lorentzian1DParam (const Lorentzian1DParam< T > &other)
| Copy constructor (deep copy).
template<class W>
| Lorentzian1DParam (const Lorentzian1DParam< W > &other)
Lorentzian1DParam< T > & | operator= (const Lorentzian1DParam< T > &other)
| Copy assignment (deep copy).
virtual | ~Lorentzian1DParam ()
| Destructor.
virtual const String & | name () const
| Give name of function.
T | height () const
| Get or set the peak height of the Lorentzian.
void | setHeight (const T &height)
T | flux () const
| Get or set the analytical integrated area underneath the Lorentzian.
void | setFlux (const T &flux)
T | center () const
| Get or set the center ordinate of the Lorentzian.
void | setCenter (const T &cnter)
T | width () const
| Get or set the FWHM of the Lorentzian.
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.
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.

## Additional Inherited Members

Public Types inherited from casacore::Lorentzian1DParam< T >
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
Protected Attributes inherited from casacore::Lorentzian1DParam< T >
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::Lorentzian1D< T >

A one dimensional Lorentzian class.

### Intended use:

Public interface

### Review Status

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

### Prerequisite

- Lorentzian1DParam
- Function

### Etymology

A Lorentzian1D functional is designed exclusively for calculating a Lorentzian (or Normal) distribution in one dimension.

### Synopsis

A Lorentzian1D is described by a height, center, and width. Its fundamental operation is evaluating itself at some x. The parameters (height, center and width) may be changed at run time.

The width of the Lorentzian (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 Lorentzian 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 Lorentzian. 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 Lorentzian 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 Lorentzian1DParam class), is used to provide an interface to the Fitting classes.

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

1. The height of the Lorentzian. This is identical to the value returned using the height() member function.
2. The center of the Lorentzian in the x direction. This is identical to the value returned using the center() member function.
3. The width (FWHM) of the Lorentzian. To aid convergence of the non-linear fitting routines this parameter is allowed to be negative. This does not affect the shape of the Lorentzian 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.

### Example

Lorentzian<Double> gf(5.0, 25.0, 7);
gf(25); // = 5.0
gf[HEIGHT](1.0);
gf.setWidth(2.0);
gf[CENTER](0.0);
gf(1); // = 0.5*height = 0.5
casacore::Lorentzian1DParam::CENTER
@ CENTER
Definition Lorentzian1DParam.h:129
casacore::Lorentzian1DParam::HEIGHT
@ HEIGHT
Definition Lorentzian1DParam.h:129

### Template Type Argument Requirements (T)

- T should have standard numerical operators and exp() function. Current implementation only tested for real types.
- To obtain derivatives, the derivatives should be defined.

### Thrown Exceptions

- Assertion in debug mode if attempt is made to set a negative width
- AipsError if incorrect parameter number specified.
- Assertion in debug mode if operator(Vector<>) with empty Vector

### To Do

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

Definition at line 134 of file Lorentzian1D.h.

## Constructor & Destructor Documentation

## Lorentzian1D() [1/6]

template<class T>

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

inline

Constructs the one dimensional Lorentzians.

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

Definition at line 144 of file Lorentzian1D.h.

References casacore::Lorentzian1DParam< T >::Lorentzian1DParam().

Referenced by clone(), cloneAD(), cloneNonAD(), Lorentzian1D(), Lorentzian1D(), and operator=().

## Lorentzian1D() [2/6]

template<class T>

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

inline explicit

Definition at line 145 of file Lorentzian1D.h.

References casacore::Lorentzian1DParam< T >::height(), and casacore::Lorentzian1DParam< T >::Lorentzian1DParam().

## Lorentzian1D() [3/6]

template<class T>

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

inline

Definition at line 146 of file Lorentzian1D.h.

References casacore::Lorentzian1DParam< T >::center(), casacore::Lorentzian1DParam< T >::height(), and casacore::Lorentzian1DParam< T >::Lorentzian1DParam().

## Lorentzian1D() [4/6]

template<class T>

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

inline

Definition at line 148 of file Lorentzian1D.h.

References casacore::Lorentzian1DParam< T >::center(), casacore::Lorentzian1DParam< T >::height(), casacore::Lorentzian1DParam< T >::Lorentzian1DParam(), and casacore::Lorentzian1DParam< T >::width().

## Lorentzian1D() [5/6]

template<class T>

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

inline

Copy constructor (deep copy).

Definition at line 154 of file Lorentzian1D.h.

References Lorentzian1D(), and casacore::Lorentzian1DParam< T >::Lorentzian1DParam().

## Lorentzian1D() [6/6]

template<class T>
template<class W>

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

inline

Definition at line 156 of file Lorentzian1D.h.

References Lorentzian1D(), and casacore::Lorentzian1DParam< T >::Lorentzian1DParam().

## ~Lorentzian1D()

template<class T>

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

inline virtual

Destructor.

Definition at line 164 of file Lorentzian1D.h.

## Member Function Documentation

## clone()

template<class T>

virtual Function< T > * casacore::Lorentzian1D< T >::clone | ( |  | ) | const

inline virtual

Return a copy of this object from the heap.

The caller is responsible for deleting this pointer.

Implements casacore::Function< T, T >.

Definition at line 176 of file Lorentzian1D.h.

References Lorentzian1D().

## cloneAD()

template<class T>

virtual Function< typename FunctionTraits< T >::DiffType > * casacore::Lorentzian1D< T >::cloneAD | ( |  | ) | const

inline virtual

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

Definition at line 177 of file Lorentzian1D.h.

References Lorentzian1D().

## cloneNonAD()

template<class T>

virtual Function< typename FunctionTraits< T >::BaseType > * casacore::Lorentzian1D< T >::cloneNonAD | ( |  | ) | const

inline virtual

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

Definition at line 179 of file Lorentzian1D.h.

References Lorentzian1D().

## eval()

template<class T>

virtual T casacore::Lorentzian1D< T >::eval | ( | typename Function1D< T >::FunctionArg | x | ) | const

virtual

Evaluate the Lorentzian at x.

## operator=()

template<class T>

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

inline

Copy assignment (deep copy).

Definition at line 160 of file Lorentzian1D.h.

References Lorentzian1D(), and casacore::Lorentzian1DParam< T >::operator=().

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

- scimath/Functionals/Lorentzian1D.h