LSSTApplications
20.0.0
LSSTDataManagementBasePackage
|
Go to the documentation of this file.
22 #ifndef LSST_AFW_MATH_POLYNOMIALS_RecurrenceBasis1d_h_INCLUDED
23 #define LSST_AFW_MATH_POLYNOMIALS_RecurrenceBasis1d_h_INCLUDED
28 namespace lsst {
namespace geom {
namespace polynomials {
30 template <
typename Basis>
84 template <
typename Recurrence>
145 template <
typename Vector>
171 result =
static_cast<double>(
z);
186 template <
typename Vector>
194 std::forward<Vector>(
basis)[n - 1],
195 std::forward<Vector>(
basis)[n - 2]
207 #endif // !LSST_AFW_MATH_POLYNOMIALS_RecurrenceBasis1d_h_INCLUDED
std::size_t size() const noexcept
Return the number of elements in the basis.
static double getB1(double x)
Return the first element of the basis, .
RecurrenceBasis1d(std::size_t order) noexcept
Construct a basis with the given order (inclusive).
ndarray::Array< double const, 2, 2 > coefficients
static double next(double x, std::size_t n, double current, double previous)
Return the next element in the recurrence.
A 1-d affine transform that can be used to map one interval to another.
RecurrenceBasis1d & operator=(RecurrenceBasis1d const &)=default
Default copy assignment.
RecurrenceBasis1d & operator=(RecurrenceBasis1d &&)=default
Default move assignment.
Scaled scaled(Scaling1d const &scaling) const noexcept
Return a scaled basis with the same order and recurrence.
A 1-d basis that transforms all input points before evaluating nested basis.
A recurrence relation concept for RecurrenceBasis1d.
SumMode
Enum used to control how to sum polynomial terms.
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > Vector
table::Key< table::Array< double > > basis
ScaledBasis1d< RecurrenceBasis1d > Scaled
The type returned by scale().
A 1-d function defined by a series expansion and its coefficients.
RecurrenceBasis1d(RecurrenceBasis1d const &)=default
Default copy constructor.
A base class for image defects.
std::size_t getOrder() const noexcept
Return the order of the basis.
RecurrenceBasis1d(RecurrenceBasis1d &&)=default
Default move constructor.
void fill(double x, Vector &&basis) const
Evaluate the basis at a given point.
A numerically stable summation algorithm for floating-point numbers.
table::Key< double > scaling
static double getB0(double x)
Return the zeroth element of the basis, .
@ FAST
Summation using regular floating-point addition.
A basis for 1-d series expansions defined by a recurrence relation.
double sumWith(double x, Vector const &coefficients, SumMode mode=SumMode::FAST) const
Evaluate a basis expansion with the given coefficients.