26#include "EvtGenBase/EvtConst.hh"
50 EvtComplex(
double rpart,
double ipart=0.0):_rpart(rpart),_ipart(ipart){}
151double Num=d/(c._rpart*c._rpart+c._ipart*c._ipart);
153return EvtComplex( Num*c._rpart, -Num*c._ipart );
161 double inv=1.0/(c2._rpart*c2._rpart+c2._ipart*c2._ipart);
163 return EvtComplex(inv*(c1._rpart*c2._rpart+c1._ipart*c2._ipart),
164 inv*(c1._ipart*c2._rpart-c1._rpart*c2._ipart));
170 return EvtComplex(c1._rpart*c2._rpart-c1._ipart*c2._ipart,
171 c1._rpart*c2._ipart+c1._ipart*c2._rpart);
177 return EvtComplex(c1._rpart-c2._rpart,c1._ipart-c2._ipart);
183 return EvtComplex(c1._rpart+c2._rpart,c1._ipart+c2._ipart);
189 return _rpart==c._rpart&&_ipart==c._ipart;
195 return _rpart!=c._rpart||_ipart!=c._ipart;
214 double c2=c._rpart*c._rpart+c._ipart*c._ipart;
215 if (c2<=0.0)
return 0.0;
223 return c._rpart*c._rpart+c._ipart*c._ipart;
228 if ((c._rpart==0)&&(c._ipart==0)) {
return 0.0;}
236 return atan2(c._ipart,c._rpart);
double sin(const BesAngle a)
double cos(const BesAngle a)
EvtComplex conj(const EvtComplex &c)
double imag(const EvtComplex &c)
EvtComplexPtrPtr * EvtComplexPtrPtrPtr
double abs2(const EvtComplex &c)
EvtComplex exp(const EvtComplex &c)
EvtComplex operator/(const EvtComplex &c, double d)
EvtComplex * EvtComplexPtr
EvtComplex operator*(double d, const EvtComplex &c)
EvtComplex operator-(const EvtComplex &c1, const EvtComplex &c2)
double arg(const EvtComplex &c)
EvtComplex operator+(const EvtComplex &c1, const EvtComplex &c2)
EvtComplexPtr * EvtComplexPtrPtr
EvtComplex & operator+=(const EvtComplex &c)
friend EvtComplex conj(const EvtComplex &c)
friend double imag(const EvtComplex &c)
EvtComplex & operator*=(EvtComplex c)
EvtComplex & operator+=(double d)
friend std::ostream & operator<<(std::ostream &s, const EvtComplex &c)
EvtComplex & operator/=(EvtComplex c)
EvtComplex & operator=(const EvtComplex &c)
friend double real(const EvtComplex &c)
friend double abs2(const EvtComplex &c)
EvtComplex(const EvtComplex &c)
friend EvtComplex exp(const EvtComplex &c)
EvtComplex & operator*=(double d)
friend EvtComplex operator/(const EvtComplex &c, double d)
int operator!=(const EvtComplex c)
EvtComplex(double rpart, double ipart=0.0)
friend EvtComplex operator*(double d, const EvtComplex &c)
EvtComplex & operator-=(double d)
EvtComplex & operator-=(const EvtComplex &c)
EvtComplex & operator/=(double d)
friend EvtComplex operator-(const EvtComplex &c1, const EvtComplex &c2)
friend double arg(const EvtComplex &c)
friend EvtComplex operator+(const EvtComplex &c1, const EvtComplex &c2)
int operator==(const EvtComplex c)
friend double abs(const EvtComplex &c)