LSST Applications g0265f82a02+c6dfa2ddaf,g06e71c497f+096b73effd,g1162b98a3f+7357863717,g2079a07aa2+1b2e822518,g24bb6cda20+5d01030798,g2bbee38e9b+c6dfa2ddaf,g337abbeb29+c6dfa2ddaf,g3ddfee87b4+f3fc968792,g50ff169b8f+2eb0e556e8,g52b1c1532d+90ebb246c7,g555ede804d+f3fc968792,g5ec818987f+d9e88ddb69,g858d7b2824+8dc8b78d92,g876c692160+77fc37dd95,g8a8a8dda67+90ebb246c7,g8cdfe0ae6a+4fd9e222a8,g99cad8db69+b970a87ef8,g9ddcbc5298+a1346535a5,ga1e77700b3+df8f93165b,ga8c6da7877+608c5736b2,gae46bcf261+c6dfa2ddaf,gb0e22166c9+8634eb87fb,gb3f2274832+6424bb6c0b,gba4ed39666+1ac82b564f,gbb8dafda3b+949d6afab0,gbeb006f7da+65ac3eb7b6,gc28159a63d+c6dfa2ddaf,gc86a011abf+8dc8b78d92,gcf0d15dbbd+f3fc968792,gd162630629+ec0ba879d0,gdaeeff99f8+1cafcb7cd4,gdc0c513512+8dc8b78d92,ge79ae78c31+c6dfa2ddaf,gee10cc3b42+90ebb246c7,gf1cff7945b+8dc8b78d92,w.2024.12
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
lsst::afw::geom::ellipses::detail::EllipticityBase Class Reference

EllipticityBase is a base class for complex ellipticity types. More...

#include <EllipticityBase.h>

Inheritance diagram for lsst::afw::geom::ellipses::detail::EllipticityBase:
lsst::afw::geom::ellipses::ConformalShear lsst::afw::geom::ellipses::Distortion lsst::afw::geom::ellipses::ReducedShear

Public Types

enum  ParameterEnum { E1 = 0 , E2 = 1 }
 
using Jacobian = Eigen::Matrix2d
 

Public Member Functions

std::complex< double > & getComplex ()
 
std::complex< double > const & getComplex () const
 
void setComplex (std::complex< double > const &v)
 
double getE1 () const
 
void setE1 (double e1)
 
double getE2 () const
 
void setE2 (double e2)
 
double getE () const
 
void setE (double e)
 
double getTheta () const
 
 EllipticityBase (EllipticityBase const &)=default
 
 EllipticityBase (EllipticityBase &&)=default
 
EllipticityBaseoperator= (EllipticityBase const &)=default
 
EllipticityBaseoperator= (EllipticityBase &&)=default
 
 ~EllipticityBase ()=default
 

Protected Member Functions

 EllipticityBase (std::complex< double > const &complex)
 
 EllipticityBase (double e1=0.0, double e2=0.0)
 

Protected Attributes

std::complex< double > _complex
 

Detailed Description

EllipticityBase is a base class for complex ellipticity types.

EllipticityBase does not have a virtual destructor, and only exists for code reuse purposes. The ellipticity classes are not polymorphic simply to keep them small.

Definition at line 45 of file EllipticityBase.h.

Member Typedef Documentation

◆ Jacobian

Definition at line 47 of file EllipticityBase.h.

Member Enumeration Documentation

◆ ParameterEnum

Constructor & Destructor Documentation

◆ EllipticityBase() [1/4]

lsst::afw::geom::ellipses::detail::EllipticityBase::EllipticityBase ( EllipticityBase const & )
default

◆ EllipticityBase() [2/4]

lsst::afw::geom::ellipses::detail::EllipticityBase::EllipticityBase ( EllipticityBase && )
default

◆ ~EllipticityBase()

lsst::afw::geom::ellipses::detail::EllipticityBase::~EllipticityBase ( )
default

◆ EllipticityBase() [3/4]

lsst::afw::geom::ellipses::detail::EllipticityBase::EllipticityBase ( std::complex< double > const & complex)
inlineexplicitprotected

Definition at line 87 of file EllipticityBase.h.

87: _complex(complex) {}

◆ EllipticityBase() [4/4]

lsst::afw::geom::ellipses::detail::EllipticityBase::EllipticityBase ( double e1 = 0.0,
double e2 = 0.0 )
inlineexplicitprotected

Definition at line 89 of file EllipticityBase.h.

89: _complex(e1, e2) {}

Member Function Documentation

◆ getComplex() [1/2]

std::complex< double > & lsst::afw::geom::ellipses::detail::EllipticityBase::getComplex ( )
inline

Definition at line 51 of file EllipticityBase.h.

51{ return _complex; }

◆ getComplex() [2/2]

std::complex< double > const & lsst::afw::geom::ellipses::detail::EllipticityBase::getComplex ( ) const
inline

Definition at line 53 of file EllipticityBase.h.

53{ return _complex; }

◆ getE()

double lsst::afw::geom::ellipses::detail::EllipticityBase::getE ( ) const
inline

Definition at line 75 of file EllipticityBase.h.

75{ return std::sqrt(std::norm(_complex)); }
T sqrt(T... args)

◆ getE1()

double lsst::afw::geom::ellipses::detail::EllipticityBase::getE1 ( ) const
inline

Definition at line 57 of file EllipticityBase.h.

57{ return _complex.real(); }
T real(T... args)

◆ getE2()

double lsst::afw::geom::ellipses::detail::EllipticityBase::getE2 ( ) const
inline

Definition at line 66 of file EllipticityBase.h.

66{ return _complex.imag(); }
T imag(T... args)

◆ getTheta()

double lsst::afw::geom::ellipses::detail::EllipticityBase::getTheta ( ) const
inline

Definition at line 78 of file EllipticityBase.h.

78{ return 0.5 * std::arg(_complex); }

◆ operator=() [1/2]

EllipticityBase & lsst::afw::geom::ellipses::detail::EllipticityBase::operator= ( EllipticityBase && )
default

◆ operator=() [2/2]

EllipticityBase & lsst::afw::geom::ellipses::detail::EllipticityBase::operator= ( EllipticityBase const & )
default

◆ setComplex()

void lsst::afw::geom::ellipses::detail::EllipticityBase::setComplex ( std::complex< double > const & v)
inline

Definition at line 55 of file EllipticityBase.h.

55{ _complex = v; }

◆ setE()

void lsst::afw::geom::ellipses::detail::EllipticityBase::setE ( double e)
inline

Definition at line 76 of file EllipticityBase.h.

◆ setE1()

void lsst::afw::geom::ellipses::detail::EllipticityBase::setE1 ( double e1)
inline

Definition at line 58 of file EllipticityBase.h.

58 {
59#if __cplusplus < 201103L
61#else
62 _complex.real(e1);
63#endif
64 }

◆ setE2()

void lsst::afw::geom::ellipses::detail::EllipticityBase::setE2 ( double e2)
inline

Definition at line 67 of file EllipticityBase.h.

67 {
68#if __cplusplus < 201103L
70#else
71 _complex.imag(e2);
72#endif
73 }

Member Data Documentation

◆ _complex

std::complex<double> lsst::afw::geom::ellipses::detail::EllipticityBase::_complex
protected

Definition at line 91 of file EllipticityBase.h.


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