Loading...
Searching...
No Matches
MathFunc.h
Go to the documentation of this file.
//# MathFunc.h: Templated letter/envelope classes for single dependent variable functions
//# Copyright (C) 1993,1994,1995,1996,1999,2000,2001,2003
//# Associated Universities, Inc. Washington DC, USA.
//#
//# This library is free software; you can redistribute it and/or modify it
//# under the terms of the GNU Library General Public License as published by
//# the Free Software Foundation; either version 2 of the License, or (at your
//# option) any later version.
//#
//# This library is distributed in the hope that it will be useful, but WITHOUT
//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
//# License for more details.
//#
//# You should have received a copy of the GNU Library General Public License
//# along with this library; if not, write to the Free Software Foundation,
//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
//#
//# Correspondence concerning AIPS++ should be addressed as follows:
//# Internet email: casa-feedback@nrao.edu.
//# Postal address: AIPS++ Project Office
//# National Radio Astronomy Observatory
//# 520 Edgemont Road
//# Charlottesville, VA 22903-2475 USA
#ifndef SCIMATH_MATHFUNC_H
#define SCIMATH_MATHFUNC_H
//# MathFunc: A templated letter/envelope set of classes for packaging
//# of specific single dependent variable functions.
#include <casacore/casa/aips.h>
#include <casacore/casa/BasicMath/Math.h>
#include <casacore/casa/BasicSL/Constants.h>
#include <casacore/casa/Exceptions/Error.h>
#include <casacore/casa/Arrays/Vector.h>
#include <casacore/casa/BasicSL/String.h>
namespace casacore { //# NAMESPACE CASACORE - BEGIN
// <summary>
// Error class for <linkto class=MathFunc>MathFunc</linkto> class
// </summary>
// <synopsis>
// Error class for <linkto class=MathFunc>MathFunc</linkto> class
// </synopsis>
class MathFuncError : public AipsError
{
public:
MathFuncError() : AipsError("MathFuncError") {}
MathFuncError(const Char *m) : AipsError(m) {}
MathFuncError(const String &m) : AipsError(m) {}
virtual ~MathFuncError() noexcept {}
};
// <summary>
// Fred Schwab function to calculate spheriodal functions
// </summary>
// <synopsis>
// Fred Schwab function to calculate spheriodal functions.
// </synopsis>
// <group name="spheriodal functions">
// Fred Schwab function to calculate spheriodal functions, in C.
extern "C" {
Int sphfn(Int *, Int *, Int *, float *, float *, Int *);
}
// C++ wrapper to Fred Schwab function to calculate spheriodal functions.
float sphfn(Int ialf, Int im, float eta);
// </group>
// <summary>
// Enum used to identify function type for
// MathFunc class
// </summary>
// <synopsis>
// Enum used to identify function type for
// <linkto class=MathFunc>MathFunc</linkto> class
// </synopsis>
//############################################################################
//# NOTE: Delete the following listing of the enumerations when enumerations
//# are handled properly by the documentation extractor.
//############################################################################
// <note role=caution>
// The following enum documentation is currently
// extracted by hand, and thus
// could be out of date if this documentation was not updated when the
// enum was modified.
// </note>
// The FUNCTYPE enum is:
// <srcblock>
//
// enum FUNCTYPE { UNARY, GAUSSIAN, KB, MOD_KB, SINC, SPHEROIDAL, EXP_SINC };
//
// </srcblock>
// <group name="FUNCTYPE enum">
enum FUNCTYPE { UNARY, GAUSSIAN, KB, MOD_KB, SINC, SPHEROIDAL, EXP_SINC };
// </group>
// <summary>
// Function ID, for use by <linkto class=MathFunc>MathFunc</linkto> class
// </summary>
// <synopsis>
// Function ID, for use by <linkto class=MathFunc>MathFunc</linkto> class.
// </synopsis>
struct FuncId { String name; Vector<double> args;};
// <summary> A class to generate values of mathematical functions </summary>
//
// <synopsis>
//
// This class is the abstract base class for 1-dimensional math functions.
//
// Actual math functions are then an inherited class from the base
// class. This approach allows one to define actual function values
// for each derived class. Then, one can pass a generic MathFunc
// pointer to other objects, but the other objects will still get
// function values from the actual inherited function.
//
// By defining each math function as an object, we can place
// parameters which will not change from one call to the function value
// to another in the class definition and they only have to be
// initialized once.
//
// </synopsis>
//
// MathFunc is the base class for 1-dimensional math functions
//
template<class T>
class MathFunc {
public:
//
// constructors
//
MathFunc(FUNCTYPE);
// accept up to 4 arguments, the first being the support radius
MathFunc(FUNCTYPE, T cutoff, T arg1 = 1.0e+30, T arg2 = 1.0e+30,
T arg3 = 1.0e+30);
MathFunc(String &, Vector<double> &);
MathFunc(const MathFunc<T>&); // Copy constructor
MathFunc(MathFunc<T> *);
//
// Destructor
//
virtual ~MathFunc();
//
// Assignment operator - Note: this function works only for envelops.
// Polymorphism flaws will let you pass a letter as an argument but an
// exception will be thrown at run time.
//
MathFunc<T>& operator=(const MathFunc<T>&);
//
// return value of support width
//
virtual T sup_value() const;
//
// compute and return a value of the math function
//
virtual T value(const T &a) const;
//
// create a new math function
//
static MathFunc<T> *newMathFunc(const MathFunc<T>&);
//
// return a FuncId structure for Table storage/retrieval.
//
virtual FuncId id() const;
//
// These functions return the static constants used as default
// parameters for the various derived functions
//
// The default support radius
static T defcutoff() {return defcutoff_p;}
// The default width for Gaussian_Conv
static T defwidth() {return defwidth_p;}
// The default width for KB_Conv and Mod_KB_Conv
static T defKBwidth() {return defKBwidth_p;}
// A default parameter for KB_Conv and Mod_KB_Conv
static T defKBparm() {return defKBparm_p;}
// A default parameter for Mod_KB_Conv
static T defmodKBparm() {return defmodKBparm_p;}
// The default support radius for Sinc_Conv and Sph_Conv
static T defSphcutoff() {return defSphcutoff_p;}
// The default Sinc parameter for Sinc_Conv and Exp_Sinc_Conv
static T defSincparm() {return defSincparm_p;}
// The default parameter for Sph_Conv
static T defSphparm() {return defSphparm_p;}
// The default exponential power for Exp_Sinc_Conv
static T defExpPower() {return defExpPower_p;}
// The default exponential scale length for Exp_Sinc_Conv
static T defExpScale() {return defExpScale_p;}
protected:
//
// for every derived class, return new of that class with its own parameters
//
virtual MathFunc<T> * clone() const;
//
// Default constructor (Null)
//
MathFunc();
//
// pointer to letter class
//
MathFunc<T> *object;
private:
static T defcutoff_p;
static T defwidth_p;
static T defKBparm_p;
static T defKBwidth_p;
static T defmodKBparm_p;
static T defSphcutoff_p;
static T defSphparm_p;
static T defSincparm_p;
static T defExpPower_p;
static T defExpScale_p;
};
//# ========================================================
//# Now we define actual math classes as inherited classes of
//# the base class MathFunc
//# =========================================================
//
// <summary>Unary</summary>
//
// <synopsis>
// A Unary function (always returns the value 1.0)
// </synopsis>
//
template<class T>
class Unary: public MathFunc<T>
{
public:
//
//default constructor
//
Unary( T cut = MathFunc<T>::defcutoff());
//
//copy constructor
//
Unary(const Unary<T>&);
Unary<T>& operator=(const Unary<T>&);
T sup_value() const{ return sup_width;}
T value(const T &) const;
//
// return a FuncId structure for Table storage/retrieval.
//
FuncId id() const;
private:
MathFunc<T> * clone() const;
T sup_width;
};
//
// <category lib=aips sect="Math">
// <summary>Gaussian</summary>
//
// <synopsis>
// A Gaussian
// </synopsis>
//
template<class T>
class GaussianConv: public MathFunc<T>
{
public:
//
//default constructor
//
GaussianConv( T cut = MathFunc<T>::defcutoff(),
T wparm = MathFunc<T>::defwidth());
//
//copy constructor
//
GaussianConv(const GaussianConv<T>&);
GaussianConv<T>& operator=(const GaussianConv<T>&);
T sup_value() const{ return sup_width;}
T value(const T &) const;
//
// return a FuncId structure for Table storage/retrieval.
//
FuncId id() const;
private:
MathFunc<T> * clone() const;
T sup_width, fw2;
const T ln16;
};
//
// <category lib=aips sect="Math">
// <summary>A Kaiser-Bessel function</summary>
//
// <synopsis>
// A Kaiser-Bessel function
// </synopsis>
//
template<class T>
class KB_Conv: public MathFunc<T>
{
public:
//default constructor
KB_Conv(T cut = MathFunc<T>::defcutoff(),
T wparm = MathFunc<T>::defKBwidth(),
T kbparm = MathFunc<T>::defKBparm());
// copy constructor
KB_Conv(const KB_Conv<T> &);
KB_Conv<T>& operator=(const KB_Conv<T>&);
T sup_value() const { return sup_width;}
T value(const T &) const;
//
// return a FuncId structure for Table storage/retrieval.
//
FuncId id() const;
private:
MathFunc<T> * clone() const;
T kbparm, fw, sup_width;
};
//
// <category lib=aips sect="Math">
// <summary>A Kaiser-Bessel function multiplied by a Gaussian</summary>
//
// <synopsis>
// A Kaiser-Bessel function multiplied by a Gaussian
// </synopsis>
//
template<class T>
class Mod_KB_Conv: public MathFunc<T>
{
public:
//default constructor
Mod_KB_Conv (T cut = MathFunc<T>::defcutoff(),
T wparm = MathFunc<T>::defKBwidth(),
T kbparm = MathFunc<T>::defKBparm(),
T gwparm = MathFunc<T>::defmodKBparm());
//copy constructor
Mod_KB_Conv(const Mod_KB_Conv<T>&);
Mod_KB_Conv<T>& operator=(const Mod_KB_Conv<T>&);
T sup_value() const { return sup_width;}
T value(const T &) const;
//
// return a FuncId structure for Table storage/retrieval.
//
FuncId id() const;
private:
MathFunc<T>* clone() const;
T kbparm, gw2, sup_width, widthparm;
const T ln16;
};
// <category lib=aips sect="Math">
// <summary>Sine x / x function</summary>
//
//
// <synopsis>
// Sine x / x function
// </synopsis>
//
template<class T>
class Sinc_Conv: public MathFunc<T>
{
public:
//default constructor
Sinc_Conv(T cut = MathFunc<T>::defSphcutoff(),
T sincparm = MathFunc<T>::defSincparm());
//copy constructor
Sinc_Conv(const Sinc_Conv<T>&);
Sinc_Conv<T>& operator=(const Sinc_Conv<T>&);
T sup_value() const { return sup_width;}
T value(const T &) const;
//
// return a FuncId structure for Table storage/retrieval.
//
FuncId id() const;
private:
MathFunc<T> * clone() const;
T Sinc_parm, sup_width;
};
//
// <category lib=aips sect="Math">
// <summary>Spheroidal function</summary>
//
// <synopsis>
// Spheroidal function - calls Fred Schwab function converted by f2c
// </synopsis>
//
template<class T>
class Sph_Conv: public MathFunc<T>
//
// Spheroidal function - calls Fred Schwab function converted by f2c
//
{
public:
//default constructor
Sph_Conv(T cut = MathFunc<T>::defSphcutoff(),
T Sphparm = MathFunc<T>::defSphparm());
//copy constructor
Sph_Conv(const Sph_Conv<T>&);
Sph_Conv<T>& operator=(const Sph_Conv<T>&);
T sup_value() const { return sup_width;}
float value(const float &) const;
//
// return a FuncId structure for Table storage/retrieval.
//
FuncId id() const;
private:
MathFunc<T> * clone() const;
T sup_width, sphparm;
};
// <category lib=aips sect="Math">
// <summary>Exponential times a Sinc</summary>
//
// <synopsis>
// An Exponential times a Sinc
//
// The <src> value(T &x) </src> is given by
// <src> Exp(-(abs(x) / expscale) ** exppow) * Sinc( pi * x / sincparm) </src>
//
// where the 3 paramaters correspond to those in the default constructor
// Note that the default case of <src> exppow = 2 </src> is
// a Gaussian times a Sinc.
// Since this is often a useful case, that parameter appears last in the
// constructor.
// </synopsis>
//
template<class T>
class ExpSincConv: public MathFunc<T>
{
public:
//
// default constructor
//
ExpSincConv ( T cut = MathFunc<T>::defcutoff(),
T sincparm = MathFunc<T>::defSincparm(),
T exppow = MathFunc<T>::defExpPower(),
T expscale = MathFunc<T>::defExpScale());
// copy constructor
ExpSincConv (const ExpSincConv<T>&);
// assignment operator
ExpSincConv<T>& operator=(const ExpSincConv<T>&);
// get access to the support width
T sup_value() const { return sup_width; }
// and get the value of the function
T value(const T &) const;
//
// return FuncID structure for Table storage/retrieval.
//
FuncId id() const;
private:
MathFunc<T> * clone() const;
T sup_width, scale, exponent, sincpByPi;
};
} //# NAMESPACE CASACORE - END
#ifndef CASACORE_NO_AUTO_TEMPLATES
#include <casacore/scimath/Mathematics/MathFunc.tcc>
#endif //# CASACORE_NO_AUTO_TEMPLATES
#endif //AIPS_MATHFUNC_H
casacore::AipsError::AipsError
AipsError(const Char *str, Category c=GENERAL)
Creates an AipsError and initializes the error message from the parameter.
casacore::ExpSincConv::id
FuncId id() const
return FuncID structure for Table storage/retrieval.
casacore::ExpSincConv::operator=
ExpSincConv< T > & operator=(const ExpSincConv< T > &)
assignment operator
casacore::ExpSincConv::value
T value(const T &) const
and get the value of the function
casacore::ExpSincConv::clone
MathFunc< T > * clone() const
for every derived class, return new of that class with its own parameters
casacore::ExpSincConv::sincpByPi
T sincpByPi
Definition MathFunc.h:532
casacore::ExpSincConv::sup_width
T sup_width
Definition MathFunc.h:532
casacore::ExpSincConv::ExpSincConv
ExpSincConv(const ExpSincConv< T > &)
copy constructor
casacore::ExpSincConv::exponent
T exponent
Definition MathFunc.h:532
casacore::ExpSincConv::scale
T scale
Definition MathFunc.h:532
casacore::ExpSincConv::ExpSincConv
ExpSincConv(T cut=MathFunc< T >::defcutoff(), T sincparm=MathFunc< T >::defSincparm(), T exppow=MathFunc< T >::defExpPower(), T expscale=MathFunc< T >::defExpScale())
default constructor
casacore::ExpSincConv::sup_value
T sup_value() const
get access to the support width
Definition MathFunc.h:520
casacore::GaussianConv::clone
MathFunc< T > * clone() const
for every derived class, return new of that class with its own parameters
casacore::GaussianConv::sup_width
T sup_width
Definition MathFunc.h:331
casacore::GaussianConv::sup_value
T sup_value() const
return value of support width
Definition MathFunc.h:319
casacore::GaussianConv::operator=
GaussianConv< T > & operator=(const GaussianConv< T > &)
casacore::GaussianConv::ln16
const T ln16
Definition MathFunc.h:332
casacore::GaussianConv::fw2
T fw2
Definition MathFunc.h:331
casacore::GaussianConv::id
FuncId id() const
return a FuncId structure for Table storage/retrieval.
casacore::GaussianConv::GaussianConv
GaussianConv(const GaussianConv< T > &)
copy constructor
casacore::GaussianConv::value
T value(const T &) const
compute and return a value of the math function
casacore::GaussianConv::GaussianConv
GaussianConv(T cut=MathFunc< T >::defcutoff(), T wparm=MathFunc< T >::defwidth())
default constructor
casacore::KB_Conv::KB_Conv
KB_Conv(const KB_Conv< T > &)
copy constructor
casacore::KB_Conv::sup_value
T sup_value() const
return value of support width
Definition MathFunc.h:358
casacore::KB_Conv::clone
MathFunc< T > * clone() const
for every derived class, return new of that class with its own parameters
casacore::KB_Conv::operator=
KB_Conv< T > & operator=(const KB_Conv< T > &)
casacore::KB_Conv::value
T value(const T &) const
compute and return a value of the math function
casacore::KB_Conv::sup_width
T sup_width
Definition MathFunc.h:370
casacore::KB_Conv::kbparm
T kbparm
Definition MathFunc.h:370
casacore::KB_Conv::fw
T fw
Definition MathFunc.h:370
casacore::KB_Conv::KB_Conv
KB_Conv(T cut=MathFunc< T >::defcutoff(), T wparm=MathFunc< T >::defKBwidth(), T kbparm=MathFunc< T >::defKBparm())
default constructor
casacore::KB_Conv::id
FuncId id() const
return a FuncId structure for Table storage/retrieval.
casacore::MathFuncError::MathFuncError
MathFuncError()
Definition MathFunc.h:53
casacore::MathFuncError::~MathFuncError
virtual ~MathFuncError() noexcept
Definition MathFunc.h:57
casacore::MathFuncError::MathFuncError
MathFuncError(const Char *m)
Definition MathFunc.h:54
casacore::MathFuncError::MathFuncError
MathFuncError(const String &m)
Definition MathFunc.h:55
casacore::MathFunc::defSphparm_p
static T defSphparm_p
Definition MathFunc.h:245
casacore::MathFunc::defSphparm
static T defSphparm()
The default parameter for Sph_Conv.
Definition MathFunc.h:216
casacore::MathFunc::defExpPower_p
static T defExpPower_p
Definition MathFunc.h:247
casacore::MathFunc::newMathFunc
static MathFunc< T > * newMathFunc(const MathFunc< T > &)
create a new math function
casacore::MathFunc::defwidth_p
static T defwidth_p
Definition MathFunc.h:240
casacore::MathFunc::defSphcutoff_p
static T defSphcutoff_p
Definition MathFunc.h:244
casacore::MathFunc::defKBparm_p
static T defKBparm_p
Definition MathFunc.h:241
casacore::MathFunc::~MathFunc
virtual ~MathFunc()
Destructor.
casacore::MathFunc::defcutoff
static T defcutoff()
These functions return the static constants used as default parameters for the various derived functi...
Definition MathFunc.h:202
casacore::MathFunc::defcutoff_p
static T defcutoff_p
Definition MathFunc.h:239
casacore::MathFunc::clone
virtual MathFunc< T > * clone() const
for every derived class, return new of that class with its own parameters
casacore::MathFunc::MathFunc
MathFunc(MathFunc< T > *)
casacore::MathFunc::defExpPower
static T defExpPower()
The default exponential power for Exp_Sinc_Conv.
Definition MathFunc.h:218
casacore::MathFunc::operator=
MathFunc< T > & operator=(const MathFunc< T > &)
Assignment operator - Note: this function works only for envelops.
casacore::MathFunc::defKBwidth
static T defKBwidth()
The default width for KB_Conv and Mod_KB_Conv.
Definition MathFunc.h:206
casacore::MathFunc::MathFunc
MathFunc(FUNCTYPE, T cutoff, T arg1=1.0e+30, T arg2=1.0e+30, T arg3=1.0e+30)
accept up to 4 arguments, the first being the support radius
casacore::MathFunc::MathFunc
MathFunc(const MathFunc< T > &)
casacore::MathFunc::defSphcutoff
static T defSphcutoff()
The default support radius for Sinc_Conv and Sph_Conv.
Definition MathFunc.h:212
casacore::MathFunc::MathFunc
MathFunc(String &, Vector< double > &)
casacore::MathFunc::id
virtual FuncId id() const
return a FuncId structure for Table storage/retrieval.
casacore::MathFunc::object
MathFunc< T > * object
pointer to letter class
Definition MathFunc.h:236
casacore::MathFunc::defmodKBparm_p
static T defmodKBparm_p
Definition MathFunc.h:243
casacore::MathFunc::defExpScale
static T defExpScale()
The default exponential scale length for Exp_Sinc_Conv.
Definition MathFunc.h:220
casacore::MathFunc::sup_value
virtual T sup_value() const
return value of support width
casacore::MathFunc::defSincparm_p
static T defSincparm_p
Definition MathFunc.h:246
casacore::MathFunc::value
virtual T value(const T &a) const
compute and return a value of the math function
casacore::MathFunc::defmodKBparm
static T defmodKBparm()
A default parameter for Mod_KB_Conv.
Definition MathFunc.h:210
casacore::MathFunc::defSincparm
static T defSincparm()
The default Sinc parameter for Sinc_Conv and Exp_Sinc_Conv.
Definition MathFunc.h:214
casacore::MathFunc::MathFunc
MathFunc()
Default constructor (Null).
casacore::MathFunc::defKBwidth_p
static T defKBwidth_p
Definition MathFunc.h:242
casacore::MathFunc::defKBparm
static T defKBparm()
A default parameter for KB_Conv and Mod_KB_Conv.
Definition MathFunc.h:208
casacore::MathFunc::defExpScale_p
static T defExpScale_p
Definition MathFunc.h:248
casacore::MathFunc::defwidth
static T defwidth()
The default width for Gaussian_Conv.
Definition MathFunc.h:204
casacore::MathFunc::MathFunc
MathFunc(FUNCTYPE)
constructors
casacore::Mod_KB_Conv::clone
MathFunc< T > * clone() const
for every derived class, return new of that class with its own parameters
casacore::Mod_KB_Conv::Mod_KB_Conv
Mod_KB_Conv(const Mod_KB_Conv< T > &)
copy constructor
casacore::Mod_KB_Conv::operator=
Mod_KB_Conv< T > & operator=(const Mod_KB_Conv< T > &)
casacore::Mod_KB_Conv::value
T value(const T &) const
compute and return a value of the math function
casacore::Mod_KB_Conv::widthparm
T widthparm
Definition MathFunc.h:409
casacore::Mod_KB_Conv::id
FuncId id() const
return a FuncId structure for Table storage/retrieval.
casacore::Mod_KB_Conv::kbparm
T kbparm
Definition MathFunc.h:409
casacore::Mod_KB_Conv::Mod_KB_Conv
Mod_KB_Conv(T cut=MathFunc< T >::defcutoff(), T wparm=MathFunc< T >::defKBwidth(), T kbparm=MathFunc< T >::defKBparm(), T gwparm=MathFunc< T >::defmodKBparm())
default constructor
casacore::Mod_KB_Conv::sup_value
T sup_value() const
return value of support width
Definition MathFunc.h:397
casacore::Mod_KB_Conv::ln16
const T ln16
Definition MathFunc.h:410
casacore::Mod_KB_Conv::sup_width
T sup_width
Definition MathFunc.h:409
casacore::Mod_KB_Conv::gw2
T gw2
Definition MathFunc.h:409
casacore::Sinc_Conv::id
FuncId id() const
return a FuncId structure for Table storage/retrieval.
casacore::Sinc_Conv::value
T value(const T &) const
compute and return a value of the math function
casacore::Sinc_Conv::operator=
Sinc_Conv< T > & operator=(const Sinc_Conv< T > &)
casacore::Sinc_Conv::Sinc_parm
T Sinc_parm
Definition MathFunc.h:445
casacore::Sinc_Conv::Sinc_Conv
Sinc_Conv(T cut=MathFunc< T >::defSphcutoff(), T sincparm=MathFunc< T >::defSincparm())
default constructor
casacore::Sinc_Conv::sup_width
T sup_width
Definition MathFunc.h:445
casacore::Sinc_Conv::sup_value
T sup_value() const
return value of support width
Definition MathFunc.h:433
casacore::Sinc_Conv::Sinc_Conv
Sinc_Conv(const Sinc_Conv< T > &)
copy constructor
casacore::Sinc_Conv::clone
MathFunc< T > * clone() const
for every derived class, return new of that class with its own parameters
casacore::Sph_Conv::sphparm
T sphparm
Definition MathFunc.h:483
casacore::Sph_Conv::sup_value
T sup_value() const
return value of support width
Definition MathFunc.h:471
casacore::Sph_Conv::id
FuncId id() const
return a FuncId structure for Table storage/retrieval.
casacore::Sph_Conv::clone
MathFunc< T > * clone() const
for every derived class, return new of that class with its own parameters
casacore::Sph_Conv::operator=
Sph_Conv< T > & operator=(const Sph_Conv< T > &)
casacore::Sph_Conv::Sph_Conv
Sph_Conv(const Sph_Conv< T > &)
copy constructor
casacore::Sph_Conv::value
float value(const float &) const
casacore::Sph_Conv::sup_width
T sup_width
Definition MathFunc.h:483
casacore::Sph_Conv::Sph_Conv
Sph_Conv(T cut=MathFunc< T >::defSphcutoff(), T Sphparm=MathFunc< T >::defSphparm())
default constructor
casacore::String
String: the storage and methods of handling collections of characters.
Definition String.h:223
casacore::Unary::operator=
Unary< T > & operator=(const Unary< T > &)
casacore::Unary::Unary
Unary(const Unary< T > &)
copy constructor
casacore::Unary::id
FuncId id() const
return a FuncId structure for Table storage/retrieval.
casacore::Unary::value
T value(const T &) const
compute and return a value of the math function
casacore::Unary::sup_value
T sup_value() const
return value of support width
Definition MathFunc.h:279
casacore::Unary::Unary
Unary(T cut=MathFunc< T >::defcutoff())
default constructor
casacore::Unary::sup_width
T sup_width
Definition MathFunc.h:291
casacore::Unary::clone
MathFunc< T > * clone() const
for every derived class, return new of that class with its own parameters
casacore::Vector
Definition Vector.h:82
casacore
this file contains all the compiler specific defines
Definition mainpage.dox:28
casacore::Int
int Int
Definition aipstype.h:48
casacore::Char
char Char
Definition aipstype.h:44
casacore::FuncId
Function ID, for use by MathFunc class.
Definition MathFunc.h:125
casacore::FuncId::args
Vector< double > args
Definition MathFunc.h:125
casacore::FuncId::name
String name
Definition MathFunc.h:125
casacore::MathFunc_global_functions_FUNCTYPE_enum
Enum used to identify function type for MathFunc class.
Definition MathFunc.h:111
casacore::MathFunc_global_functions_FUNCTYPE_enum::FUNCTYPE
FUNCTYPE
Definition MathFunc.h:112
casacore::MathFunc_global_functions_FUNCTYPE_enum::UNARY
@ UNARY
Definition MathFunc.h:112
casacore::MathFunc_global_functions_FUNCTYPE_enum::SINC
@ SINC
Definition MathFunc.h:112
casacore::MathFunc_global_functions_FUNCTYPE_enum::KB
@ KB
Definition MathFunc.h:112
casacore::MathFunc_global_functions_FUNCTYPE_enum::MOD_KB
@ MOD_KB
Definition MathFunc.h:112
casacore::MathFunc_global_functions_FUNCTYPE_enum::SPHEROIDAL
@ SPHEROIDAL
Definition MathFunc.h:112
casacore::MathFunc_global_functions_FUNCTYPE_enum::GAUSSIAN
@ GAUSSIAN
Definition MathFunc.h:112
casacore::MathFunc_global_functions_FUNCTYPE_enum::EXP_SINC
@ EXP_SINC
Definition MathFunc.h:112
casacore::MathFunc_global_functions_spheriodal_functions
Fred Schwab function to calculate spheriodal functions.
Definition MathFunc.h:69
casacore::MathFunc_global_functions_spheriodal_functions::sphfn
float sphfn(Int ialf, Int im, float eta)
C++ wrapper to Fred Schwab function to calculate spheriodal functions.
casacore::MathFunc_global_functions_spheriodal_functions::sphfn
Int sphfn(Int *, Int *, Int *, float *, float *, Int *)
Fred Schwab function to calculate spheriodal functions, in C.