]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Avoid output of roundoff-sensitive data. Print correct/wrong instead. 8391/head
authorMartin Kronbichler <kronbichler@lnm.mw.tum.de>
Thu, 18 Jul 2019 12:41:48 +0000 (14:41 +0200)
committerMartin Kronbichler <kronbichler@lnm.mw.tum.de>
Fri, 19 Jul 2019 08:30:25 +0000 (10:30 +0200)
17 files changed:
tests/lac/la_parallel_vector_add_and_dot_complex.cc
tests/lac/la_parallel_vector_add_and_dot_complex.with_complex_values=on.output
tests/lac/la_parallel_vector_add_and_dot_complex.with_complex_values=on.output.DEAL_II_MAX_THREADS2 [deleted file]
tests/lac/la_parallel_vector_add_and_dot_complex.with_complex_values=on.output.no_threads [deleted file]
tests/lac/la_vector_add_and_dot.cc
tests/lac/la_vector_add_and_dot.with_complex_values=false.output
tests/lac/la_vector_add_and_dot.with_complex_values=true.output
tests/lac/la_vector_add_and_dot_complex.cc
tests/lac/la_vector_add_and_dot_complex.with_complex_values=on.output
tests/lac/la_vector_add_and_dot_complex.with_complex_values=on.output.DEAL_II_MAX_THREADS2 [deleted file]
tests/lac/la_vector_add_and_dot_complex.with_complex_values=on.output.no_threads [deleted file]
tests/lac/vector_add_and_dot.cc
tests/lac/vector_add_and_dot.with_complex_values=false.output
tests/lac/vector_add_and_dot.with_complex_values=true.output
tests/lac/vector_add_and_dot_complex.cc
tests/lac/vector_add_and_dot_complex.with_complex_values=on.output
tests/lac/vector_add_and_dot_complex.with_complex_values=on.output.avx512 [new file with mode: 0644]

index 5cf58b26f163d9521b3be378a4067958e386f8a0..5b5f21631bdb2381ae7caa6b66d93ff547213865 100644 (file)
@@ -60,8 +60,15 @@ check()
           deallog << std::endl;
         }
 
-      deallog << "Add and dot should be " << prod / static_cast<number>(size)
-              << ", is " << prod_check / static_cast<number>(size) << std::endl;
+      deallog << "Add and dot is ";
+      if (std::abs(prod - prod_check) <
+          4. * std::numeric_limits<number>::epsilon() *
+            std::sqrt(static_cast<number>(size)) * size)
+        deallog << "correct" << std::endl;
+      else
+        deallog << "wrong; should be " << prod / static_cast<number>(size)
+                << ", is " << prod_check / static_cast<number>(size)
+                << std::endl;
     }
 }
 
index 30ac12364b78c3467646838edacf818c5303cb66..094c70de90b44facefafe2a107e6041e0739ad33 100644 (file)
@@ -1,9 +1,9 @@
 
-DEAL::Add and dot should be (1334.7905,349.71042), is (1334.7905,349.71042)
-DEAL::Add and dot should be (91530.086,22094.701), is (91530.086,22094.701)
-DEAL::Add and dot should be (181725.41,43834.066), is (181725.41,43834.066)
-DEAL::Add and dot should be (271920.69,65573.367), is (271920.69,65573.367)
-DEAL::Add and dot should be (362116.03,87312.656), is (362116.03,87312.656)
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
 Process #0
 Local range: [0, 17), global size: 17
 Vector data:
@@ -14,9 +14,9 @@ Local range: [0, 17), global size: 17
 Vector data:
 (2.554e-02,1.842e+00) (3.311e-02,1.444e+01) (4.069e-02,2.704e+01) (4.827e-02,3.965e+01) (5.585e-02,5.225e+01) (6.342e-02,6.485e+01) (7.100e-02,7.745e+01) (7.858e-02,9.005e+01) (8.616e-02,1.027e+02) (9.373e-02,1.153e+02) (1.013e-01,1.279e+02) (1.089e-01,1.405e+02) (1.165e-01,1.531e+02) (1.240e-01,1.657e+02) (1.316e-01,1.783e+02) (1.392e-01,1.909e+02) (1.468e-01,2.035e+02) 
 DEAL::Vector check reference: 
-DEAL::Add and dot should be (1334.7906,349.71041), is (1334.7906,349.71041)
-DEAL::Add and dot should be (91530.091,22094.701), is (91530.091,22094.701)
-DEAL::Add and dot should be (181725.40,43834.063), is (181725.40,43834.063)
-DEAL::Add and dot should be (271920.71,65573.368), is (271920.71,65573.368)
-DEAL::Add and dot should be (362116.02,87312.657), is (362116.02,87312.657)
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
 DEAL::OK
diff --git a/tests/lac/la_parallel_vector_add_and_dot_complex.with_complex_values=on.output.DEAL_II_MAX_THREADS2 b/tests/lac/la_parallel_vector_add_and_dot_complex.with_complex_values=on.output.DEAL_II_MAX_THREADS2
deleted file mode 100644 (file)
index 30e0cc1..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-
-DEAL::Add and dot should be (1334.7905,349.71042), is (1334.7905,349.71042)
-DEAL::Add and dot should be (91530.094,22094.703), is (91530.094,22094.703)
-DEAL::Add and dot should be (181725.41,43834.062), is (181725.41,43834.062)
-DEAL::Add and dot should be (271920.72,65573.367), is (271920.72,65573.367)
-DEAL::Add and dot should be (362116.00,87312.664), is (362116.00,87312.664)
-Process #0
-Local range: [0, 17), global size: 17
-Vector data:
-(2.554e-02,1.842e+00) (3.311e-02,1.444e+01) (4.069e-02,2.704e+01) (4.827e-02,3.965e+01) (5.585e-02,5.225e+01) (6.342e-02,6.485e+01) (7.100e-02,7.745e+01) (7.858e-02,9.005e+01) (8.616e-02,1.027e+02) (9.373e-02,1.153e+02) (1.013e-01,1.279e+02) (1.089e-01,1.405e+02) (1.165e-01,1.531e+02) (1.240e-01,1.657e+02) (1.316e-01,1.783e+02) (1.392e-01,1.909e+02) (1.468e-01,2.035e+02) 
-DEAL::Vector add reference:   
-Process #0
-Local range: [0, 17), global size: 17
-Vector data:
-(2.554e-02,1.842e+00) (3.311e-02,1.444e+01) (4.069e-02,2.704e+01) (4.827e-02,3.965e+01) (5.585e-02,5.225e+01) (6.342e-02,6.485e+01) (7.100e-02,7.745e+01) (7.858e-02,9.005e+01) (8.616e-02,1.027e+02) (9.373e-02,1.153e+02) (1.013e-01,1.279e+02) (1.089e-01,1.405e+02) (1.165e-01,1.531e+02) (1.240e-01,1.657e+02) (1.316e-01,1.783e+02) (1.392e-01,1.909e+02) (1.468e-01,2.035e+02) 
-DEAL::Vector check reference: 
-DEAL::Add and dot should be (1334.7906,349.71041), is (1334.7906,349.71041)
-DEAL::Add and dot should be (91530.091,22094.701), is (91530.091,22094.701)
-DEAL::Add and dot should be (181725.40,43834.063), is (181725.40,43834.063)
-DEAL::Add and dot should be (271920.71,65573.368), is (271920.71,65573.368)
-DEAL::Add and dot should be (362116.02,87312.657), is (362116.02,87312.657)
-DEAL::OK
diff --git a/tests/lac/la_parallel_vector_add_and_dot_complex.with_complex_values=on.output.no_threads b/tests/lac/la_parallel_vector_add_and_dot_complex.with_complex_values=on.output.no_threads
deleted file mode 100644 (file)
index e45c25e..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-
-DEAL::Add and dot should be (1334.7905,349.71042), is (1334.7905,349.71042)
-DEAL::Add and dot should be (91530.094,22094.701), is (91530.094,22094.701)
-DEAL::Add and dot should be (181725.41,43834.062), is (181725.41,43834.062)
-DEAL::Add and dot should be (271920.72,65573.367), is (271920.72,65573.367)
-DEAL::Add and dot should be (362116.03,87312.656), is (362116.03,87312.656)
-Process #0
-Local range: [0, 17), global size: 17
-Vector data:
-(2.554e-02,1.842e+00) (3.311e-02,1.444e+01) (4.069e-02,2.704e+01) (4.827e-02,3.965e+01) (5.585e-02,5.225e+01) (6.342e-02,6.485e+01) (7.100e-02,7.745e+01) (7.858e-02,9.005e+01) (8.616e-02,1.027e+02) (9.373e-02,1.153e+02) (1.013e-01,1.279e+02) (1.089e-01,1.405e+02) (1.165e-01,1.531e+02) (1.240e-01,1.657e+02) (1.316e-01,1.783e+02) (1.392e-01,1.909e+02) (1.468e-01,2.035e+02) 
-DEAL::Vector add reference:   
-Process #0
-Local range: [0, 17), global size: 17
-Vector data:
-(2.554e-02,1.842e+00) (3.311e-02,1.444e+01) (4.069e-02,2.704e+01) (4.827e-02,3.965e+01) (5.585e-02,5.225e+01) (6.342e-02,6.485e+01) (7.100e-02,7.745e+01) (7.858e-02,9.005e+01) (8.616e-02,1.027e+02) (9.373e-02,1.153e+02) (1.013e-01,1.279e+02) (1.089e-01,1.405e+02) (1.165e-01,1.531e+02) (1.240e-01,1.657e+02) (1.316e-01,1.783e+02) (1.392e-01,1.909e+02) (1.468e-01,2.035e+02) 
-DEAL::Vector check reference: 
-DEAL::Add and dot should be (1334.7906,349.71041), is (1334.7906,349.71041)
-DEAL::Add and dot should be (91530.091,22094.701), is (91530.091,22094.701)
-DEAL::Add and dot should be (181725.40,43834.063), is (181725.40,43834.063)
-DEAL::Add and dot should be (271920.71,65573.368), is (271920.71,65573.368)
-DEAL::Add and dot should be (362116.02,87312.657), is (362116.02,87312.657)
-DEAL::OK
index d9c32f83177f2d6a38d2d7b25ac3588f4887b183..4154efc72850a2cd540330cded4886a7ab883d26 100644 (file)
@@ -63,8 +63,18 @@ check()
           deallog << std::endl;
         }
 
-      deallog << "Add and dot should be " << prod / static_cast<number>(size)
-              << ", is " << prod_check / static_cast<number>(size) << std::endl;
+      deallog << "Add and dot is ";
+      if (std::abs(prod - prod_check) <
+          4. *
+            std::abs(
+              std::numeric_limits<
+                typename numbers::NumberTraits<number>::real_type>::epsilon()) *
+            std::sqrt(static_cast<double>(size)) * size)
+        deallog << "correct" << std::endl;
+      else
+        deallog << "wrong; should be " << prod / static_cast<number>(size)
+                << ", is " << prod_check / static_cast<number>(size)
+                << std::endl;
     }
 }
 
@@ -74,7 +84,7 @@ main()
 {
   std::ofstream logfile("output");
   deallog << std::fixed;
-  deallog << std::setprecision(2);
+  deallog << std::setprecision(10);
   deallog.attach(logfile);
 
   check<float>();
index d70ce10ee8594a9dca59d4473ed9c334541b18c7..00200f3fa07542a8da542bbcae4fee98e863f2e4 100644 (file)
@@ -1,15 +1,15 @@
 
-DEAL::Add and dot should be 0.30, is 0.30
-DEAL::Add and dot should be 13.40, is 13.40
-DEAL::Add and dot should be 26.50, is 26.50
-DEAL::Add and dot should be 39.61, is 39.61
-DEAL::Add and dot should be 52.71, is 52.71
-DEAL::Vector add reference:   0.03 0.03 0.04 0.05 0.06 0.06 0.07 0.08 0.09 0.09 0.10 0.11 0.12 0.12 0.13 0.14 0.15 
-DEAL::Vector check reference: 0.03 0.03 0.04 0.05 0.06 0.06 0.07 0.08 0.09 0.09 0.10 0.11 0.12 0.12 0.13 0.14 0.15 
-DEAL::Vector add constant:    1.03 1.03 1.04 1.05 1.06 1.06 1.07 1.08 1.09 1.09 1.10 1.11 1.12 1.12 1.13 1.14 1.15 
-DEAL::Add and dot should be 0.30, is 0.30
-DEAL::Add and dot should be 13.40, is 13.40
-DEAL::Add and dot should be 26.50, is 26.50
-DEAL::Add and dot should be 39.61, is 39.61
-DEAL::Add and dot should be 52.71, is 52.71
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Vector add reference:   0.0255360000 0.0331136000 0.0406912000 0.0482688000 0.0558464000 0.0634240000 0.0710016000 0.0785792000 0.0861568000 0.0937344000 0.1013120000 0.1088896000 0.1164672000 0.1240448000 0.1316224000 0.1392000000 0.1467776000 
+DEAL::Vector check reference: 0.0255360000 0.0331136000 0.0406912000 0.0482688000 0.0558464000 0.0634240000 0.0710016000 0.0785792000 0.0861568000 0.0937344000 0.1013120000 0.1088896000 0.1164672000 0.1240448000 0.1316224000 0.1392000000 0.1467776000 
+DEAL::Vector add constant:    1.0255360000 1.0331136000 1.0406912000 1.0482688000 1.0558464000 1.0634240000 1.0710016000 1.0785792000 1.0861568000 1.0937344000 1.1013120000 1.1088896000 1.1164672000 1.1240448000 1.1316224000 1.1392000000 1.1467776000 
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
 DEAL::OK
index c732258cab86aa3ff81266353e4502494dc868c2..8ae2aba7581247a93b8b66c7c4be0363c6bf2ba2 100644 (file)
@@ -1,20 +1,20 @@
 
-DEAL::Add and dot should be 0.30, is 0.30
-DEAL::Add and dot should be 13.40, is 13.40
-DEAL::Add and dot should be 26.50, is 26.50
-DEAL::Add and dot should be 39.61, is 39.61
-DEAL::Add and dot should be 52.71, is 52.71
-DEAL::Vector add reference:   0.03 0.03 0.04 0.05 0.06 0.06 0.07 0.08 0.09 0.09 0.10 0.11 0.12 0.12 0.13 0.14 0.15 
-DEAL::Vector check reference: 0.03 0.03 0.04 0.05 0.06 0.06 0.07 0.08 0.09 0.09 0.10 0.11 0.12 0.12 0.13 0.14 0.15 
-DEAL::Vector add constant:    1.03 1.03 1.04 1.05 1.06 1.06 1.07 1.08 1.09 1.09 1.10 1.11 1.12 1.12 1.13 1.14 1.15 
-DEAL::Add and dot should be 0.30, is 0.30
-DEAL::Add and dot should be 13.40, is 13.40
-DEAL::Add and dot should be 26.50, is 26.50
-DEAL::Add and dot should be 39.61, is 39.61
-DEAL::Add and dot should be 52.71, is 52.71
-DEAL::Add and dot should be (0.30,0.00), is (0.30,0.00)
-DEAL::Add and dot should be (13.40,0.00), is (13.40,0.00)
-DEAL::Add and dot should be (26.50,0.00), is (26.50,0.00)
-DEAL::Add and dot should be (39.61,0.00), is (39.61,0.00)
-DEAL::Add and dot should be (52.71,0.00), is (52.71,0.00)
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Vector add reference:   0.0255360000 0.0331136000 0.0406912000 0.0482688000 0.0558464000 0.0634240000 0.0710016000 0.0785792000 0.0861568000 0.0937344000 0.1013120000 0.1088896000 0.1164672000 0.1240448000 0.1316224000 0.1392000000 0.1467776000 
+DEAL::Vector check reference: 0.0255360000 0.0331136000 0.0406912000 0.0482688000 0.0558464000 0.0634240000 0.0710016000 0.0785792000 0.0861568000 0.0937344000 0.1013120000 0.1088896000 0.1164672000 0.1240448000 0.1316224000 0.1392000000 0.1467776000 
+DEAL::Vector add constant:    1.0255360000 1.0331136000 1.0406912000 1.0482688000 1.0558464000 1.0634240000 1.0710016000 1.0785792000 1.0861568000 1.0937344000 1.1013120000 1.1088896000 1.1164672000 1.1240448000 1.1316224000 1.1392000000 1.1467776000 
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
 DEAL::OK
index e396febe5f05e56afdefce00b26bb05282ecf290..f86fd6453e2af8216b659ce2dea52d9fa0b8ba1a 100644 (file)
@@ -57,8 +57,15 @@ check()
           deallog << std::endl;
         }
 
-      deallog << "Add and dot should be " << prod / static_cast<number>(size)
-              << ", is " << prod_check / static_cast<number>(size) << std::endl;
+      deallog << "Add and dot is ";
+      if (std::abs(prod - prod_check) <
+          4. * std::numeric_limits<number>::epsilon() *
+            std::sqrt(static_cast<number>(size)) * size)
+        deallog << "correct" << std::endl;
+      else
+        deallog << "wrong; should be " << prod / static_cast<number>(size)
+                << ", is " << prod_check / static_cast<number>(size)
+                << std::endl;
     }
 }
 
index 47298b4e6f5ce822bdc9fc01b269741193a5fb95..4ce9557a2ef4d2fb8e472616149fb454fb85a0f1 100644 (file)
@@ -1,9 +1,9 @@
 
-DEAL::Add and dot should be (1334.7905,349.71042), is (1334.7905,349.71042)
-DEAL::Add and dot should be (91530.086,22094.701), is (91530.086,22094.701)
-DEAL::Add and dot should be (181725.41,43834.066), is (181725.41,43834.066)
-DEAL::Add and dot should be (271920.69,65573.367), is (271920.69,65573.367)
-DEAL::Add and dot should be (362116.03,87312.656), is (362116.03,87312.656)
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
 IndexSet: {[0,16]}
 
 [0]: (2.554e-02,1.842e+00)
@@ -44,9 +44,9 @@ IndexSet: {[0,16]}
 [15]: (1.392e-01,1.909e+02)
 [16]: (1.468e-01,2.035e+02)
 DEAL::Vector check reference: 
-DEAL::Add and dot should be (1334.7906,349.71041), is (1334.7906,349.71041)
-DEAL::Add and dot should be (91530.091,22094.701), is (91530.091,22094.701)
-DEAL::Add and dot should be (181725.40,43834.063), is (181725.40,43834.063)
-DEAL::Add and dot should be (271920.71,65573.368), is (271920.71,65573.368)
-DEAL::Add and dot should be (362116.02,87312.657), is (362116.02,87312.657)
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
 DEAL::OK
diff --git a/tests/lac/la_vector_add_and_dot_complex.with_complex_values=on.output.DEAL_II_MAX_THREADS2 b/tests/lac/la_vector_add_and_dot_complex.with_complex_values=on.output.DEAL_II_MAX_THREADS2
deleted file mode 100644 (file)
index 7cc4b3f..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-
-DEAL::Add and dot should be (1334.7905,349.71042), is (1334.7905,349.71042)
-DEAL::Add and dot should be (91530.094,22094.703), is (91530.094,22094.703)
-DEAL::Add and dot should be (181725.41,43834.062), is (181725.41,43834.062)
-DEAL::Add and dot should be (271920.72,65573.367), is (271920.72,65573.367)
-DEAL::Add and dot should be (362116.00,87312.664), is (362116.00,87312.664)
-IndexSet: {[0,16]}
-
-[0]: (2.554e-02,1.842e+00)
-[1]: (3.311e-02,1.444e+01)
-[2]: (4.069e-02,2.704e+01)
-[3]: (4.827e-02,3.965e+01)
-[4]: (5.585e-02,5.225e+01)
-[5]: (6.342e-02,6.485e+01)
-[6]: (7.100e-02,7.745e+01)
-[7]: (7.858e-02,9.005e+01)
-[8]: (8.616e-02,1.027e+02)
-[9]: (9.373e-02,1.153e+02)
-[10]: (1.013e-01,1.279e+02)
-[11]: (1.089e-01,1.405e+02)
-[12]: (1.165e-01,1.531e+02)
-[13]: (1.240e-01,1.657e+02)
-[14]: (1.316e-01,1.783e+02)
-[15]: (1.392e-01,1.909e+02)
-[16]: (1.468e-01,2.035e+02)
-DEAL::Vector add reference:   
-IndexSet: {[0,16]}
-
-[0]: (2.554e-02,1.842e+00)
-[1]: (3.311e-02,1.444e+01)
-[2]: (4.069e-02,2.704e+01)
-[3]: (4.827e-02,3.965e+01)
-[4]: (5.585e-02,5.225e+01)
-[5]: (6.342e-02,6.485e+01)
-[6]: (7.100e-02,7.745e+01)
-[7]: (7.858e-02,9.005e+01)
-[8]: (8.616e-02,1.027e+02)
-[9]: (9.373e-02,1.153e+02)
-[10]: (1.013e-01,1.279e+02)
-[11]: (1.089e-01,1.405e+02)
-[12]: (1.165e-01,1.531e+02)
-[13]: (1.240e-01,1.657e+02)
-[14]: (1.316e-01,1.783e+02)
-[15]: (1.392e-01,1.909e+02)
-[16]: (1.468e-01,2.035e+02)
-DEAL::Vector check reference: 
-DEAL::Add and dot should be (1334.7906,349.71041), is (1334.7906,349.71041)
-DEAL::Add and dot should be (91530.091,22094.701), is (91530.091,22094.701)
-DEAL::Add and dot should be (181725.40,43834.063), is (181725.40,43834.063)
-DEAL::Add and dot should be (271920.71,65573.368), is (271920.71,65573.368)
-DEAL::Add and dot should be (362116.02,87312.657), is (362116.02,87312.657)
-DEAL::OK
diff --git a/tests/lac/la_vector_add_and_dot_complex.with_complex_values=on.output.no_threads b/tests/lac/la_vector_add_and_dot_complex.with_complex_values=on.output.no_threads
deleted file mode 100644 (file)
index 3549a17..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-
-DEAL::Add and dot should be (1334.7905,349.71042), is (1334.7905,349.71042)
-DEAL::Add and dot should be (91530.094,22094.701), is (91530.094,22094.701)
-DEAL::Add and dot should be (181725.41,43834.062), is (181725.41,43834.062)
-DEAL::Add and dot should be (271920.72,65573.367), is (271920.72,65573.367)
-DEAL::Add and dot should be (362116.03,87312.656), is (362116.03,87312.656)
-IndexSet: {[0,16]}
-
-[0]: (2.554e-02,1.842e+00)
-[1]: (3.311e-02,1.444e+01)
-[2]: (4.069e-02,2.704e+01)
-[3]: (4.827e-02,3.965e+01)
-[4]: (5.585e-02,5.225e+01)
-[5]: (6.342e-02,6.485e+01)
-[6]: (7.100e-02,7.745e+01)
-[7]: (7.858e-02,9.005e+01)
-[8]: (8.616e-02,1.027e+02)
-[9]: (9.373e-02,1.153e+02)
-[10]: (1.013e-01,1.279e+02)
-[11]: (1.089e-01,1.405e+02)
-[12]: (1.165e-01,1.531e+02)
-[13]: (1.240e-01,1.657e+02)
-[14]: (1.316e-01,1.783e+02)
-[15]: (1.392e-01,1.909e+02)
-[16]: (1.468e-01,2.035e+02)
-DEAL::Vector add reference:   
-IndexSet: {[0,16]}
-
-[0]: (2.554e-02,1.842e+00)
-[1]: (3.311e-02,1.444e+01)
-[2]: (4.069e-02,2.704e+01)
-[3]: (4.827e-02,3.965e+01)
-[4]: (5.585e-02,5.225e+01)
-[5]: (6.342e-02,6.485e+01)
-[6]: (7.100e-02,7.745e+01)
-[7]: (7.858e-02,9.005e+01)
-[8]: (8.616e-02,1.027e+02)
-[9]: (9.373e-02,1.153e+02)
-[10]: (1.013e-01,1.279e+02)
-[11]: (1.089e-01,1.405e+02)
-[12]: (1.165e-01,1.531e+02)
-[13]: (1.240e-01,1.657e+02)
-[14]: (1.316e-01,1.783e+02)
-[15]: (1.392e-01,1.909e+02)
-[16]: (1.468e-01,2.035e+02)
-DEAL::Vector check reference: 
-DEAL::Add and dot should be (1334.7906,349.71041), is (1334.7906,349.71041)
-DEAL::Add and dot should be (91530.091,22094.701), is (91530.091,22094.701)
-DEAL::Add and dot should be (181725.40,43834.063), is (181725.40,43834.063)
-DEAL::Add and dot should be (271920.71,65573.368), is (271920.71,65573.368)
-DEAL::Add and dot should be (362116.02,87312.657), is (362116.02,87312.657)
-DEAL::OK
index 814940b222914afe153c163d8ce2502e0a8fd7db..7a295de9992c21e3ceaf603ec2b650906b112fcb 100644 (file)
@@ -53,8 +53,18 @@ check()
           check.print(deallog);
         }
 
-      deallog << "Add and dot should be " << prod / static_cast<number>(size)
-              << ", is " << prod_check / static_cast<number>(size) << std::endl;
+      deallog << "Add and dot is ";
+      if (std::abs(prod - prod_check) <
+          4. *
+            std::abs(
+              std::numeric_limits<
+                typename numbers::NumberTraits<number>::real_type>::epsilon()) *
+            std::sqrt(static_cast<double>(size)) * size)
+        deallog << "correct" << std::endl;
+      else
+        deallog << "wrong; should be " << prod / static_cast<number>(size)
+                << ", is " << prod_check / static_cast<number>(size)
+                << std::endl;
     }
 }
 
@@ -64,7 +74,7 @@ main()
 {
   std::ofstream logfile("output");
   deallog << std::fixed;
-  deallog << std::setprecision(2);
+  deallog << std::setprecision(10);
   deallog.attach(logfile);
 
   check<float>();
index dc764c0dd478d8b2df978468313060c0da666cb3..3364e9398bb7017106011e609453a47ff6c45069 100644 (file)
@@ -1,19 +1,19 @@
 
-DEAL::Add and dot should be 0.30, is 0.30
-DEAL::Add and dot should be 13.40, is 13.40
-DEAL::Add and dot should be 26.50, is 26.50
-DEAL::Add and dot should be 39.61, is 39.61
-DEAL::Add and dot should be 52.71, is 52.71
-DEAL::Vector add reference:   0.03   0.03   0.04   0.05   0.06   0.06   0.07   0.08   0.09   0.09   0.10   0.11   0.12   0.12   0.13   0.14   0.15   
-DEAL::Vector check reference: 0.03   0.03   0.04   0.05   0.06   0.06   0.07   0.08   0.09   0.09   0.10   0.11   0.12   0.12   0.13   0.14   0.15   
-DEAL::Add and dot should be 0.30, is 0.30
-DEAL::Add and dot should be 13.40, is 13.40
-DEAL::Add and dot should be 26.50, is 26.50
-DEAL::Add and dot should be 39.61, is 39.61
-DEAL::Add and dot should be 52.71, is 52.71
-DEAL::Add and dot should be 0.30, is 0.30
-DEAL::Add and dot should be 13.40, is 13.40
-DEAL::Add and dot should be 26.50, is 26.50
-DEAL::Add and dot should be 39.61, is 39.61
-DEAL::Add and dot should be 52.71, is 52.71
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Vector add reference:   0.0255360000 0.0331136000 0.0406912000 0.0482688000 0.0558464000 0.0634240000 0.0710016000 0.0785792000 0.0861568000 0.0937344000 0.1013120000 0.1088896000 0.1164672000 0.1240448000 0.1316224000 0.1392000000 0.1467776000 
+DEAL::Vector check reference: 0.0255360000 0.0331136000 0.0406912000 0.0482688000 0.0558464000 0.0634240000 0.0710016000 0.0785792000 0.0861568000 0.0937344000 0.1013120000 0.1088896000 0.1164672000 0.1240448000 0.1316224000 0.1392000000 0.1467776000 
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
 DEAL::OK
index 329e9f8d540501750a5c2189f5f576482908ef28..d5ac782a07f2423ffdfb7cc489bc16acf499b7e5 100644 (file)
@@ -1,24 +1,24 @@
 
-DEAL::Add and dot should be 0.30, is 0.30
-DEAL::Add and dot should be 13.40, is 13.40
-DEAL::Add and dot should be 26.50, is 26.50
-DEAL::Add and dot should be 39.61, is 39.61
-DEAL::Add and dot should be 52.71, is 52.71
-DEAL::Vector add reference:   0.03   0.03   0.04   0.05   0.06   0.06   0.07   0.08   0.09   0.09   0.10   0.11   0.12   0.12   0.13   0.14   0.15   
-DEAL::Vector check reference: 0.03   0.03   0.04   0.05   0.06   0.06   0.07   0.08   0.09   0.09   0.10   0.11   0.12   0.12   0.13   0.14   0.15   
-DEAL::Add and dot should be 0.30, is 0.30
-DEAL::Add and dot should be 13.40, is 13.40
-DEAL::Add and dot should be 26.50, is 26.50
-DEAL::Add and dot should be 39.61, is 39.61
-DEAL::Add and dot should be 52.71, is 52.71
-DEAL::Add and dot should be 0.30, is 0.30
-DEAL::Add and dot should be 13.40, is 13.40
-DEAL::Add and dot should be 26.50, is 26.50
-DEAL::Add and dot should be 39.61, is 39.61
-DEAL::Add and dot should be 52.71, is 52.71
-DEAL::Add and dot should be (0.30,0.00), is (0.30,0.00)
-DEAL::Add and dot should be (13.40,0.00), is (13.40,0.00)
-DEAL::Add and dot should be (26.50,0.00), is (26.50,0.00)
-DEAL::Add and dot should be (39.61,0.00), is (39.61,0.00)
-DEAL::Add and dot should be (52.71,0.00), is (52.71,0.00)
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Vector add reference:   0.0255360000 0.0331136000 0.0406912000 0.0482688000 0.0558464000 0.0634240000 0.0710016000 0.0785792000 0.0861568000 0.0937344000 0.1013120000 0.1088896000 0.1164672000 0.1240448000 0.1316224000 0.1392000000 0.1467776000 
+DEAL::Vector check reference: 0.0255360000 0.0331136000 0.0406912000 0.0482688000 0.0558464000 0.0634240000 0.0710016000 0.0785792000 0.0861568000 0.0937344000 0.1013120000 0.1088896000 0.1164672000 0.1240448000 0.1316224000 0.1392000000 0.1467776000 
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
 DEAL::OK
index 050b0c37ff6d2120c337cc2bb7c1a86e4800f1a9..20396444de540481c052f25bca186e01d48f4118 100644 (file)
@@ -54,8 +54,15 @@ check()
           check.print(deallog);
         }
 
-      deallog << "Add and dot should be " << prod / static_cast<number>(size)
-              << ", is " << prod_check / static_cast<number>(size) << std::endl;
+      deallog << "Add and dot is ";
+      if (std::abs(prod - prod_check) <
+          4. * std::abs(std::numeric_limits<number>::epsilon()) *
+            std::sqrt(static_cast<double>(size)) * size)
+        deallog << "correct" << std::endl;
+      else
+        deallog << "wrong; should be " << prod / static_cast<number>(size)
+                << ", is " << prod_check / static_cast<number>(size)
+                << std::endl;
     }
 }
 
index 0a4e5e5e28648cc594b880e1ff693594f26003b9..71c7dd41aa7db67e480b93bbbca5fa68e6ff5cf9 100644 (file)
@@ -1,14 +1,14 @@
 
-DEAL::Add and dot should be (1334.7905,349.71042), is (1334.7905,349.71042)
-DEAL::Add and dot should be (91530.086,22094.701), is (91530.086,22094.701)
-DEAL::Add and dot should be (181725.41,43834.066), is (181725.41,43834.066)
-DEAL::Add and dot should be (271920.69,65573.367), is (271920.69,65573.367)
-DEAL::Add and dot should be (362116.03,87312.656), is (362116.03,87312.656)
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
 DEAL::Vector add reference:   (0.025536000,1.8415145) (0.033113600,14.442955) (0.040691200,27.044395) (0.048268800,39.645835) (0.055846400,52.247275) (0.063424000,64.848715) (0.071001600,77.450155) (0.078579200,90.051595) (0.086156800,102.65303) (0.093734400,115.25447) (0.10131200,127.85591) (0.10888960,140.45735) (0.11646720,153.05879) (0.12404480,165.66023) (0.13162240,178.26167) (0.13920000,190.86311) (0.14677760,203.46455) 
 DEAL::Vector check reference: (0.025536000,1.8415145) (0.033113600,14.442955) (0.040691200,27.044395) (0.048268800,39.645835) (0.055846400,52.247275) (0.063424000,64.848715) (0.071001600,77.450155) (0.078579200,90.051595) (0.086156800,102.65303) (0.093734400,115.25447) (0.10131200,127.85591) (0.10888960,140.45735) (0.11646720,153.05879) (0.12404480,165.66023) (0.13162240,178.26167) (0.13920000,190.86311) (0.14677760,203.46455) 
-DEAL::Add and dot should be (1334.7906,349.71041), is (1334.7906,349.71041)
-DEAL::Add and dot should be (91530.091,22094.701), is (91530.091,22094.701)
-DEAL::Add and dot should be (181725.40,43834.063), is (181725.40,43834.063)
-DEAL::Add and dot should be (271920.71,65573.368), is (271920.71,65573.368)
-DEAL::Add and dot should be (362116.02,87312.657), is (362116.02,87312.657)
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
+DEAL::Add and dot is correct
 DEAL::OK
diff --git a/tests/lac/vector_add_and_dot_complex.with_complex_values=on.output.avx512 b/tests/lac/vector_add_and_dot_complex.with_complex_values=on.output.avx512
new file mode 100644 (file)
index 0000000..6515de9
--- /dev/null
@@ -0,0 +1,14 @@
+
+DEAL::Add and dot should be (1334.7905,349.71042), is (1334.7905,349.71042)
+DEAL::Add and dot should be (91530.086,22094.701), is (91530.086,22094.701)
+DEAL::Add and dot should be (181725.41,43834.066), is (181725.41,43834.066)
+DEAL::Add and dot should be (271920.69,65573.367), is (271920.69,65573.367)
+DEAL::Add and dot should be (362116.03,87312.664), is (362116.03,87312.656)
+DEAL::Vector add reference:   (0.025536000,1.8415145) (0.033113600,14.442955) (0.040691200,27.044395) (0.048268800,39.645835) (0.055846400,52.247275) (0.063424000,64.848715) (0.071001600,77.450155) (0.078579200,90.051595) (0.086156800,102.65303) (0.093734400,115.25447) (0.10131200,127.85591) (0.10888960,140.45735) (0.11646720,153.05879) (0.12404480,165.66023) (0.13162240,178.26167) (0.13920000,190.86311) (0.14677760,203.46455) 
+DEAL::Vector check reference: (0.025536000,1.8415145) (0.033113600,14.442955) (0.040691200,27.044395) (0.048268800,39.645835) (0.055846400,52.247275) (0.063424000,64.848715) (0.071001600,77.450155) (0.078579200,90.051595) (0.086156800,102.65303) (0.093734400,115.25447) (0.10131200,127.85591) (0.10888960,140.45735) (0.11646720,153.05879) (0.12404480,165.66023) (0.13162240,178.26167) (0.13920000,190.86311) (0.14677760,203.46455) 
+DEAL::Add and dot should be (1334.7906,349.71041), is (1334.7906,349.71041)
+DEAL::Add and dot should be (91530.091,22094.701), is (91530.091,22094.701)
+DEAL::Add and dot should be (181725.40,43834.063), is (181725.40,43834.063)
+DEAL::Add and dot should be (271920.71,65573.368), is (271920.71,65573.368)
+DEAL::Add and dot should be (362116.02,87312.657), is (362116.02,87312.657)
+DEAL::OK

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.