From 2d6b18a62a595b9c47e18ca438c2d236939033f5 Mon Sep 17 00:00:00 2001 From: kronbichler Date: Sun, 31 Jul 2011 17:30:43 +0000 Subject: [PATCH] Cleanup of operations. Can now also be compiled with boost::numeric::interval. git-svn-id: https://svn.dealii.org/trunk@23985 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/source/base/polynomial.cc | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/deal.II/source/base/polynomial.cc b/deal.II/source/base/polynomial.cc index 972247184a..83f964bccc 100644 --- a/deal.II/source/base/polynomial.cc +++ b/deal.II/source/base/polynomial.cc @@ -92,7 +92,7 @@ namespace Polynomials Assert (std::fabs(tmp_lagrange_weight) < std::numeric_limits::max(), ExcMessage ("Overflow in computation of Lagrange denominator.")); #endif - lagrange_weight = 1./tmp_lagrange_weight; + lagrange_weight = static_cast(1.)/tmp_lagrange_weight; } @@ -164,7 +164,7 @@ namespace Polynomials for (unsigned int i=0; i(2) * values[1]; values[1] = values[1] * v + values[0]; values[0] *= v; } @@ -220,7 +220,7 @@ namespace Polynomials { for (int k=m-2; k>=static_cast(j); --k) a[k]+=x*a[k+1]; - values[j]=j_faculty*a[j]; + values[j]=static_cast(j_faculty)*a[j]; j_faculty*=j+1; } @@ -276,7 +276,7 @@ namespace Polynomials Polynomial::scale (std::vector &coefficients, const number factor) { - double f = 1.; + number f = 1.; for (typename std::vector::iterator c = coefficients.begin(); c != coefficients.end(); ++c) { @@ -616,7 +616,7 @@ namespace Polynomials std::vector newcoefficients (q->coefficients.size()-1); for (unsigned int i=1 ; icoefficients.size() ; ++i) - newcoefficients[i-1] = i * q->coefficients[i]; + newcoefficients[i-1] = number(i) * q->coefficients[i]; return Polynomial (newcoefficients); } @@ -643,7 +643,7 @@ namespace Polynomials std::vector newcoefficients (q->coefficients.size()+1); newcoefficients[0] = 0.; for (unsigned int i=0 ; icoefficients.size() ; ++i) - newcoefficients[i+1] = q->coefficients[i]/(i+1.); + newcoefficients[i+1] = q->coefficients[i]/number(i+1.); return Polynomial (newcoefficients); } @@ -654,11 +654,18 @@ namespace Polynomials void Polynomial::print (std::ostream& out) const { - for (int i=degree();i>=0;--i) + if (in_lagrange_product_form == true) { - out << static_cast(coefficients[i]) - << " x^" << i << std::endl; + out << lagrange_weight; + for (unsigned int i=0; i=0;--i) + { + out << coefficients[i] << " x^" << i << std::endl; + } } -- 2.39.5