LSST Applications g063fba187b+eddd1b24d7,g0f08755f38+4a855ab515,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g1a2382251a+062a45aee3,g1dcb35cd9c+45d3fa5522,g20f6ffc8e0+4a855ab515,g217e2c1bcf+f55e51b560,g28da252d5a+7d8e536cc7,g2bbee38e9b+2d92fc7d83,g2bc492864f+2d92fc7d83,g3156d2b45e+6e55a43351,g32e5bea42b+625186cc6b,g347aa1857d+2d92fc7d83,g35bb328faa+a8ce1bb630,g3a166c0a6a+2d92fc7d83,g3e281a1b8c+c5dd892a6c,g3e8969e208+a8ce1bb630,g414038480c+5927e1bc1e,g41af890bb2+1af189bab1,g7af13505b9+7b6a50a2f8,g80478fca09+6174b7f182,g82479be7b0+5b71efbaf0,g858d7b2824+4a855ab515,g9125e01d80+a8ce1bb630,ga5288a1d22+61618a97c4,gb58c049af0+d64f4d3760,gc28159a63d+2d92fc7d83,gc5452a3dca+f4add4ffd5,gcab2d0539d+d9f5af7f69,gcf0d15dbbd+6c7e0a19ec,gda6a2b7d83+6c7e0a19ec,gdaeeff99f8+1711a396fd,ge79ae78c31+2d92fc7d83,gef2f8181fd+55fff6f525,gf0baf85859+c1f95f4921,gfa517265be+4a855ab515,gfa999e8aa5+17cd334064,w.2024.51
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
lsst::geom::polynomials::Basis2d< Basis1d > Class Template Reference

A basis interface for 2-d series expansions. More...

#include <Basis2d.h>

Public Types

using Function = ...
 A Function2d object that uses this basis.
 
using Scaled = ...
 The type returned by scale().
 
using Workspace = ...
 The type returned by makeWorkspace().
 

Public Member Functions

std::size_t getOrder () const
 Return the maximum order of the basis.
 
std::size_t size () const
 Return the number of basis functions.
 
Scaled scaled (Scaling2d const &first) const
 Return a scaled basis that delegates to a copy of this.
 
Workspace makeWorkspace () const
 Allocate 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) const
 Evaluate a basis expansion with the given coefficients.
 
template<typename Vector >
double sumWith (geom::Point2D const &point, Vector const &coefficients, Workspace &workspace) const
 Evaluate a basis expansion with the given coefficients (external workspace version).
 
template<typename Vector >
void fill (geom::Point2D const &point, Vector &&basis) const
 Evaluate the basis at a given point.
 
template<typename Vector >
void fill (geom::Point2D const &point, Vector &&basis, Workspace &workspace) const
 Evaluate the basis at a given point (external workspace version).
 

Detailed Description

template<typename Basis1d>
class lsst::geom::polynomials::Basis2d< Basis1d >

A basis interface for 2-d series expansions.

Note
This class is only present in the documentation, as it represents an abstract interface for which C++ (prior to C++20, at least) has no language support. It may be formalized into a true Concept when that language feature is available.

Definition at line 37 of file Basis2d.h.

Member Typedef Documentation

◆ Function

template<typename Basis1d >
using lsst::geom::polynomials::Basis2d< Basis1d >::Function = ...

A Function2d object that uses this basis.

Definition at line 41 of file Basis2d.h.

◆ Scaled

template<typename Basis1d >
using lsst::geom::polynomials::Basis2d< Basis1d >::Scaled = ...

The type returned by scale().

Definition at line 44 of file Basis2d.h.

◆ Workspace

template<typename Basis1d >
using lsst::geom::polynomials::Basis2d< Basis1d >::Workspace = ...

The type returned by makeWorkspace().

Definition at line 47 of file Basis2d.h.

Member Function Documentation

◆ fill() [1/2]

template<typename Basis1d >
template<typename Vector >
void lsst::geom::polynomials::Basis2d< Basis1d >::fill ( geom::Point2D const & point,
Vector && basis ) const

Evaluate the basis at a given point.

Parameters
[in]pointPoint at which to evaluate the basis functions.
[out]basisFlattened output vector. See Basis1d::fill more information.

◆ fill() [2/2]

template<typename Basis1d >
template<typename Vector >
void lsst::geom::polynomials::Basis2d< Basis1d >::fill ( geom::Point2D const & point,
Vector && basis,
Workspace & workspace ) const

Evaluate the basis at a given point (external workspace version).

◆ getOrder()

template<typename Basis1d >
std::size_t lsst::geom::polynomials::Basis2d< Basis1d >::getOrder ( ) const

Return the maximum order of the basis.

◆ makeWorkspace()

template<typename Basis1d >
Workspace lsst::geom::polynomials::Basis2d< Basis1d >::makeWorkspace ( ) const

Allocate workspace that can be passed to sumWith() and fill() to avoid repeated memory allocations.

◆ scaled()

template<typename Basis1d >
Scaled lsst::geom::polynomials::Basis2d< Basis1d >::scaled ( Scaling2d const & first) const

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.

◆ size()

template<typename Basis1d >
std::size_t lsst::geom::polynomials::Basis2d< Basis1d >::size ( ) const

Return the number of basis functions.

◆ sumWith() [1/2]

template<typename Basis1d >
template<typename Vector >
double lsst::geom::polynomials::Basis2d< Basis1d >::sumWith ( geom::Point2D const & point,
Vector const & coefficients ) const

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) \]

Parameters
[in]pointPoint at which to evaluate the expansion.
[in]coefficientsFlattened coefficients vector. See Basis1d::sumWith for more information.

◆ sumWith() [2/2]

template<typename Basis1d >
template<typename Vector >
double lsst::geom::polynomials::Basis2d< Basis1d >::sumWith ( geom::Point2D const & point,
Vector const & coefficients,
Workspace & workspace ) const

Evaluate a basis expansion with the given coefficients (external workspace version).


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