LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
lsst::afw::math::LanczosFunction2< ReturnT > Class Template Reference

2-dimensional separable Lanczos function More...

#include <FunctionLibrary.h>

Inheritance diagram for lsst::afw::math::LanczosFunction2< ReturnT >:
lsst::afw::math::Function2< ReturnT > lsst::afw::table::io::PersistableFacade< Function2< ReturnT > > lsst::afw::math::Function< ReturnT > lsst::daf::base::Citizen lsst::afw::table::io::PersistableFacade< Function< ReturnT > > lsst::afw::table::io::Persistable

Public Types

typedef Function2< ReturnT >::Ptr Function2Ptr
 
- Public Types inherited from lsst::afw::math::Function2< ReturnT >
typedef boost::shared_ptr
< Function2< ReturnT > > 
Ptr
 
- Public Types inherited from lsst::daf::base::Citizen
enum  { magicSentinel = 0xdeadbeef }
 
typedef unsigned long memId
 Type of the block's ID. More...
 
typedef memId(* memNewCallback )(const memId cid)
 A function used to register a callback. More...
 
typedef memId(* memCallback )(const Citizen *ptr)
 

Public Member Functions

 LanczosFunction2 (unsigned int n, double xOffset=0.0, double yOffset=0.0)
 Construct a Lanczos function of specified order and x,y offset. More...
 
virtual ~LanczosFunction2 ()
 
virtual Function2Ptr clone () const
 Return a pointer to a deep copy of this function. More...
 
virtual ReturnT operator() (double x, double y) const
 
unsigned int getOrder () const
 Get the order of Lanczos function. More...
 
virtual std::string toString (std::string const &prefix) const
 Return a string representation of the function. More...
 
- Public Member Functions inherited from lsst::afw::math::Function2< ReturnT >
 Function2 (unsigned int nParams)
 Construct a Function2 given the number of function parameters. More...
 
 Function2 (std::vector< double > const &params)
 Construct a Function2 given the function parameters. More...
 
virtual ~Function2 ()
 
virtual std::vector< double > getDFuncDParameters (double, double) const
 
- Public Member Functions inherited from lsst::afw::math::Function< ReturnT >
 Function (unsigned int nParams)
 Construct a Function given the number of function parameters. More...
 
 Function (std::vector< double > const &params)
 Construct a Function given the function parameters. More...
 
virtual ~Function ()
 
unsigned int getNParameters () const
 Return the number of function parameters. More...
 
virtual double getParameter (unsigned int ind) const
 Get one function parameter without range checking. More...
 
std::vector< double > const & getParameters () const
 Return all function parameters. More...
 
virtual bool isLinearCombination () const
 Is the function a linear combination of its parameters? More...
 
void setParameter (unsigned int ind, double newValue)
 Set one function parameter without range checking. More...
 
void setParameters (std::vector< double > const &params)
 Set all function parameters. More...
 
- Public Member Functions inherited from lsst::daf::base::Citizen
 Citizen (const std::type_info &)
 
 Citizen (Citizen const &)
 
 ~Citizen ()
 
Citizenoperator= (Citizen const &)
 
std::string repr () const
 Return a string representation of a Citizen. More...
 
void markPersistent (void)
 Mark a Citizen as persistent and not destroyed until process end. More...
 
memId getId () const
 Return the Citizen's ID. More...
 
- Public Member Functions inherited from lsst::afw::table::io::Persistable
void writeFits (std::string const &fileName, std::string const &mode="w") const
 Write the object to a regular FITS file. More...
 
void writeFits (fits::MemFileManager &manager, std::string const &mode="w") const
 Write the object to a FITS image in memory. More...
 
void writeFits (fits::Fits &fitsfile) const
 Write the object to an already-open FITS object. More...
 
virtual bool isPersistable () const
 Return true if this particular object can be persisted using afw::table::io. More...
 
virtual ~Persistable ()
 

Protected Member Functions

 LanczosFunction2 ()
 
- Protected Member Functions inherited from lsst::afw::math::Function2< ReturnT >
 Function2 ()
 
- Protected Member Functions inherited from lsst::afw::math::Function< ReturnT >
virtual std::string getPythonModule () const
 Return the fully-qualified Python module that should be imported to guarantee that its factory is registered. More...
 
 Function ()
 
- Protected Member Functions inherited from lsst::afw::table::io::Persistable
virtual std::string getPersistenceName () const
 Return the unique name used to persist this object and look up its factory. More...
 
virtual void write (OutputArchiveHandle &handle) const
 Write the object to one or more catalogs. More...
 
 Persistable ()
 
 Persistable (Persistable const &other)
 
void operator= (Persistable const &other)
 

Private Member Functions

template<class Archive >
void serialize (Archive &ar, unsigned int const version)
 

Private Attributes

double _invN
 1/n More...
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Static Public Member Functions inherited from lsst::afw::table::io::PersistableFacade< Function2< ReturnT > >
static boost::shared_ptr
< Function2< ReturnT > > 
readFits (fits::Fits &fitsfile)
 Read an object from an already open FITS object. More...
 
static boost::shared_ptr
< Function2< ReturnT > > 
readFits (std::string const &fileName, int hdu=0)
 Read an object from a regular FITS file. More...
 
static boost::shared_ptr
< Function2< ReturnT > > 
readFits (fits::MemFileManager &manager, int hdu=0)
 Read an object from a FITS file in memory. More...
 
- Static Public Member Functions inherited from lsst::daf::base::Citizen
static bool hasBeenCorrupted ()
 Check all allocated blocks for corruption. More...
 
static memId getNextMemId ()
 Return the memId of the next object to be allocated. More...
 
static int init ()
 Called once when the memory system is being initialised. More...
 
static int census (int, memId startingMemId=0)
 How many active Citizens are there? More...
 
static void census (std::ostream &stream, memId startingMemId=0)
 Print a list of all active Citizens to stream, sorted by ID. More...
 
static const std::vector
< const Citizen * > * 
census ()
 Return a (newly allocated) std::vector of active Citizens sorted by ID. More...
 
static memId setNewCallbackId (memId id)
 Call the NewCallback when block is allocated. More...
 
static memId setDeleteCallbackId (memId id)
 Call the current DeleteCallback when block is deleted. More...
 
static memNewCallback setNewCallback (memNewCallback func)
 Set the NewCallback function. More...
 
static memCallback setDeleteCallback (memCallback func)
 Set the DeleteCallback function. More...
 
static memCallback setCorruptionCallback (memCallback func)
 Set the CorruptionCallback function. More...
 
- Static Public Member Functions inherited from lsst::afw::table::io::PersistableFacade< Function< ReturnT > >
static boost::shared_ptr
< Function< ReturnT > > 
readFits (fits::Fits &fitsfile)
 Read an object from an already open FITS object. More...
 
static boost::shared_ptr
< Function< ReturnT > > 
readFits (std::string const &fileName, int hdu=0)
 Read an object from a regular FITS file. More...
 
static boost::shared_ptr
< Function< ReturnT > > 
readFits (fits::MemFileManager &manager, int hdu=0)
 Read an object from a FITS file in memory. More...
 
- Protected Types inherited from lsst::afw::table::io::Persistable
typedef io::OutputArchiveHandle OutputArchiveHandle
 
- Protected Attributes inherited from lsst::afw::math::Function< ReturnT >
std::vector< double > _params
 
bool _isCacheValid
 

Detailed Description

template<typename ReturnT>
class lsst::afw::math::LanczosFunction2< ReturnT >

2-dimensional separable Lanczos function

f(x, y) = sinc(pi x') sinc(pi x' / n) sinc(pi y') sinc(pi y' / n) where x' = x - xOffset and y' = y - yOffset and coefficients c0 = xOffset, c1 = yOffset

Warning: the Lanczos function is sometimes forced to 0 if |x'| > n or |y'| > n but this implementation does not perform that truncation so as to improve Lanczos kernels.

Definition at line 1125 of file FunctionLibrary.h.

Member Typedef Documentation

template<typename ReturnT >
typedef Function2<ReturnT>::Ptr lsst::afw::math::LanczosFunction2< ReturnT >::Function2Ptr

Definition at line 1127 of file FunctionLibrary.h.

Constructor & Destructor Documentation

template<typename ReturnT >
lsst::afw::math::LanczosFunction2< ReturnT >::LanczosFunction2 ( unsigned int  n,
double  xOffset = 0.0,
double  yOffset = 0.0 
)
inlineexplicit

Construct a Lanczos function of specified order and x,y offset.

Parameters
norder of Lanczos function
xOffsetx offset
yOffsety offset

Definition at line 1132 of file FunctionLibrary.h.

1136  :
1137  Function2<ReturnT>(2),
1138  _invN(1.0 / static_cast<double>(n))
1139  {
1140  this->_params[0] = xOffset;
1141  this->_params[1] = yOffset;
1142  }
std::vector< double > _params
Definition: Function.h:204
template<typename ReturnT >
virtual lsst::afw::math::LanczosFunction2< ReturnT >::~LanczosFunction2 ( )
inlinevirtual

Definition at line 1144 of file FunctionLibrary.h.

1144 {}
template<typename ReturnT >
lsst::afw::math::LanczosFunction2< ReturnT >::LanczosFunction2 ( )
inlineexplicitprotected

Definition at line 1185 of file FunctionLibrary.h.

1185 : Function2<ReturnT>(2), _invN(1.0) {}

Member Function Documentation

template<typename ReturnT >
virtual Function2Ptr lsst::afw::math::LanczosFunction2< ReturnT >::clone ( ) const
inlinevirtual

Return a pointer to a deep copy of this function.

This function exists instead of a copy constructor so one can obtain a copy of an actual function instead of a useless copy of the base class.

Every non-virtual function must override this method.

Returns
a pointer to a deep copy of the function

Implements lsst::afw::math::Function2< ReturnT >.

Definition at line 1146 of file FunctionLibrary.h.

1146  {
1147  return Function2Ptr(new LanczosFunction2(this->getOrder(), this->_params[0], this->_params[1]));
1148  }
std::vector< double > _params
Definition: Function.h:204
Function2< ReturnT >::Ptr Function2Ptr
unsigned int getOrder() const
Get the order of Lanczos function.
template<typename ReturnT >
unsigned int lsst::afw::math::LanczosFunction2< ReturnT >::getOrder ( ) const
inline

Get the order of Lanczos function.

Definition at line 1169 of file FunctionLibrary.h.

1169  {
1170  return static_cast<unsigned int>(0.5 + (1.0 / _invN));
1171  };
template<typename ReturnT >
virtual ReturnT lsst::afw::math::LanczosFunction2< ReturnT >::operator() ( double  x,
double  y 
) const
inlinevirtual

Implements lsst::afw::math::Function2< ReturnT >.

Definition at line 1150 of file FunctionLibrary.h.

1150  {
1151  double xArg1 = (x - this->_params[0]) * lsst::afw::geom::PI;
1152  double xArg2 = xArg1 * _invN;
1153  double xFunc = 1;
1154  if (std::fabs(xArg1) > 1.0e-5) {
1155  xFunc = std::sin(xArg1) * std::sin(xArg2) / (xArg1 * xArg2);
1156  }
1157  double yArg1 = (y - this->_params[1]) * lsst::afw::geom::PI;
1158  double yArg2 = yArg1 * _invN;
1159  double yFunc = 1;
1160  if (std::fabs(yArg1) > 1.0e-5) {
1161  yFunc = std::sin(yArg1) * std::sin(yArg2) / (yArg1 * yArg2);
1162  }
1163  return static_cast<ReturnT>(xFunc * yFunc);
1164  }
int y
std::vector< double > _params
Definition: Function.h:204
double const PI
The ratio of a circle&#39;s circumference to diameter.
Definition: Angle.h:18
double x
template<typename ReturnT >
template<class Archive >
void lsst::afw::math::LanczosFunction2< ReturnT >::serialize ( Archive &  ar,
unsigned int const  version 
)
inlineprivate

Definition at line 1190 of file FunctionLibrary.h.

1190  {
1191  ar & make_nvp("fn2", boost::serialization::base_object<Function2<ReturnT> >(*this));
1192  ar & make_nvp("invN", this->_invN);
1193  }
template<typename ReturnT >
virtual std::string lsst::afw::math::LanczosFunction2< ReturnT >::toString ( std::string const &  ) const
inlinevirtual

Return a string representation of the function.

Returns
a string representation of the function

Reimplemented from lsst::afw::math::Function2< ReturnT >.

Definition at line 1173 of file FunctionLibrary.h.

1173  {
1174  std::ostringstream os;
1175  os << "LanczosFunction2 [" << this->getOrder() << "]: ";;
1176  os << Function2<ReturnT>::toString(prefix);
1177  return os.str();
1178  }
unsigned int getOrder() const
Get the order of Lanczos function.

Friends And Related Function Documentation

template<typename ReturnT >
friend class boost::serialization::access
friend

Definition at line 1188 of file FunctionLibrary.h.

Member Data Documentation

template<typename ReturnT >
double lsst::afw::math::LanczosFunction2< ReturnT >::_invN
private

1/n

Definition at line 1181 of file FunctionLibrary.h.


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