diff options
author | Benoit Jacob <jacob.benoit.1@gmail.com> | 2010-04-28 22:42:34 -0400 |
---|---|---|
committer | Benoit Jacob <jacob.benoit.1@gmail.com> | 2010-04-28 22:42:34 -0400 |
commit | 5d63d2cc4bf191b71d75c4ca4ed05956853b87eb (patch) | |
tree | f2ccc126121d4fb0e94ad43dca409abc570408dc /test | |
parent | e2775869588e1df2d19265eac5c167651168a414 (diff) |
* kill the retval typedefs, instead introduce ei_xxx_retval which does the job automatically in 99% cases and can be specialized
* add real/imag/abs2 global functions for Array
* document ei_global_math_functions_filtering_base
* improve unit tests
Diffstat (limited to 'test')
-rw-r--r-- | test/array.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/array.cpp b/test/array.cpp index 8fc6c6bd7..80065316a 100644 --- a/test/array.cpp +++ b/test/array.cpp @@ -154,6 +154,13 @@ template<typename ArrayType> void array_real(const ArrayType& m) VERIFY_IS_APPROX(m1.abs().sqrt(), std::sqrt(std::abs(m1))); VERIFY_IS_APPROX(m1.abs().sqrt(), ei_sqrt(ei_abs(m1))); + VERIFY_IS_APPROX(m1.abs(), ei_sqrt(ei_abs2(m1))); + + VERIFY_IS_APPROX(ei_abs2(ei_real(m1)) + ei_abs2(ei_imag(m1)), ei_abs2(m1)); + VERIFY_IS_APPROX(ei_abs2(std::real(m1)) + ei_abs2(std::imag(m1)), ei_abs2(m1)); + if(!NumTraits<Scalar>::IsComplex) + VERIFY_IS_APPROX(ei_real(m1), m1); + VERIFY_IS_APPROX(m1.abs().log(), std::log(std::abs(m1))); VERIFY_IS_APPROX(m1.abs().log(), ei_log(ei_abs(m1))); @@ -186,4 +193,12 @@ void test_array() CALL_SUBTEST_3( array_real(Array44d()) ); CALL_SUBTEST_5( array_real(ArrayXXf(8, 12)) ); } + + VERIFY((ei_is_same_type< ei_global_math_functions_filtering_base<int>::type, int >::ret)); + VERIFY((ei_is_same_type< ei_global_math_functions_filtering_base<float>::type, float >::ret)); + VERIFY((ei_is_same_type< ei_global_math_functions_filtering_base<Array2i>::type, ArrayBase<Array2i> >::ret)); + typedef CwiseUnaryOp<ei_scalar_sum_op<double>, ArrayXd > Xpr; + VERIFY((ei_is_same_type< ei_global_math_functions_filtering_base<Xpr>::type, + ArrayBase<Xpr> + >::ret)); } |