|
LSST Applications g00d0e8bbd7+8c5ae1fdc5,g013ef56533+603670b062,g083dd6704c+2e189452a7,g199a45376c+0ba108daf9,g1c5cce2383+bc9f6103a4,g1fd858c14a+cd69ed4fc1,g210f2d0738+c4742f2e9e,g262e1987ae+612fa42d85,g29ae962dfc+83d129e820,g2cef7863aa+aef1011c0b,g35bb328faa+8c5ae1fdc5,g3fd5ace14f+5eaa884f2a,g47891489e3+e32160a944,g53246c7159+8c5ae1fdc5,g5b326b94bb+dcc56af22d,g64539dfbff+c4742f2e9e,g67b6fd64d1+e32160a944,g74acd417e5+c122e1277d,g786e29fd12+668abc6043,g87389fa792+8856018cbb,g88cb488625+47d24e4084,g89139ef638+e32160a944,g8d7436a09f+d14b4ff40a,g8ea07a8fe4+b212507b11,g90f42f885a+e1755607f3,g97be763408+34be90ab8c,g98df359435+ec1fa61bf1,ga2180abaac+8c5ae1fdc5,ga9e74d7ce9+43ac651df0,gbf99507273+8c5ae1fdc5,gc2a301910b+c4742f2e9e,gca7fc764a6+e32160a944,gd7ef33dd92+e32160a944,gdab6d2f7ff+c122e1277d,gdb1e2cdc75+1b18322db8,ge410e46f29+e32160a944,ge41e95a9f2+c4742f2e9e,geaed405ab2+0d91c11c6d,w.2025.44
LSST Data Management Base Package
|
A basis for 1-d series expansions defined by a recurrence relation. More...
#include <RecurrenceBasis1d.h>
Public Types | |
| using | Function = Function1d<RecurrenceBasis1d> |
| A Function1d object that uses this basis. | |
| using | Scaled = ScaledBasis1d<RecurrenceBasis1d> |
| The type returned by scale(). | |
Public Member Functions | |
| RecurrenceBasis1d (std::size_t order) noexcept | |
| Construct a basis with the given order (inclusive). | |
| RecurrenceBasis1d (RecurrenceBasis1d const &)=default | |
| Default copy constructor. | |
| RecurrenceBasis1d (RecurrenceBasis1d &&)=default | |
| Default move constructor. | |
| RecurrenceBasis1d & | operator= (RecurrenceBasis1d const &)=default |
| Default copy assignment. | |
| RecurrenceBasis1d & | operator= (RecurrenceBasis1d &&)=default |
| Default move assignment. | |
| std::size_t | getOrder () const noexcept |
| Return the order of the basis. | |
| std::size_t | size () const noexcept |
| Return the number of elements in the basis. | |
| Scaled | scaled (Scaling1d const &scaling) const noexcept |
| Return a scaled basis with the same order and recurrence. | |
| template<typename Vector> | |
| double | sumWith (double x, Vector const &coefficients, SumMode mode=SumMode::FAST) const |
| Evaluate a basis expansion with the given coefficients. | |
| template<typename Vector> | |
| void | fill (double x, Vector &&basis) const |
| Evaluate the basis at a given point. | |
A basis for 1-d series expansions defined by a recurrence relation.
The recurrence relations utilized by RecurrenceBasis1d must have the following form:
\[ B_{n+1}(x) = R(x, n, B_n(x), B_{n-1}(x)) \]
with explicit expressions for \(B_0(x)\) and \(B_1(x)\) also given. This includes all special polynomials (e.g. Chebyshev, Legendre, Hermite, Laguerre) and products of special polynomials with their natural weight functions (e.g. Gauss-Hermite functions). The template parameter must be a model of the Recurrence concept.
RecurrenceBasis1d is a model of the Basis1d concept.
Definition at line 85 of file RecurrenceBasis1d.h.
| using lsst::geom::polynomials::RecurrenceBasis1d< Recurrence >::Function = Function1d<RecurrenceBasis1d> |
A Function1d object that uses this basis.
Definition at line 89 of file RecurrenceBasis1d.h.
| using lsst::geom::polynomials::RecurrenceBasis1d< Recurrence >::Scaled = ScaledBasis1d<RecurrenceBasis1d> |
The type returned by scale().
Definition at line 92 of file RecurrenceBasis1d.h.
|
inlineexplicitnoexcept |
Construct a basis with the given order (inclusive).
Definition at line 95 of file RecurrenceBasis1d.h.
|
default |
Default copy constructor.
|
default |
Default move constructor.
|
inline |
Evaluate the basis at a given point.
| [in] | x | Point at which to evaluate the basis functions. |
| [out] | basis | Output vector. See Basis1d::fill more information. |
coefficients[n] does, and provides basic exception safety if it does. Definition at line 187 of file RecurrenceBasis1d.h.
|
inlinenoexcept |
Return the order of the basis.
Definition at line 112 of file RecurrenceBasis1d.h.
|
default |
Default move assignment.
|
default |
Default copy assignment.
|
inlinenoexcept |
Return a scaled basis with the same order and recurrence.
The scaled basis will transform all points by the given scaling before evaluating the basis functions in the same way as this.
Definition at line 123 of file RecurrenceBasis1d.h.
|
inlinenoexcept |
Return the number of elements in the basis.
Definition at line 115 of file RecurrenceBasis1d.h.
|
inline |
Evaluate a basis expansion with the given coefficients.
If the basis elements are \(B_n(x)\) and the given coefficients are a vector \(a_n\), this computes
\[ \sum_{n = 0}^{n \le N} a_n B_n(x) \]
| [in] | x | Point at which to evaluate the expansion. |
| [in] | coefficients | Coefficients vector. See Basis1d::sumWith for more information. |
| [in] | mode | Enum indicating the tradeoff to make between speed and numerical precision. |
coefficients[n] does, and provides the same exception safety as it if it does. Definition at line 146 of file RecurrenceBasis1d.h.