]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Replace gsl_sf_legendre_Pl withstc_cxx17::legendre in tests. 11610/head
authorMarc Fehling <mafehling.git@gmail.com>
Sat, 23 Jan 2021 03:48:46 +0000 (20:48 -0700)
committerMarc Fehling <mafehling.git@gmail.com>
Sat, 23 Jan 2021 03:48:46 +0000 (20:48 -0700)
tests/fe/fe_series_02.cc
tests/fe/fe_series_04.cc
tests/fe/fe_series_05.cc
tests/numerics/smoothness_estimator_01.cc

index ac1b0a84cc9b7a6c7f983076a1f408348dcc67cf..f008bb17d15c307d82f41ef83d2726bc9afa255a 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <deal.II/base/function.h>
 #include <deal.II/base/quadrature_lib.h>
+#include <deal.II/base/std_cxx17/cmath.h>
 
 #include <deal.II/dofs/dof_handler.h>
 
@@ -33,8 +34,6 @@
 
 #include <deal.II/numerics/vector_tools.h>
 
-#include <gsl/gsl_sf_legendre.h>
-
 #include <iostream>
 
 #include "../tests.h"
@@ -75,12 +74,12 @@ LegendreFunction<dim>::value(const dealii::Point<dim> &point,
 
   double f = 0.0;
 
-  for (int l = 0; l < int(coefficients.size()); l++)
+  for (unsigned int l = 0; l < coefficients.size(); ++l)
     {
       const double m = 0.5;                // mid-point
       const double h = 0.5;                // half-length
       const double x = (point[0] - m) / h; // 1D only
-      f += sqrt(1.0 / h) * gsl_sf_legendre_Pl(l, x) * coefficients[l];
+      f += sqrt(1.0 / h) * std_cxx17::legendre(l, x) * coefficients[l];
     }
 
   return f;
index 37aa20627a744a08a162fc400eda12322cdffcc1..b361924b85c1d866fd2f1c8b535d84ece347acf8 100644 (file)
@@ -15,7 +15,7 @@
 
 
 // Test Legendre expansion in 1D for quadratic function coming from FE.
-// Also test that our interpretation of GSL function is correct to have
+// Also test that our interpretation of Legendre function is correct to have
 // an orthogonal basis.
 
 // MWE in Maxima
@@ -35,6 +35,7 @@ bfloat(C(3)), nouns;
 
 #include <deal.II/base/function.h>
 #include <deal.II/base/quadrature_lib.h>
+#include <deal.II/base/std_cxx17/cmath.h>
 
 #include <deal.II/dofs/dof_handler.h>
 
@@ -50,8 +51,6 @@ bfloat(C(3)), nouns;
 
 #include <deal.II/numerics/vector_tools.h>
 
-#include <gsl/gsl_sf_legendre.h>
-
 #include <iostream>
 
 #include "../tests.h"
@@ -152,7 +151,7 @@ test(const LegendreFunction<dim> &func, const unsigned int poly_degree)
 
 
 /**
- * Small test to first output Legendre coefficients from GSL at -1,0,1
+ * Small test to first output Legendre coefficients at -1,0,1
  * and then check that they are orthonormal
  */
 void
@@ -164,7 +163,7 @@ test_legendre_orthonormal(const unsigned int N)
     {
       deallog << "l=" << l << ": ";
       for (double x = -1.0; x <= 1.0; x += 1.0)
-        deallog << gsl_sf_legendre_Pl(l, x) << " ";
+        deallog << std_cxx17::legendre(l, x) << " ";
 
       deallog << std::endl;
     }
@@ -182,8 +181,8 @@ test_legendre_orthonormal(const unsigned int N)
             const double      h   = 0.5;              // half-length
             const double      x   = (x_q[0] - m) / h; // 1D only
             Assert(std::fabs(x) < 1.0, dealii::ExcInternalError());
-            const double L1 = std::sqrt(1.0 / h) * gsl_sf_legendre_Pl(k1, x);
-            const double L2 = std::sqrt(1.0 / h) * gsl_sf_legendre_Pl(k2, x);
+            const double L1 = std::sqrt(1.0 / h) * std_cxx17::legendre(k1, x);
+            const double L2 = std::sqrt(1.0 / h) * std_cxx17::legendre(k2, x);
             ortho += L1 * L2 * quadrature.weight(q);
           }
         ortho *= (1.0 + k1 + k2) / 2.0;
index 30d0e2ecb621f84ef74218cf8aa07cc100fcf329..a171ad63863832b1ce9cfbf5e09d7acebbb77c8e 100644 (file)
@@ -18,6 +18,7 @@
 // coefficients.
 #include <deal.II/base/function.h>
 #include <deal.II/base/quadrature_lib.h>
+#include <deal.II/base/std_cxx17/cmath.h>
 
 #include <deal.II/dofs/dof_handler.h>
 
@@ -33,8 +34,6 @@
 
 #include <deal.II/numerics/vector_tools.h>
 
-#include <gsl/gsl_sf_legendre.h>
-
 #include <iostream>
 
 #include "../tests.h"
@@ -73,8 +72,8 @@ Lh(const Point<dim> &x_q, const TableIndices<dim> &indices)
       const double x = 2.0 * (x_q[d] - 0.5);
       Assert((x_q[d] <= 1.0) && (x_q[d] >= 0.),
              ExcMessage("x_q is not in [0,1]" + Utilities::to_string(x_q[d])));
-      const int ind = indices[d];
-      res *= sqrt(2.0) * gsl_sf_legendre_Pl(ind, x);
+      const unsigned int ind = indices[d];
+      res *= sqrt(2.0) * std_cxx17::legendre(ind, x);
     }
   return res;
 }
index ddb576c32e5fd2294bffcc85c7006e2060b11d92..acb0cf48f87c91270cb17bba9b32e35621d2b7aa 100644 (file)
@@ -20,6 +20,7 @@
 
 #include <deal.II/base/function.h>
 #include <deal.II/base/quadrature_lib.h>
+#include <deal.II/base/std_cxx17/cmath.h>
 
 #include <deal.II/dofs/dof_handler.h>
 
@@ -37,8 +38,6 @@
 #include <deal.II/numerics/smoothness_estimator.h>
 #include <deal.II/numerics/vector_tools.h>
 
-#include <gsl/gsl_sf_legendre.h>
-
 #include <iostream>
 
 #include "../tests.h"
@@ -82,8 +81,8 @@ Lh(const Point<dim> &x_q, const TableIndices<dim> &indices)
       const double x = 2.0 * (x_q[d] - 0.5);
       Assert((x_q[d] <= 1.0) && (x_q[d] >= 0.),
              ExcMessage("x_q is not in [0,1]" + Utilities::to_string(x_q[d])));
-      const int ind = indices[d];
-      res *= sqrt(2.0) * gsl_sf_legendre_Pl(ind, x);
+      const unsigned int ind = indices[d];
+      res *= sqrt(2.0) * std_cxx17::legendre(ind, x);
     }
   return res;
 }

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.