24#ifndef LSST_AFW_MATH_ProductBoundedField_h_INCLUDED
25#define LSST_AFW_MATH_ProductBoundedField_h_INCLUDED
62 ndarray::Array<double, 1, 1>
evaluate(ndarray::Array<double const, 1>
const& x,
63 ndarray::Array<double const, 1>
const& y)
const override;
74 std::shared_ptr<
BoundedField> operator*(
double const scale) const override;
BoundedField(BoundedField const &)=default
virtual double evaluate(lsst::geom::Point2D const &position) const =0
Evaluate the field at the given point.
ProductBoundedField(std::vector< std::shared_ptr< BoundedField const > > const &factors)
Construct from a sequence of BoundedField factors.
std::string toString() const override
bool isPersistable() const noexcept override
ProductBoundedField is persistable if and only if all of its factors are.
ProductBoundedField & operator=(ProductBoundedField const &)=delete
ProductBoundedField(ProductBoundedField const &)
void write(OutputArchiveHandle &handle) const override
Write the object to one or more catalogs.
ProductBoundedField & operator=(ProductBoundedField &&)=delete
ProductBoundedField(ProductBoundedField &&)
std::string getPersistenceName() const override
Return the unique name used to persist this object and look up its factory.
double evaluate(lsst::geom::Point2D const &position) const override
Evaluate the field at the given point.
~ProductBoundedField() override
std::string getPythonModule() const override
Return the fully-qualified Python module that should be imported to guarantee that its factory is reg...
A CRTP facade class for subclasses of Persistable.
io::OutputArchiveHandle OutputArchiveHandle
Point< double, 2 > Point2D