13#ifndef GEOMETRIC_SEQUENCE_HH_
14#define GEOMETRIC_SEQUENCE_HH_
32template <
class Iterator>
33std::pair<typename std::iterator_traits<Iterator>::value_type,
typename std::iterator_traits<Iterator>::value_type>
36 typedef typename std::iterator_traits<Iterator>::value_type Scalar;
48 Scalar b[2] = {0.0, 0.0};
50 for ( ; first!=last; ++first) {
51 Scalar lna = std::log(*first);
59 return std::make_pair(std::exp(2*((2*n-1)*b[0]-3*b[1])/n/(n+1)),
60 std::exp( 2*(-3*b[0]+6*b[1]/(n-1))/n/(n+1)));
74template <
class Iterator>
76 typedef typename std::iterator_traits<Iterator>::value_type Scalar;
83 std::advance(first,k);
84 return std::accumulate(first,last,0.0) + cq.first*
power(cq.second,n)/(1-cq.second);
std::iterator_traits< Iterator >::value_type estimateGeometricTruncationError(Iterator first, Iterator last, int k)
Estimates errors of truncating geometrically convergent sequences.
std::pair< typename std::iterator_traits< Iterator >::value_type, typename std::iterator_traits< Iterator >::value_type > estimateGeometricSequence(Iterator first, Iterator last)
Estimates parameters of geometric sequence.
Dune::FieldVector< T, n > max(Dune::FieldVector< T, n > x, Dune::FieldVector< T, n > const &y)
Componentwise maximum.
R power(R base, int exp)
Computes integral powers of values in a multiplicative half-group.
Scalar distance(Point< Scalar, dim > const &first, Point< Scalar, dim > const &second)