23 #ifndef AFW_TABLE_aggregates_h_INCLUDED 
   24 #define AFW_TABLE_aggregates_h_INCLUDED 
  104     bool isValid() const noexcept { 
return _x.isValid() && _y.isValid(); }
 
  125 template <
typename Box>
 
  179     void set(
BaseRecord& record, Box 
const& value) 
const override;
 
  182     bool operator==(
BoxKey const& other) 
const noexcept { 
return _min == other._min && _max == other._max; }
 
  227             : _ra(ra), _dec(
dec) {}
 
  252     bool operator==(
CoordKey const& other) const noexcept { 
return _ra == other._ra && _dec == other._dec; }
 
  303             : _ixx(ixx), _iyy(iyy), _ixy(ixy) {}
 
  325     void set(
BaseRecord& record, 
geom::ellipses::Quadrupole const& value) const override;
 
  330         return _ixx == other._ixx && _iyy == other._iyy && _ixy == other._ixy;
 
  401     void set(
BaseRecord& record, 
geom::ellipses::Ellipse const& value) const override;
 
  404     bool operator==(
EllipseKey const& other) const noexcept {
 
  406         return _qKey == other._qKey && _pKey == other._pKey;
 
  431 template <
typename T, 
int N>
 
  452                                          std::string const& unit, 
bool diagonalOnly = 
false);
 
  469                                          NameArray const& units, 
bool diagonalOnly = 
false);
 
  552 template <
typename T>
 
  559 template <
typename T>
 
  587 template <
typename T, 
int N>
 
  588 struct hash<
lsst::afw::table::CovarianceMatrixKey<T, N>> {
 
table::Key< std::string > name
 
Base class for all records.
 
A FunctorKey used to get or set a lsst::geom::Box2I or Box2D from a (min, max) pair of PointKeys.
 
BoxKey(BoxKey const &) noexcept=default
 
bool operator!=(BoxKey const &other) const noexcept
 
bool isValid() const noexcept
Return True if both the min and max PointKeys are valid.
 
std::size_t hash_value() const noexcept
Return a hash of this object.
 
Box get(BaseRecord const &record) const override
Get a Box from the given record.
 
static BoxKey addFields(Schema &schema, std::string const &name, std::string const &doc, std::string const &unit)
Add _min_x, _min_y, _max_x, _max_y fields to a Schema, and return a BoxKey that points to them.
 
PointKey< Element > getMin() const noexcept
Return the underlying min PointKey.
 
typename Box::Element Element
Type of coordinate elements (i.e. int or double).
 
BoxKey() noexcept=default
Default constructor; instance will not be usable unless subsequently assigned to.
 
bool operator==(BoxKey const &other) const noexcept
Compare the FunctorKey for equality with another, using the underlying x and y Keys.
 
void set(BaseRecord &record, Box const &value) const override
Set a Box in the given record.
 
BoxKey(BoxKey &&) noexcept=default
 
PointKey< Element > getMax() const noexcept
Return the underlying max PointKey.
 
BoxKey(SubSchema const &s)
Construct from a subschema, assuming _min_x, _max_x, _min_y, _max_y subfields.
 
A FunctorKey used to get or set celestial coordinates from a pair of lsst::geom::Angle keys.
 
bool operator!=(CoordKey const &other) const noexcept
 
CoordKey(Key< lsst::geom::Angle > const &ra, Key< lsst::geom::Angle > const &dec) noexcept
Construct from a pair of Keys.
 
static CoordKey addFields(afw::table::Schema &schema, std::string const &name, std::string const &doc)
Add a pair of _ra, _dec fields to a Schema, and return a CoordKey that points to them.
 
CoordKey(SubSchema const &s)
Construct from a subschema, assuming ra and dec subfields.
 
CoordKey() noexcept
Default constructor; instance will not be usable unless subsequently assigned to.
 
void set(BaseRecord &record, lsst::geom::SpherePoint const &value) const override
Set an lsst::geom::SpherePoint in the given record.
 
Key< lsst::geom::Angle > getDec() const noexcept
 
std::size_t hash_value() const noexcept
Return a hash of this object.
 
Key< lsst::geom::Angle > getRa() const noexcept
Return a constituent Key.
 
CoordKey(CoordKey &&) noexcept=default
 
bool isValid() const noexcept
 
CoordKey(CoordKey const &) noexcept=default
 
lsst::geom::SpherePoint get(BaseRecord const &record) const override
Get an lsst::geom::SpherePoint from the given record.
 
CovarianceMatrixKey()
Construct an invalid instance; must assign before subsequent use.
 
CovarianceMatrixKey(CovarianceMatrixKey const &)
 
Eigen::Matrix< T, N, N > get(BaseRecord const &record) const override
Get a covariance matrix from the given record.
 
void setElement(BaseRecord &record, int i, int j, T value) const
Set the element in row i and column j.
 
CovarianceMatrixKey & operator=(CovarianceMatrixKey &&)
 
T getElement(BaseRecord const &record, int i, int j) const
Return the element in row i and column j.
 
void set(BaseRecord &record, Eigen::Matrix< T, N, N > const &value) const override
Set a covariance matrix in the given record (uses only the lower triangle of the given matrix)
 
~CovarianceMatrixKey() noexcept override
 
CovarianceMatrixKey(CovarianceMatrixKey &&)
 
static CovarianceMatrixKey addFields(Schema &schema, std::string const &prefix, NameArray const &names, std::string const &unit, bool diagonalOnly=false)
Add covariance matrix fields to a Schema, and return a CovarianceMatrixKey to manage them.
 
std::vector< Key< T > > ErrKeyArray
 
std::size_t hash_value() const noexcept
Return a hash of this object.
 
std::vector< Key< T > > CovarianceKeyArray
 
bool isValid() const noexcept
Return True if all the constituent error Keys are valid.
 
CovarianceMatrixKey & operator=(CovarianceMatrixKey const &)
 
A FunctorKey used to get or set a geom::ellipses::Ellipse from an (xx,yy,xy,x,y) tuple of Keys.
 
void set(BaseRecord &record, geom::ellipses::Ellipse const &value) const override
Set an Ellipse in the given record.
 
EllipseKey(EllipseKey &&) noexcept=default
 
static EllipseKey addFields(Schema &schema, std::string const &name, std::string const &doc, std::string const &unit)
Add a set of _xx, _yy, _xy, _x, _y fields to a Schema, and return an EllipseKey that points to them.
 
geom::ellipses::Ellipse get(BaseRecord const &record) const override
Get an Ellipse from the given record.
 
EllipseKey() noexcept
Default constructor; instance will not be usable unless subsequently assigned to.
 
std::size_t hash_value() const noexcept
Return a hash of this object.
 
bool operator!=(EllipseKey const &other) const noexcept
 
EllipseKey(EllipseKey const &) noexcept=default
 
EllipseKey(SubSchema const &s)
Construct from a subschema, assuming (xx, yy, xy, x, y) subfields.
 
PointKey< double > getCenter() const noexcept
 
QuadrupoleKey getCore() const noexcept
Return constituent FunctorKeys.
 
bool isValid() const noexcept
Return True if all the constituent Keys are valid.
 
EllipseKey(QuadrupoleKey const &qKey, PointKey< double > const &pKey) noexcept
Construct from individual Keys.
 
Convenience base class that combines the OutputFunctorKey and InputFunctorKey.
 
A class used as a handle to a particular field in a table.
 
bool isValid() const noexcept
Return true if the key was initialized to valid offset.
 
A FunctorKey used to get or set a lsst::geom::Point from an (x,y) pair of int or double Keys.
 
Key< T > getX() const noexcept
Return the underlying x Key.
 
std::size_t hash_value() const noexcept
Return a hash of this object.
 
PointKey() noexcept
Default constructor; instance will not be usable unless subsequently assigned to.
 
PointKey(PointKey const &) noexcept=default
 
void set(BaseRecord &record, lsst::geom::Point< T, 2 > const &value) const override
Set a Point in the given record.
 
PointKey(PointKey &&) noexcept=default
 
bool operator!=(PointKey< T > const &other) const noexcept
 
static PointKey addFields(Schema &schema, std::string const &name, std::string const &doc, std::string const &unit)
Add a pair of _x, _y fields to a Schema, and return a PointKey that points to them.
 
PointKey(Key< T > const &x, Key< T > const &y) noexcept
Construct from a pair of Keys.
 
bool operator==(PointKey< T > const &other) const noexcept
Compare the FunctorKey for equality with another, using the underlying x and y Keys.
 
bool isValid() const noexcept
Return True if both the x and y Keys are valid.
 
lsst::geom::Point< T, 2 > get(BaseRecord const &record) const override
Get a Point from the given record.
 
Key< T > getY() const noexcept
Return the underlying y Key.
 
A FunctorKey used to get or set a geom::ellipses::Quadrupole from a tuple of constituent Keys.
 
std::size_t hash_value() const noexcept
Return a hash of this object.
 
Key< double > getIyy() const noexcept
 
geom::ellipses::Quadrupole get(BaseRecord const &record) const override
Get a Quadrupole from the given record.
 
QuadrupoleKey() noexcept
Default constructor; instance will not be usable unless subsequently assigned to.
 
Key< double > getIxy() const noexcept
 
QuadrupoleKey(SubSchema const &s)
Construct from a subschema with appropriate subfields.
 
QuadrupoleKey(QuadrupoleKey const &) noexcept=default
 
void set(BaseRecord &record, geom::ellipses::Quadrupole const &value) const override
Set a Quadrupole in the given record.
 
static QuadrupoleKey addFields(Schema &schema, std::string const &name, std::string const &doc, CoordinateType coordType=CoordinateType::PIXEL)
Add a set of quadrupole subfields to a schema and return a QuadrupoleKey that points to them.
 
QuadrupoleKey(Key< double > const &ixx, Key< double > const &iyy, Key< double > const &ixy) noexcept
Construct from individual Keys.
 
Key< double > getIxx() const noexcept
Return a constituent Key.
 
QuadrupoleKey(QuadrupoleKey &&) noexcept=default
 
bool operator!=(QuadrupoleKey const &other) const noexcept
 
bool isValid() const noexcept
Return True if all the constituent Keys are valid.
 
Defines the fields and offsets for a table.
 
A proxy type for name lookups in a Schema.
 
A coordinate class intended to represent absolute positions (2-d specialization).
 
Point in an unspecified spherical coordinate system.
 
CoordinateType
Enum used to set units for geometric FunctorKeys.
 
std::size_t hashCombine(std::size_t seed) noexcept
Combine hashes.
 
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > Matrix
 
A base class for image defects.
 
size_t operator()(argument_type const &obj) const noexcept
 
size_t operator()(argument_type const &obj) const noexcept
 
size_t operator()(argument_type const &obj) const noexcept
 
size_t operator()(argument_type const &obj) const noexcept
 
size_t operator()(argument_type const &obj) const noexcept
 
size_t operator()(argument_type const &obj) const noexcept