complex complex::parsevalue(str *s) { complex mult; if ((!___bool(s))) { return mcomplex(0.0, 0.0); } mult = mcomplex(1.0, 0.0); if (__eq(s->__getitem__((-1)), new str("j"))) { s = s->__slice__(2, 0, (-1), 0); mult = mcomplex(0.0, 1.0); } if (((new list<str *>(2, new str("+"), new str("-"))))->__contains__(s)) { s = s->__iadd__(new str("1")); } return mult * __float(s); }
inline tuple2<complex, complex> *divmod(double a, complex b) { return __complexdivmod(mcomplex(a), b); }
inline tuple2<complex, complex> *divmod(complex a, double b) { return __complexdivmod(a, mcomplex(b)); }
inline complex __floordiv(double a, complex b) { return __complexfloordiv(mcomplex(a), b); }
inline complex __floordiv(complex a, double b) { return __complexfloordiv(a, mcomplex(b)); }
inline __ss_bool complex::operator!=(double b) { return (*this) != mcomplex(b); }
inline complex complex::operator-() { return mcomplex(-real, -imag); }
inline complex complex::operator%(double b) { return (*this) % mcomplex(b); }
inline complex complex::operator*(complex b) { return mcomplex(real*b.real-imag*b.imag, real*b.imag+imag*b.real); }
inline complex complex::operator-(complex b) { return mcomplex(real-b.real, imag-b.imag); }
inline complex complex::operator+(complex b) { return mcomplex(real+b.real, imag+b.imag); }
inline complex complex::conjugate() { return mcomplex(real, -imag); }
inline complex __power(double a, complex b) { return __power(mcomplex(a), b); }
inline complex __power(complex a, double b) { return __power(a, mcomplex(b)); }
template<> complex __to_ss(PyObject *p) { return mcomplex(PyComplex_RealAsDouble(p), PyComplex_ImagAsDouble(p)); }