summaryrefslogtreecommitdiff
path: root/libcxx/test/numerics/complex.number/complex.ops/complex_times_complex.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/numerics/complex.number/complex.ops/complex_times_complex.pass.cpp')
-rw-r--r--libcxx/test/numerics/complex.number/complex.ops/complex_times_complex.pass.cpp161
1 files changed, 0 insertions, 161 deletions
diff --git a/libcxx/test/numerics/complex.number/complex.ops/complex_times_complex.pass.cpp b/libcxx/test/numerics/complex.number/complex.ops/complex_times_complex.pass.cpp
deleted file mode 100644
index 565eaa5657cd..000000000000
--- a/libcxx/test/numerics/complex.number/complex.ops/complex_times_complex.pass.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <complex>
-
-// template<class T>
-// complex<T>
-// operator*(const complex<T>& lhs, const complex<T>& rhs);
-
-#include <complex>
-#include <cassert>
-
-#include "../cases.h"
-
-template <class T>
-void
-test(const std::complex<T>& lhs, const std::complex<T>& rhs, std::complex<T> x)
-{
- assert(lhs * rhs == x);
-}
-
-template <class T>
-void
-test()
-{
- std::complex<T> lhs(1.5, 2.5);
- std::complex<T> rhs(1.5, 2.5);
- std::complex<T> x(-4.0, 7.5);
- test(lhs, rhs, x);
-}
-
-// test edges
-
-void test_edges()
-{
- const unsigned N = sizeof(x) / sizeof(x[0]);
- for (unsigned i = 0; i < N; ++i)
- {
- for (unsigned j = 0; j < N; ++j)
- {
- std::complex<double> r = x[i] * x[j];
- switch (classify(x[i]))
- {
- case zero:
- switch (classify(x[j]))
- {
- case zero:
- assert(classify(r) == zero);
- break;
- case non_zero:
- assert(classify(r) == zero);
- break;
- case inf:
- assert(classify(r) == NaN);
- break;
- case NaN:
- assert(classify(r) == NaN);
- break;
- case non_zero_nan:
- assert(classify(r) == NaN);
- break;
- }
- break;
- case non_zero:
- switch (classify(x[j]))
- {
- case zero:
- assert(classify(r) == zero);
- break;
- case non_zero:
- assert(classify(r) == non_zero);
- break;
- case inf:
- assert(classify(r) == inf);
- break;
- case NaN:
- assert(classify(r) == NaN);
- break;
- case non_zero_nan:
- assert(classify(r) == NaN);
- break;
- }
- break;
- case inf:
- switch (classify(x[j]))
- {
- case zero:
- assert(classify(r) == NaN);
- break;
- case non_zero:
- assert(classify(r) == inf);
- break;
- case inf:
- assert(classify(r) == inf);
- break;
- case NaN:
- assert(classify(r) == NaN);
- break;
- case non_zero_nan:
- assert(classify(r) == inf);
- break;
- }
- break;
- case NaN:
- switch (classify(x[j]))
- {
- case zero:
- assert(classify(r) == NaN);
- break;
- case non_zero:
- assert(classify(r) == NaN);
- break;
- case inf:
- assert(classify(r) == NaN);
- break;
- case NaN:
- assert(classify(r) == NaN);
- break;
- case non_zero_nan:
- assert(classify(r) == NaN);
- break;
- }
- break;
- case non_zero_nan:
- switch (classify(x[j]))
- {
- case zero:
- assert(classify(r) == NaN);
- break;
- case non_zero:
- assert(classify(r) == NaN);
- break;
- case inf:
- assert(classify(r) == inf);
- break;
- case NaN:
- assert(classify(r) == NaN);
- break;
- case non_zero_nan:
- assert(classify(r) == NaN);
- break;
- }
- break;
- }
- }
- }
-}
-
-int main()
-{
- test<float>();
- test<double>();
- test<long double>();
- test_edges();
-}