]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Avoid using one-dimensional arrays in place of multi-dimensional ones 6654/head
authorDaniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Wed, 23 May 2018 12:42:30 +0000 (14:42 +0200)
committerDaniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Wed, 23 May 2018 13:50:12 +0000 (15:50 +0200)
examples/doxygen/block_matrix_array.cc
tests/lac/householder.cc
tests/lapack/full_matrix_01.cc
tests/lapack/full_matrix_03.cc
tests/lapack/full_matrix_04.cc
tests/lapack/full_matrix_05.cc
tests/lapack/full_matrix_06.cc
tests/lapack/full_matrix_07.cc
tests/quick_tests/lapack.cc

index e561c1085dceb260c4dbd6cdf90143253ac996e2..a374d44bd0a34b6e9566bf44c83e8b80f88a8415 100644 (file)
 
 using namespace dealii;
 
-double Adata[] =
+double Adata[4][4] =
 {
-  4., .5, .1, 0.,
-  .5, 4., .5, .1,
-  .1, .5, 4., .5,
-  0., .1, .5, 4.
+  {4., .5, .1, 0.},
+  {.5, 4., .5, .1},
+  {.1, .5, 4., .5},
+  {0., .1, .5, 4.}
 };
 
-double B1data[] =
+double B1data[4][2] =
 {
-  .5, .1,
-  .4, .2,
-  .3, .3,
-  .2, .4
+  {.5, .1},
+  {.4, .2},
+  {.3, .3},
+  {.2, .4}
 };
 
-double B2data[] =
+double B2data[2][4] =
 {
-  .3, 0., -.3, 0.,
-  -.3, 0., .3, 0.
+  {.3, 0., -.3, 0.},
+  {-.3, 0., .3, 0.}
 };
 
-double Cdata[] =
+double Cdata[2][2] =
 {
-  8., 1.,
-  1., 8.
+  {8., 1.},
+  {1., 8.}
 };
 
 int main ()
@@ -65,10 +65,10 @@ int main ()
   FullMatrix<float> B2(2,4);
   FullMatrix<float> C(2,2);
 
-  A.fill(Adata);
-  B1.fill(B1data);
-  B2.fill(B2data);
-  C.fill(Cdata);
+  A.fill(&Adata[0][0]);
+  B1.fill(&B1data[0][0]);
+  B2.fill(&B2data[0][0]);
+  C.fill(&Cdata[0][0]);
 
   BlockMatrixArray<double> matrix(2, 2);
 
index 25df1c1f87050916dfdc9fe0495ec7a1e4d6ca9f..5ef1aaf6fbff82a9a8e6da8fca84928dc1bdeaa6 100644 (file)
 #include <deal.II/lac/vector.h>
 
 
-const double rect[] =
+const double rect[3][4] =
 {
-  4., 3., 2., 1.,
-  5., 8., 1., -2.,
-  11., 13., -4., -5
+  {4., 3., 2., 1.},
+  {5., 8., 1., -2.},
+  {11., 13., -4., -5}
 };
 
 
@@ -36,7 +36,7 @@ int main()
   deallog << std::setprecision(3);
   deallog.attach(logfile);
 
-  FullMatrix<double> A(4,3,rect);
+  FullMatrix<double> A(4,3,&rect[0][0]);
   Householder<double> H(A);
 
   Vector<double> u(4);
index 42a8af0c94fb15d3def450fa4c89148ad687f198..28a89aae486af8648378068b7aeb6940462f4fab 100644 (file)
  * lambda = 5     v = (0, 1,-1, 0)
  * lambda = 5     v = (0, 0, 1,-1)
  */
-const double symm[] =
+const double symm[4][4] =
 {
-  4., -1., -1., -1.,
-  -1., 4., -1., -1.,
-  -1., -1., 4., -1.,
-  -1., -1., -1., 4.
+  {4., -1., -1., -1.},
+  {-1., 4., -1., -1.},
+  {-1., -1., 4., -1.},
+  {-1., -1., -1., 4.}
 };
 
-const double rect[] =
+const double rect[3][4] =
 {
-  4., 3., 2., 1.,
-  5., 8., 1., -2.,
-  11., 13., -4., -5
+  {4., 3., 2., 1.},
+  {5., 8., 1., -2.},
+  {11., 13., -4., -5}
 };
 
 
@@ -100,14 +100,13 @@ int main()
   logfile.precision(3);
   deallog.attach(logfile);
 
-  test_rect(3,4,rect);
-  test_rect(4,3,rect);
-  test_rect(4,4,symm);
+  test_rect(3,4,&rect[0][0]);
+  test_rect(4,3,&rect[0][0]);
+  test_rect(4,4,&symm[0][0]);
 
   // Test symmetric system
-  FullMatrix<double> A(4,4,symm);
+  FullMatrix<double> A(4,4,&symm[0][0]);
   LAPACKFullMatrix<double> LA(4,4);
-  A.fill(symm);
   LA = A;
   LA.compute_eigenvalues();
   for (unsigned int i=0; i<A.m(); ++i)
index f819032ad8f9ecdfab247b33153f07c7a7bbccbf..b764c66b0e1136fd878e3066a89b06597d849838 100644 (file)
  * lambda = 5     v = (0, 1,-1, 0)
  * lambda = 5     v = (0, 0, 1,-1)
  */
-const double symm[] =
+const double symm[4][4] =
 {
-  4., -1., -1., -1.,
-  -1., 4., -1., -1.,
-  -1., -1., 4., -1.,
-  -1., -1., -1., 4.
+  {4., -1., -1., -1.},
+  {-1., 4., -1., -1.},
+  {-1., -1., 4., -1.},
+  {-1., -1., -1., 4.}
 };
 
-const double rect[] =
+const double rect[3][4] =
 {
-  4., 3., 2., 1.,
-  5., 8., 1., -2.,
-  11., 13., -4., -5
+  {4., 3., 2., 1.},
+  {5., 8., 1., -2.},
+  {11., 13., -4., -5}
 };
 
 
@@ -116,14 +116,13 @@ int main()
   logfile.precision(3);
   deallog.attach(logfile);
 
-  test_rect(4,4,symm);
-  test_rect(4,3,rect);
-  test_rect(3,4,rect);
+  test_rect(4,4,&symm[0][0]);
+  test_rect(4,3,&rect[0][0]);
+  test_rect(3,4,&rect[0][0]);
 
   // Test symmetric system
-  FullMatrix<double> A(4,4,symm);
+  FullMatrix<double> A(4,4,&symm[0][0]);
   LAPACKFullMatrix<double> LA(4,4);
-  A.fill(symm);
   LA = A;
   LA.compute_eigenvalues();
   for (unsigned int i=0; i<A.m(); ++i)
index a3a2b5983f5ef917946ad223286de5644aa7c83f..9282f3146f2c6506a9043bbae0b6930387179e48 100644 (file)
  * lambda = 5     v = (0, 1,-1, 0)
  * lambda = 5     v = (0, 0, 1,-1)
  */
-const double symm[] =
+const double symm[4][4] =
 {
-  4., -1., -1., -1.,
-  -1., 4., -1., -1.,
-  -1., -1., 4., -1.,
-  -1., -1., -1., 4.
+  {4., -1., -1., -1.},
+  {-1., 4., -1., -1.},
+  {-1., -1., 4., -1.},
+  {-1., -1., -1., 4.}
 };
 
-const double rect[] =
+const double rect[3][4] =
 {
-  4., 3., 2., 1.,
-  5., 8., 1., -2.,
-  11., 13., -4., -5
+  {4., 3., 2., 1.},
+  {5., 8., 1., -2.},
+  {11., 13., -4., -5}
 };
 
 
@@ -118,7 +118,7 @@ int main()
   logfile.precision(3);
   deallog.attach(logfile);
 
-  test_rect(4,4,symm);
-  test_rect(4,3,rect);
-  test_rect(3,4,rect);
+  test_rect(4,4,&symm[0][0]);
+  test_rect(4,3,&rect[0][0]);
+  test_rect(3,4,&rect[0][0]);
 }
index 2fcd7c76c306e3e7090a2aa01abdca6c0bb1b608..c88dbea4fb1d3f86fb2457ea0efe1b7db9fa90f3 100644 (file)
 #include <iostream>
 #include <vector>
 
-const double left[] =
+const double left[4][4] =
 {
-  4., -1., -1., -1.,
-  -1., 4., -1., -1.,
-  -1., -1., 4., -1.,
-  -1., -1., -1., 4.
+  {4., -1., -1., -1.},
+  {-1., 4., -1., -1.},
+  {-1., -1., 4., -1.},
+  {-1., -1., -1., 4.}
 };
 
-const double right[] =
+const double right[4][4] =
 {
-  4., -1., -1., -1.,
-  -1., 5., -1., -1.,
-  -1., -1., 6., -1.,
-  -1., -1., -1., 7.
+  {4., -1., -1., -1.},
+  {-1., 5., -1., -1.},
+  {-1., -1., 6., -1.},
+  {-1., -1., -1., 7.}
 };
 
 
@@ -49,8 +49,8 @@ int main()
   logfile.precision(1);
   deallog.attach(logfile);
 
-  FullMatrix<double> A(4,4,left),
-             B(4,4,right);
+  FullMatrix<double> A(4,4,&left[0][0]),
+             B(4,4,&right[0][0]);
   LAPACKFullMatrix<double> LA(4,4),
                    LB(4,4);
   for (unsigned int itype=1; itype<=3; ++itype)
index 2b3885732fe9b29b30c72a7b2ba49f3c2fcc5326..5e1de7ea9e5719b103111cac213de8cf9a47e44a 100644 (file)
 #include <iostream>
 #include <vector>
 
-const double left[] =
+const double left[4][4] =
 {
-  4., -1., -1., -1.,
-  -1., 4., -1., -1.,
-  -1., -1., 4., -1.,
-  -1., -1., -1., 4.
+  {4., -1., -1., -1.},
+  {-1., 4., -1., -1.},
+  {-1., -1., 4., -1.},
+  {-1., -1., -1., 4.}
 };
 
-const double right[] =
+const double right[4][4] =
 {
-  4., -1., -1., -1.,
-  -1., 5., -1., -1.,
-  -1., -1., 6., -1.,
-  -1., -1., -1., 7.
+  {4., -1., -1., -1.},
+  {-1., 5., -1., -1.},
+  {-1., -1., 6., -1.},
+  {-1., -1., -1., 7.}
 };
 
 
@@ -50,8 +50,8 @@ int main()
   logfile.precision(1);
   deallog.attach(logfile);
 
-  FullMatrix<double> A(4,4,left),
-             B(4,4,right);
+  FullMatrix<double> A(4,4,&left[0][0]),
+             B(4,4,&right[0][0]);
   LAPACKFullMatrix<double> LA(4,4),
                    LB(4,4);
   for (unsigned int itype=1; itype<=3; ++itype)
index ee4f24ca174da2c00b59c738dd24c969a3efc2f4..37db40fdb9d6fe8df690bccf3cd142ec32faae52 100644 (file)
 #include <iostream>
 #include <vector>
 
-const double left[] =
+const double left[4][4] =
 {
-
-  1.75, -0.433012701892219, 0.0, 0.0,
-  -0.433012701892219, 1.25, 0.0, 0.0,
-  0.0, 0.0, 3.5, -0.5,
-  0.0, 0.0, -0.5, 3.5
+  {1.75, -0.433012701892219, 0.0, 0.0},
+  {-0.433012701892219, 1.25, 0.0, 0.0},
+  {0.0, 0.0, 3.5, -0.5},
+  {0.0, 0.0, -0.5, 3.5}
 };
 
 
@@ -43,7 +42,7 @@ int main()
   logfile.precision(1);
   deallog.attach(logfile);
 
-  FullMatrix<double> A(4,4,left);
+  FullMatrix<double> A(4,4,&left[0][0]);
   LAPACKFullMatrix<double> LA(4,4);
   LA = A;
   FullMatrix<double> eigenvectors;
index 24403c7c34cf8ae29ca49f7f71a9aad3df39ae1a..2223720985ae9271b0671d4eaa0a378c1d422aeb 100644 (file)
  * lambda = 5     v = (0, 1,-1, 0)
  * lambda = 5     v = (0, 0, 1,-1)
  */
-const double symm[] =
+const double symm[4][4] =
 {
-  4., -1., -1., -1.,
-  -1., 4., -1., -1.,
-  -1., -1., 4., -1.,
-  -1., -1., -1., 4.
+  {4., -1., -1., -1.},
+  {-1., 4., -1., -1.},
+  {-1., -1., 4., -1.},
+  {-1., -1., -1., 4.}
 };
 
-const double rect[] =
+const double rect[3][4] =
 {
-  4., 3., 2., 1.,
-  5., 8., 1., -2.,
-  11., 13., -4., -5
+  {4., 3., 2., 1.},
+  {5., 8., 1., -2.},
+  {11., 13., -4., -5}
 };
 
 using namespace dealii;
@@ -104,14 +104,13 @@ int main()
   logfile.precision(3);
   deallog.attach(logfile);
 
-  test_rect(3,4,rect);
-  test_rect(4,3,rect);
-  test_rect(4,4,symm);
+  test_rect(3,4,&rect[0][0]);
+  test_rect(4,3,&rect[0][0]);
+  test_rect(4,4,&symm[0][0]);
 
   // Test symmetric system
-  FullMatrix<double> A(4,4,symm);
+  FullMatrix<double> A(4,4,&symm[0][0]);
   LAPACKFullMatrix<double> LA(4,4);
-  A.fill(symm);
   LA = A;
   LA.compute_eigenvalues();
   for (unsigned int i=0; i<A.m(); ++i)

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.