Rheolef  7.1
an efficient C++ finite element environment
gauss_legendre_check.icc
Go to the documentation of this file.
1 #include "rheolef/compiler.h"
22 #include <iterator>
23 template <class Iterator1, class Iterator2, class Size>
24 typename std::iterator_traits<Iterator1>::value_type
25 gauss_legendre_check (Size R, Iterator1 zeta, Iterator2 omega, Size order) {
26  typedef typename std::iterator_traits<Iterator1>::value_type T;
27  T error = 0;
28  for (Size k = 0; k <= order; k++) {
29  T value = 0;
30  for (Size r = 0; r < R; r++) {
31  value += pow (zeta[r], k)*omega[r];
32  }
33  T exact = (k % 2 == 1) ? T(0.) : 2/T(k+1.);
34  error = std::max (error, fabs (exact - value));
35  }
36  typedef typename std::iterator_traits<Iterator1>::value_type T;
37  return error;
38 }
gauss_legendre_check
std::iterator_traits< Iterator1 >::value_type gauss_legendre_check(Size R, Iterator1 zeta, Iterator2 omega, Size order)
Definition: gauss_legendre_check.icc:25
mkgeo_ball.order
order
Definition: mkgeo_ball.sh:343
rheolef::pow
space_mult_list< T, M > pow(const space_basic< T, M > &X, size_t n)
Definition: space_mult.h:120
T
Expr1::float_type T
Definition: field_expr.h:261