]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/numeric/ublas/test/test_complex_norms.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / numeric / ublas / test / test_complex_norms.cpp
index e923d70870691229d9f28b5f76da17b4a10991ee..0c37ed45bf1172bca6443a934fa8d1897bfd34f0 100644 (file)
@@ -42,34 +42,69 @@ BOOST_UBLAS_TEST_DEF ( test_double_complex_norm_2 ) {
     BOOST_UBLAS_TEST_CHECK(std::abs(norm_2(v) - (3.0*expected)) < TOL);
 }
 
-BOOST_UBLAS_TEST_DEF ( test_float_complex_norm_inf ) {
-    typedef std::complex<float> dComplex;
+BOOST_UBLAS_TEST_DEF ( test_double_complex_norm_2_square ) {
+    typedef std::complex<double> dComplex;
     vector<dComplex> v(4);
     for (unsigned int i = 0; i < v.size(); ++i)
         v[i] = dComplex(i, i + 1);
 
+    const double expected = 44;
+
+    BOOST_UBLAS_DEBUG_TRACE( "square norm is " << norm_2_square(v) );
+    BOOST_UBLAS_TEST_CHECK(std::abs(norm_2_square(v) - expected) < TOL);
+    v *= 3.;
+    BOOST_UBLAS_TEST_CHECK(std::abs(norm_2_square(v) - (9.0*expected)) < TOL);
+}
+
+
+BOOST_UBLAS_TEST_DEF ( test_float_complex_norm_inf ) {
+    typedef std::complex<float> dComplex;
+    vector<dComplex> v(4);
+    for (unsigned short i = 0; i < v.size(); ++i) {
+        unsigned short imag(i + 1);
+        v[i] = dComplex(i, imag);
+    }
+
     const float expected = abs(v[3]);
 
     BOOST_UBLAS_DEBUG_TRACE( "norm is " << norm_inf(v) );
     BOOST_UBLAS_TEST_CHECK(std::abs(norm_inf(v) - expected) < TOL);
-    v *= 3.;
+    v *= 3.f;
     BOOST_UBLAS_TEST_CHECK(std::abs(norm_inf(v) - (3.0*expected)) < TOL);
 }
 
 BOOST_UBLAS_TEST_DEF ( test_float_complex_norm_2 ) {
     typedef std::complex<float> dComplex;
     vector<dComplex> v(4);
-    for (unsigned int i = 0; i < v.size(); ++i)
-        v[i] = dComplex(i, i + 1);
+    for (unsigned short i = 0; i < v.size(); ++i) {
+        unsigned short imag(i + 1);
+        v[i] = dComplex(i, imag);
+    }
 
     const double expected = sqrt(44.0);
 
     BOOST_UBLAS_DEBUG_TRACE( "norm is " << norm_2(v) );
     BOOST_UBLAS_TEST_CHECK(std::abs(norm_2(v) - expected) < TOL);
-    v *= 3.;
+    v *= 3.f;
     BOOST_UBLAS_TEST_CHECK(std::abs(norm_2(v) - (3.0*expected)) < TOL);
 }
 
+BOOST_UBLAS_TEST_DEF ( test_float_complex_norm_2_square ) {
+    typedef std::complex<float> dComplex;
+    vector<dComplex> v(4);
+    for (unsigned short i = 0; i < v.size(); ++i) {
+        unsigned short imag(i + 1);
+        v[i] = dComplex(i, imag);
+    }
+
+    const double expected = 44;
+
+    BOOST_UBLAS_DEBUG_TRACE( "square norm is " << norm_2_square(v) );
+    BOOST_UBLAS_TEST_CHECK(std::abs(norm_2_square(v) - expected) < TOL);
+    v *= 3.f;
+    BOOST_UBLAS_TEST_CHECK(std::abs(norm_2_square(v) - (9.0*expected)) < TOL);
+}
+
 int main() {
     BOOST_UBLAS_TEST_BEGIN();
 
@@ -77,6 +112,8 @@ int main() {
     BOOST_UBLAS_TEST_DO( test_float_complex_norm_inf );
     BOOST_UBLAS_TEST_DO( test_double_complex_norm_2 );
     BOOST_UBLAS_TEST_DO( test_float_complex_norm_2 );
+    BOOST_UBLAS_TEST_DO( test_double_complex_norm_2_square );
+    BOOST_UBLAS_TEST_DO( test_float_complex_norm_2_square );
 
     BOOST_UBLAS_TEST_END();
 }