Home | History | Annotate | Download | only in SemaCXX

Lines Matching refs:complex

937 namespace Complex {
939 class complex {
942 constexpr complex(int re = 0, int im = 0) : re(re), im(im) {}
943 constexpr complex(const complex &o) : re(o.re), im(o.im) {}
944 constexpr complex operator-() const { return complex(-re, -im); }
945 friend constexpr complex operator+(const complex &l, const complex &r) {
946 return complex(l.re + r.re, l.im + r.im);
948 friend constexpr complex operator-(const complex &l, const complex &r) {
951 friend constexpr complex operator*(const complex &l, const complex &r) {
952 return complex(l.re * r.re - l.im * r.im, l.re * r.im + l.im * r.re);
954 friend constexpr bool operator==(const complex &l, const complex &r) {
957 constexpr bool operator!=(const complex &r) const {
964 constexpr complex i = complex(0, 1);
965 constexpr complex k = (3 + 4*i) * (6 - 4*i);
966 static_assert(complex(1,0).real() == 1, "");
967 static_assert(complex(1,0).imag() == 0, "");
968 static_assert(((complex)1).imag() == 0, "");
972 static_assert((complex)1 == complex(1), "");
973 static_assert((complex)1 != complex(0, 1), "");
974 static_assert(complex(1) == complex(1), "");
975 static_assert(complex(1) != complex(0, 1), "");
976 constexpr complex makeComplex(int re, int im) { return complex(re, im); }
977 static_assert(makeComplex(1,0) == complex(1), "");
978 static_assert(makeComplex(1,0) != complex(0, 1), "");
980 class complex_wrap : public complex {
982 constexpr complex_wrap(int re, int im = 0) : complex(re, im) {}
983 constexpr complex_wrap(const complex_wrap &o) : complex(o) {}
986 static_assert((complex_wrap)1 == complex(1), "");
987 static_assert((complex)1 != complex_wrap(0, 1), "");
988 static_assert(complex(1) == complex_wrap(1), "");
989 static_assert(complex_wrap(1) != complex(0, 1), "");
993 static_assert(makeComplexWrap(1,0) == complex(1), "");
994 static_assert(makeComplexWrap(1,0) != complex(0, 1), "");