|
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 Basis2d formed from the product of a Basis1d for each of x and y, truncated at the sum of their orders. More...
#include <PackedBasis2d.h>
Public Types | |
| using | Function = Function2d<PackedBasis2d> |
| A Function2d object that uses this basis. | |
| using | Scaled = ScaledBasis2d<PackedBasis2d> |
| The type returned by scale(). | |
| using | Workspace = PackedBasisWorkspace2d |
| The type returned by makeWorkspace(). | |
| using | IndexRange = PackedIndexRange<packing> |
| The type returned by getIndices(). | |
Public Member Functions | |
| PackedBasis2d (Basis1d const &basis1d) | |
| Construct from a 1-d basis that will be used for both x and y. | |
| template<typename ... Args> | |
| PackedBasis2d (Args &&...args) | |
| Construct by forwarding all arguments to the 1-d basis constructor. | |
| PackedBasis2d (PackedBasis2d const &)=default | |
| Default copy constructor. | |
| PackedBasis2d (PackedBasis2d &&)=default | |
| Default move constructor. | |
| PackedBasis2d & | operator= (PackedBasis2d const &)=default |
| Default copy assignment. | |
| PackedBasis2d & | operator= (PackedBasis2d &&)=default |
| Default move assignment. | |
| std::size_t | getOrder () const noexcept |
| Return the maximum order of the basis. | |
| std::size_t | size () const noexcept |
| Return the number of basis functions. | |
| Scaled | scaled (Scaling2d const &first) const |
Return a scaled basis that delegates to a copy of this. | |
| std::size_t | index (std::size_t x, std::size_t y) const |
| Return the flattened index of the basis function with the given x and y orders. | |
| IndexRange | getIndices () const noexcept |
| Return a range of iterators that dereference to Index2d. | |
| Workspace | makeWorkspace () const |
| Allocate a workspace that can be passed to sumWith() and fill() to avoid repeated memory allocations. | |
| template<typename Vector> | |
| double | sumWith (geom::Point2D const &point, Vector const &coefficients, Workspace &workspace, SumMode mode=SumMode::FAST) const |
| Evaluate a basis expansion with the given coefficients. | |
| template<typename Vector> | |
| double | sumWith (geom::Point2D const &point, Vector const &coefficients, SumMode mode=SumMode::FAST) const |
| Evaluate a basis expansion with the given coefficients (internal workspace version). | |
| template<typename Vector> | |
| void | fill (geom::Point2D const &point, Vector &&basis, Workspace &workspace) const |
| Evaluate the basis at a given point. | |
| template<typename Vector> | |
| void | fill (geom::Point2D const &point, Vector &&basis) const |
| Evaluate the basis at a given point (internal workspace version). | |
Static Public Member Functions | |
| static constexpr std::size_t | computeSize (std::size_t order) |
| Return the size of a PackedBasis with the given order. | |
A Basis2d formed from the product of a Basis1d for each of x and y, truncated at the sum of their orders.
If \(B_n(x)\) are the basis functions for the nested Basis1d, the basis functions of a PackedBasis2d with order \(N\) are \(B_m(x)B_n(y)\) for all combinations with \(m + n \le N\).
The ordering of the products of 1-d basis functions in this 2-d basis is defined by the PackedIndexRange class, which is accessible as the PackedBasis2d::IndexRange. Note that while PackedBasis2d uses this ordering, Basis2d objects in general are not required to.
Definition at line 75 of file PackedBasis2d.h.
| using lsst::geom::polynomials::PackedBasis2d< Basis1d, packing >::Function = Function2d<PackedBasis2d> |
A Function2d object that uses this basis.
Definition at line 79 of file PackedBasis2d.h.
| using lsst::geom::polynomials::PackedBasis2d< Basis1d, packing >::IndexRange = PackedIndexRange<packing> |
The type returned by getIndices().
Definition at line 88 of file PackedBasis2d.h.
| using lsst::geom::polynomials::PackedBasis2d< Basis1d, packing >::Scaled = ScaledBasis2d<PackedBasis2d> |
The type returned by scale().
Definition at line 82 of file PackedBasis2d.h.
| using lsst::geom::polynomials::PackedBasis2d< Basis1d, packing >::Workspace = PackedBasisWorkspace2d |
The type returned by makeWorkspace().
Definition at line 85 of file PackedBasis2d.h.
|
inlineexplicit |
Construct from a 1-d basis that will be used for both x and y.
Definition at line 94 of file PackedBasis2d.h.
|
inlineexplicit |
Construct by forwarding all arguments to the 1-d basis constructor.
Definition at line 98 of file PackedBasis2d.h.
|
default |
Default copy constructor.
|
default |
Default move constructor.
|
inlinestaticconstexpr |
Return the size of a PackedBasis with the given order.
Definition at line 91 of file PackedBasis2d.h.
|
inline |
Evaluate the basis at a given point (internal workspace version).
Definition at line 239 of file PackedBasis2d.h.
|
inline |
Evaluate the basis at a given point.
| [in] | point | Point at which to evaluate the basis functions. |
| [out] | basis | Flattened output vector. See Basis1d::fill more information. |
| [in] | workspace | Workspace object returned by makeWorkspace(). |
coefficients[n] does, and provides basic exception safety if it does. Definition at line 228 of file PackedBasis2d.h.
|
inlinenoexcept |
Return a range of iterators that dereference to Index2d.
This is the recommended way to interpret the packed coefficients and basis functions utilized by PackedBasis2d; for example,
See PackedIndexIterator for documentation of the actual order.
Definition at line 155 of file PackedBasis2d.h.
|
inlinenoexcept |
Return the maximum order of the basis.
Definition at line 113 of file PackedBasis2d.h.
|
inline |
Return the flattened index of the basis function with the given x and y orders.
Definition at line 129 of file PackedBasis2d.h.
|
inline |
Allocate a workspace that can be passed to sumWith() and fill() to avoid repeated memory allocations.
Definition at line 160 of file PackedBasis2d.h.
|
default |
Default move assignment.
|
default |
Default copy assignment.
|
inline |
Return a scaled basis that delegates to a copy of this.
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 124 of file PackedBasis2d.h.
|
inlinenoexcept |
|
inline |
Evaluate a basis expansion with the given coefficients (internal workspace version).
Definition at line 210 of file PackedBasis2d.h.
|
inline |
Evaluate a basis expansion with the given coefficients.
If the 1-d basis elements are \(B_n(x)\) and the given coefficients are a vector \(a_{p, q}\), this computes
\[ \sum_{p = 0, q = 0}^{p + q \le N} a_{p,q} B_{p}(x) B_{q}(y) \]
| [in] | point | Point at which to evaluate the expansion. |
| [in] | coefficients | Flattened coefficients vector. See Basis1d::sumWith for more information. |
| [in] | workspace | Workspace object returned by makeWorkspace(). |
| [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 182 of file PackedBasis2d.h.