34 lines
1.5 KiB
C++
34 lines
1.5 KiB
C++
// CComplex comparison ops, long-to-CComplex ctor, and 2-arg atan2 missing from fkn/complex.cpp.
|
|
|
|
#include "../liblua/COMPLEX.H"
|
|
#include <cmath>
|
|
|
|
bool CComplex::operator<(const CComplex& z) { return re < z.re; }
|
|
bool CComplex::operator<(double z) { return re < z; }
|
|
bool CComplex::operator<(int z) { return re < (double)z; }
|
|
bool CComplex::operator<(long long z) { return re < (double)z; }
|
|
|
|
bool CComplex::operator>(const CComplex& z) { return re > z.re; }
|
|
bool CComplex::operator>(double z) { return re > z; }
|
|
bool CComplex::operator>(int z) { return re > (double)z; }
|
|
bool CComplex::operator>(long long z) { return re > (double)z; }
|
|
|
|
bool CComplex::operator<=(const CComplex& z) { return re <= z.re; }
|
|
bool CComplex::operator<=(double z) { return re <= z; }
|
|
bool CComplex::operator<=(int z) { return re <= (double)z; }
|
|
bool CComplex::operator<=(long long z) { return re <= (double)z; }
|
|
|
|
bool CComplex::operator>=(const CComplex& z) { return re >= z.re; }
|
|
bool CComplex::operator>=(double z) { return re >= z; }
|
|
bool CComplex::operator>=(int z) { return re >= (double)z; }
|
|
bool CComplex::operator>=(long long z) { return re >= (double)z; }
|
|
|
|
CComplex::CComplex(long x) { re = (double)x; im = 0.0; }
|
|
CComplex::CComplex(long long x) { re = (double)x; im = 0.0; }
|
|
|
|
// 2-arg atan2 over CComplex.
|
|
CComplex atan2(const CComplex& y, const CComplex& x) {
|
|
if (y.im == 0 && x.im == 0) return CComplex(std::atan2(y.re, x.re), 0);
|
|
return atan(y / x);
|
|
}
|