// CComplex comparison ops, long-to-CComplex ctor, and 2-arg atan2 missing from fkn/complex.cpp. #include "../liblua/COMPLEX.H" #include 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); }