LSST Applications  21.0.0-147-g0e635eb1+1acddb5be5,22.0.0+052faf71bd,22.0.0+1ea9a8b2b2,22.0.0+6312710a6c,22.0.0+729191ecac,22.0.0+7589c3a021,22.0.0+9f079a9461,22.0.1-1-g7d6de66+b8044ec9de,22.0.1-1-g87000a6+536b1ee016,22.0.1-1-g8e32f31+6312710a6c,22.0.1-10-gd060f87+016f7cdc03,22.0.1-12-g9c3108e+df145f6f68,22.0.1-16-g314fa6d+c825727ab8,22.0.1-19-g93a5c75+d23f2fb6d8,22.0.1-19-gb93eaa13+aab3ef7709,22.0.1-2-g8ef0a89+b8044ec9de,22.0.1-2-g92698f7+9f079a9461,22.0.1-2-ga9b0f51+052faf71bd,22.0.1-2-gac51dbf+052faf71bd,22.0.1-2-gb66926d+6312710a6c,22.0.1-2-gcb770ba+09e3807989,22.0.1-20-g32debb5+b8044ec9de,22.0.1-23-gc2439a9a+fb0756638e,22.0.1-3-g496fd5d+09117f784f,22.0.1-3-g59f966b+1e6ba2c031,22.0.1-3-g849a1b8+f8b568069f,22.0.1-3-gaaec9c0+c5c846a8b1,22.0.1-32-g5ddfab5d3+60ce4897b0,22.0.1-4-g037fbe1+64e601228d,22.0.1-4-g8623105+b8044ec9de,22.0.1-5-g096abc9+d18c45d440,22.0.1-5-g15c806e+57f5c03693,22.0.1-7-gba73697+57f5c03693,master-g6e05de7fdc+c1283a92b8,master-g72cdda8301+729191ecac,w.2021.39
LSST Data Management Base Package
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
lsst::afw::math::Interpolate Class Referenceabstract

#include <Interpolate.h>

Inheritance diagram for lsst::afw::math::Interpolate:
lsst::afw::math::InterpolateConstant lsst::afw::math::InterpolateGsl

Public Types

enum  Style {
  UNKNOWN = -1 , CONSTANT = 0 , LINEAR = 1 , NATURAL_SPLINE = 2 ,
  CUBIC_SPLINE = 3 , CUBIC_SPLINE_PERIODIC = 4 , AKIMA_SPLINE = 5 , AKIMA_SPLINE_PERIODIC = 6 ,
  NUM_STYLES
}
 

Public Member Functions

 Interpolate (Interpolate const &)=delete
 
 Interpolate (Interpolate &&)=delete
 
Interpolateoperator= (Interpolate const &)=delete
 
Interpolateoperator= (Interpolate &&)=delete
 
virtual ~Interpolate ()=default
 
virtual double interpolate (double const x) const =0
 
std::vector< double > interpolate (std::vector< double > const &x) const
 
ndarray::Array< double, 1 > interpolate (ndarray::Array< double const, 1 > const &x) const
 

Protected Member Functions

 Interpolate (std::vector< double > const &x, std::vector< double > const &y, Interpolate::Style const style=UNKNOWN)
 Base class ctor. More...
 
 Interpolate (std::pair< std::vector< double >, std::vector< double > > const xy, Interpolate::Style const style=UNKNOWN)
 Base class ctor. More...
 

Protected Attributes

std::vector< double > const _x
 
std::vector< double > const _y
 
Interpolate::Style const _style
 

Friends

std::shared_ptr< InterpolatemakeInterpolate (std::vector< double > const &x, std::vector< double > const &y, Interpolate::Style const style)
 A factory function to make Interpolate objects. More...
 

Detailed Description

Definition at line 36 of file Interpolate.h.

Member Enumeration Documentation

◆ Style

Enumerator
UNKNOWN 
CONSTANT 
LINEAR 
NATURAL_SPLINE 
CUBIC_SPLINE 
CUBIC_SPLINE_PERIODIC 
AKIMA_SPLINE 
AKIMA_SPLINE_PERIODIC 
NUM_STYLES 

Definition at line 38 of file Interpolate.h.

Constructor & Destructor Documentation

◆ Interpolate() [1/4]

lsst::afw::math::Interpolate::Interpolate ( Interpolate const &  )
delete

◆ Interpolate() [2/4]

lsst::afw::math::Interpolate::Interpolate ( Interpolate &&  )
delete

◆ ~Interpolate()

virtual lsst::afw::math::Interpolate::~Interpolate ( )
virtualdefault

◆ Interpolate() [3/4]

lsst::afw::math::Interpolate::Interpolate ( std::vector< double > const &  x,
std::vector< double > const &  y,
Interpolate::Style const  style = UNKNOWN 
)
inlineprotected

Base class ctor.

Parameters
xthe ordinates of points
ythe values at x[]
styledesired interpolator

Definition at line 67 of file Interpolate.h.

71  : _x(x), _y(y), _style(style) {}
double x
int y
Definition: SpanSet.cc:48
std::vector< double > const _x
Definition: Interpolate.h:83
std::vector< double > const _y
Definition: Interpolate.h:84
Interpolate::Style const _style
Definition: Interpolate.h:85

◆ Interpolate() [4/4]

lsst::afw::math::Interpolate::Interpolate ( std::pair< std::vector< double >, std::vector< double > > const  xy,
Interpolate::Style const  style = UNKNOWN 
)
protected

Base class ctor.

Note that we should use rvalue references when available as the vectors in xy will typically be movable (although the returned-value-optimisation might suffice for the cases we care about)

Parameters
xypair (x,y) where x are the ordinates of points and y are the values at x[]
styledesired interpolator

Definition at line 335 of file Interpolate.cc.

338  : _x(xy.first), _y(xy.second), _style(style) {
339  ;
340 }

Member Function Documentation

◆ interpolate() [1/3]

virtual double lsst::afw::math::Interpolate::interpolate ( double const  x) const
pure virtual

◆ interpolate() [2/3]

ndarray::Array< double, 1 > lsst::afw::math::Interpolate::interpolate ( ndarray::Array< double const, 1 > const &  x) const

Definition at line 303 of file Interpolate.cc.

303  {
304  int const num = x.getShape()[0];
305  ndarray::Array<double, 1> out = ndarray::allocate(ndarray::makeVector(num));
306  for (int i = 0; i < num; ++i) {
307  std::cout << "Interpolating " << x[i] << std::endl;
308  out[i] = interpolate(x[i]);
309  }
310  return out;
311 }
virtual double interpolate(double const x) const =0
T endl(T... args)

◆ interpolate() [3/3]

std::vector< double > lsst::afw::math::Interpolate::interpolate ( std::vector< double > const &  x) const

Definition at line 294 of file Interpolate.cc.

294  {
295  size_t const num = x.size();
296  std::vector<double> out(num);
297  for (size_t i = 0; i < num; ++i) {
298  out[i] = interpolate(x[i]);
299  }
300  return out;
301 }

◆ operator=() [1/2]

Interpolate& lsst::afw::math::Interpolate::operator= ( Interpolate &&  )
delete

◆ operator=() [2/2]

Interpolate& lsst::afw::math::Interpolate::operator= ( Interpolate const &  )
delete

Friends And Related Function Documentation

◆ makeInterpolate

std::shared_ptr<Interpolate> makeInterpolate ( std::vector< double > const &  x,
std::vector< double > const &  y,
Interpolate::Style const  style = Interpolate::AKIMA_SPLINE 
)
friend

A factory function to make Interpolate objects.

Parameters
xthe x-values of points
ythe values at x[]
styledesired interpolator

Definition at line 342 of file Interpolate.cc.

343  {
344  switch (style) {
346  return std::shared_ptr<Interpolate>(new InterpolateConstant(x, y, style));
347  default: // use GSL
348  return std::shared_ptr<Interpolate>(new InterpolateGsl(x, y, style));
349  }
350 }

Member Data Documentation

◆ _style

Interpolate::Style const lsst::afw::math::Interpolate::_style
protected

Definition at line 85 of file Interpolate.h.

◆ _x

std::vector<double> const lsst::afw::math::Interpolate::_x
protected

Definition at line 83 of file Interpolate.h.

◆ _y

std::vector<double> const lsst::afw::math::Interpolate::_y
protected

Definition at line 84 of file Interpolate.h.


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