Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
gauss_legendre_check.icc
Go to the documentation of this file.
1
21#include "rheolef/compiler.h"
22#include <iterator>
23template <class Iterator1, class Iterator2, class Size>
24typename std::iterator_traits<Iterator1>::value_type
25gauss_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}
Expr1::float_type T
Definition field_expr.h:230
std::iterator_traits< Iterator1 >::value_type gauss_legendre_check(Size R, Iterator1 zeta, Iterator2 omega, Size order)