Lines Matching defs:complex
1259 class complex {
1262 constexpr complex(int re = 0, int im = 0) : re(re), im(im) {}
1263 constexpr complex(const complex &o) : re(o.re), im(o.im) {}
1264 constexpr complex operator-() const { return complex(-re, -im); }
1265 friend constexpr complex operator+(const complex &l, const complex &r) {
1266 return complex(l.re + r.re, l.im + r.im);
1268 friend constexpr complex operator-(const complex &l, const complex &r) {
1271 friend constexpr complex operator*(const complex &l, const complex &r) {
1272 return complex(l.re * r.re - l.im * r.im, l.re * r.im + l.im * r.re);
1274 friend constexpr bool operator==(const complex &l, const complex &r) {
1277 constexpr bool operator!=(const complex &r) const {
1284 constexpr complex i = complex(0, 1);
1285 constexpr complex k = (3 + 4*i) * (6 - 4*i);
1286 static_assert(complex(1,0).real() == 1, "");
1287 static_assert(complex(1,0).imag() == 0, "");
1288 static_assert(((complex)1).imag() == 0, "");
1292 static_assert((complex)1 == complex(1), "");
1293 static_assert((complex)1 != complex(0, 1), "");
1294 static_assert(complex(1) == complex(1), "");
1295 static_assert(complex(1) != complex(0, 1), "");
1296 constexpr complex makeComplex(int re, int im) { return complex(re, im); }
1297 static_assert(makeComplex(1,0) == complex(1), "");
1298 static_assert(makeComplex(1,0) != complex(0, 1), "");
1300 class complex_wrap : public complex {
1302 constexpr complex_wrap(int re, int im = 0) : complex(re, im) {}
1303 constexpr complex_wrap(const complex_wrap &o) : complex(o) {}
1306 static_assert((complex_wrap)1 == complex(1), "");
1307 static_assert((complex)1 != complex_wrap(0, 1), "");
1308 static_assert(complex(1) == complex_wrap(1), "");
1309 static_assert(complex_wrap(1) != complex(0, 1), "");
1313 static_assert(makeComplexWrap(1,0) == complex(1), "");
1314 static_assert(makeComplexWrap(1,0) != complex(0, 1), "");