casacore
Public Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::FunctionParam< T > Class Template Reference

More...

#include <FunctionParam.h>

Public Member Functions

 FunctionParam ()
 Construct a default FunctionParam with 0 parameters. More...
 
 FunctionParam (const uInt n)
 Construct a FunctionParam with n parameters with zero value and all masks True More...
 
 FunctionParam (const Vector< T > &in)
 Construct a FunctionParam from the given vector, with all masks True More...
 
 FunctionParam (const FunctionParam< T > &other)
 Copy constructor (deep copy) More...
 
template<class W >
 FunctionParam (const FunctionParam< W > &other)
 Copy from different type (deep copy) More...
 
virtual ~FunctionParam ()
 Destructor. More...
 
FunctionParamoperator= (const FunctionParam< T > &other)
 Copy assignment (deep copy) More...
 
T & operator[] (const uInt n)
 Manipulate the nth parameter (0-based) with no index check. More...
 
const T & operator[] (const uInt n) const
 
Bool operator== (const FunctionParam< T > &other) const
 Compare two parameter sets for equal size, values and masks. More...
 
Bool operator!= (const FunctionParam< T > &other) const
 
uInt nelements () const
 Return the number of parameters. More...
 
T & parameter (const uInt n)
 Manipulate the nth parameter (0-based) with no index check. More...
 
const T & parameter (const uInt n) const
 
Boolmask (const uInt n)
 Manipulate the mask associated with the nth parameter (e.g. More...
 
const Boolmask (const uInt n) const
 
const Vector< T > & getParameters () const
 Get all parameters at once. More...
 
void setParameters (const Vector< T > &params)
 Set all the parameters at once. More...
 
const Vector< Bool > & getParamMasks () const
 Get all parameter masks at once. More...
 
void setParamMasks (const Vector< Bool > &masks)
 Set all parameter masks at once. More...
 
uInt nMaskedParameters () const
 Operations on the masked parameters only. More...
 
Vector< T > & getMaskedParameters () const
 All masked parameters only. More...
 
void setMaskedParameters (Vector< T > &in)
 
ostream & print (ostream &os) const
 Output the parameters. More...
 

Private Member Functions

void createMaskedPtr () const
 Create a cached version of the masked parameter list. More...
 
void clearMaskedPtr () const
 Clear the masked parameter list. More...
 

Private Attributes

uInt npar_p
 Number of parameters. More...
 
Vector< T > param_p
 Parameters. More...
 
Vector< Boolmask_p
 Masks. More...
 
Vector< T > * maskedPtr_p
 Cached masked data. More...
 

Detailed Description

template<class T>
class casacore::FunctionParam< T >

Container of function parameters with masking flags

Intended use:

Public interface

Review Status

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

Synopsis

FunctionParam is used to provide an interface to an entity which has parameters that can be flagged. This is useful, for example, in implementing parameter fitting which operates on generic function objects.

Each parameter can be masked. The mask can, e.g., be used to indicate to a generic least-squares fitting routine to only adjust parameters with a True mask (the default). For that reason methods that only handle True data items have names with Adjust in the names. In general the user should not be concerned with these methods, but should only manipulate the parameter flags and values.

Example

See the Function class for a usage interface.

Motivation

Generically manipulatable adjustable parameters are important for fitting.

Template Type Argument Requirements (T)

To Do

Definition at line 87 of file FunctionParam.h.

Constructor & Destructor Documentation

◆ FunctionParam() [1/5]

template<class T >
casacore::FunctionParam< T >::FunctionParam ( )

Construct a default FunctionParam with 0 parameters.

◆ FunctionParam() [2/5]

template<class T >
casacore::FunctionParam< T >::FunctionParam ( const uInt  n)
explicit

Construct a FunctionParam with n parameters with zero value and all masks True

◆ FunctionParam() [3/5]

template<class T >
casacore::FunctionParam< T >::FunctionParam ( const Vector< T > &  in)
explicit

Construct a FunctionParam from the given vector, with all masks True

◆ FunctionParam() [4/5]

template<class T >
casacore::FunctionParam< T >::FunctionParam ( const FunctionParam< T > &  other)

Copy constructor (deep copy)

◆ FunctionParam() [5/5]

template<class T >
template<class W >
casacore::FunctionParam< T >::FunctionParam ( const FunctionParam< W > &  other)
inline

◆ ~FunctionParam()

template<class T >
virtual casacore::FunctionParam< T >::~FunctionParam ( )
virtual

Destructor.

Member Function Documentation

◆ clearMaskedPtr()

template<class T >
void casacore::FunctionParam< T >::clearMaskedPtr ( ) const
private

Clear the masked parameter list.

◆ createMaskedPtr()

template<class T >
void casacore::FunctionParam< T >::createMaskedPtr ( ) const
private

Create a cached version of the masked parameter list.

◆ getMaskedParameters()

template<class T >
Vector<T>& casacore::FunctionParam< T >::getMaskedParameters ( ) const

All masked parameters only.

◆ getParameters()

template<class T >
const Vector<T>& casacore::FunctionParam< T >::getParameters ( ) const
inline

Get all parameters at once.

Returns zero length Vector if there are no parameters.

Definition at line 151 of file FunctionParam.h.

References casacore::FunctionParam< T >::param_p.

Referenced by casacore::FunctionParam< T >::FunctionParam().

◆ getParamMasks()

template<class T >
const Vector<Bool>& casacore::FunctionParam< T >::getParamMasks ( ) const
inline

Get all parameter masks at once.

Returns zero length Vector if there are no parameters.

Definition at line 159 of file FunctionParam.h.

References casacore::FunctionParam< T >::mask_p.

Referenced by casacore::FunctionParam< T >::FunctionParam().

◆ mask() [1/2]

template<class T >
Bool& casacore::FunctionParam< T >::mask ( const uInt  n)

Manipulate the mask associated with the nth parameter (e.g.

to indicate whether the parameter is adjustable or nonadjustable). Note no index check.

◆ mask() [2/2]

template<class T >
const Bool& casacore::FunctionParam< T >::mask ( const uInt  n) const
inline

Definition at line 146 of file FunctionParam.h.

References casacore::FunctionParam< T >::mask_p.

◆ nelements()

template<class T >
uInt casacore::FunctionParam< T >::nelements ( ) const
inline

Return the number of parameters.

Definition at line 134 of file FunctionParam.h.

References casacore::ArrayBase::nelements(), and casacore::FunctionParam< T >::param_p.

◆ nMaskedParameters()

template<class T >
uInt casacore::FunctionParam< T >::nMaskedParameters ( ) const

Operations on the masked parameters only.

For possible re-use the results are cached.

Number of masked (=True) parameters

◆ operator!=()

template<class T >
Bool casacore::FunctionParam< T >::operator!= ( const FunctionParam< T > &  other) const

◆ operator=()

template<class T >
FunctionParam& casacore::FunctionParam< T >::operator= ( const FunctionParam< T > &  other)

Copy assignment (deep copy)

◆ operator==()

template<class T >
Bool casacore::FunctionParam< T >::operator== ( const FunctionParam< T > &  other) const

Compare two parameter sets for equal size, values and masks.

◆ operator[]() [1/2]

template<class T >
T& casacore::FunctionParam< T >::operator[] ( const uInt  n)
inline

Manipulate the nth parameter (0-based) with no index check.

Definition at line 123 of file FunctionParam.h.

References casacore::FunctionParam< T >::param_p.

◆ operator[]() [2/2]

template<class T >
const T& casacore::FunctionParam< T >::operator[] ( const uInt  n) const
inline

Definition at line 124 of file FunctionParam.h.

References casacore::FunctionParam< T >::param_p.

◆ parameter() [1/2]

template<class T >
T& casacore::FunctionParam< T >::parameter ( const uInt  n)
inline

Manipulate the nth parameter (0-based) with no index check.

Definition at line 137 of file FunctionParam.h.

References casacore::FunctionParam< T >::param_p.

◆ parameter() [2/2]

template<class T >
const T& casacore::FunctionParam< T >::parameter ( const uInt  n) const
inline

Definition at line 138 of file FunctionParam.h.

References casacore::FunctionParam< T >::param_p.

◆ print()

template<class T >
ostream& casacore::FunctionParam< T >::print ( ostream &  os) const

Output the parameters.

Referenced by casacore::operator<<().

◆ setMaskedParameters()

template<class T >
void casacore::FunctionParam< T >::setMaskedParameters ( Vector< T > &  in)

◆ setParameters()

template<class T >
void casacore::FunctionParam< T >::setParameters ( const Vector< T > &  params)

Set all the parameters at once.

Only the minimum of the input number and the object number of parameters will be set.

◆ setParamMasks()

template<class T >
void casacore::FunctionParam< T >::setParamMasks ( const Vector< Bool > &  masks)

Set all parameter masks at once.

Only the minimum of the input number and the object number of parameters will be set.

Member Data Documentation

◆ mask_p

template<class T >
Vector<Bool> casacore::FunctionParam< T >::mask_p
private

◆ maskedPtr_p

template<class T >
Vector<T>* casacore::FunctionParam< T >::maskedPtr_p
mutableprivate

Cached masked data.

Definition at line 189 of file FunctionParam.h.

◆ npar_p

template<class T >
uInt casacore::FunctionParam< T >::npar_p
private

Number of parameters.

Definition at line 183 of file FunctionParam.h.

Referenced by casacore::FunctionParam< T >::FunctionParam().

◆ param_p

template<class T >
Vector<T> casacore::FunctionParam< T >::param_p
private

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