diff --git a/dune/istl/bvector.hh b/dune/istl/bvector.hh index 6b2faeee151464ace9262f757d3ec6774af4dd7b..a8999c2d6c6916a4e0255e81f0098d9c4df995e0 100644 --- a/dune/istl/bvector.hh +++ b/dune/istl/bvector.hh @@ -164,49 +164,49 @@ namespace Dune { //===== norms //! one norm (sum over absolute values of entries) - double one_norm () const + typename FieldTraits<value_type>::real_type one_norm () const { - double sum=0; + typename FieldTraits<value_type>::real_type sum=0; for (size_type i=0; i<this->n; ++i) sum += (*this)[i].one_norm(); return sum; } //! simplified one norm (uses Manhattan norm for complex values) - double one_norm_real () const + typename FieldTraits<value_type>::real_type one_norm_real () const { - double sum=0; + typename FieldTraits<value_type>::real_type sum=0; for (size_type i=0; i<this->n; ++i) sum += (*this)[i].one_norm_real(); return sum; } //! two norm sqrt(sum over squared values of entries) - double two_norm () const + typename FieldTraits<value_type>::real_type two_norm () const { - double sum=0; + typename FieldTraits<value_type>::real_type sum=0; for (size_type i=0; i<this->n; ++i) sum += (*this)[i].two_norm2(); return sqrt(sum); } //! sqare of two norm (sum over squared values of entries), need for block recursion - double two_norm2 () const + typename FieldTraits<value_type>::real_type two_norm2 () const { - double sum=0; + typename FieldTraits<value_type>::real_type sum=0; for (size_type i=0; i<this->n; ++i) sum += (*this)[i].two_norm2(); return sum; } //! infinity norm (maximum of absolute values of entries) - double infinity_norm () const + typename FieldTraits<value_type>::real_type infinity_norm () const { - double max=0; + typename FieldTraits<value_type>::real_type max=0; for (size_type i=0; i<this->n; ++i) max = std::max(max,(*this)[i].infinity_norm()); return max; } //! simplified infinity norm (uses Manhattan norm for complex values) - double infinity_norm_real () const + typename FieldTraits<value_type>::real_type infinity_norm_real () const { - double max=0; + typename FieldTraits<value_type>::real_type max=0; for (size_type i=0; i<this->n; ++i) max = std::max(max,(*this)[i].infinity_norm_real()); return max; } @@ -809,49 +809,49 @@ namespace Dune { //===== norms //! one norm (sum over absolute values of entries) - double one_norm () const + typename FieldTraits<field_type>::real_type one_norm () const { - double sum=0; + typename FieldTraits<field_type>::real_type sum=0; for (size_type i=0; i<this->n; ++i) sum += (this->p)[i].one_norm(); return sum; } //! simplified one norm (uses Manhattan norm for complex values) - double one_norm_real () const + typename FieldTraits<field_type>::real_type one_norm_real () const { - double sum=0; + typename FieldTraits<field_type>::real_type sum=0; for (size_type i=0; i<this->n; ++i) sum += (this->p)[i].one_norm_real(); return sum; } //! two norm sqrt(sum over squared values of entries) - double two_norm () const + typename FieldTraits<field_type>::real_type two_norm () const { - double sum=0; + typename FieldTraits<field_type>::real_type sum=0; for (size_type i=0; i<this->n; ++i) sum += (this->p)[i].two_norm2(); return sqrt(sum); } //! sqare of two norm (sum over squared values of entries), need for block recursion - double two_norm2 () const + typename FieldTraits<field_type>::real_type two_norm2 () const { - double sum=0; + typename FieldTraits<field_type>::real_type sum=0; for (size_type i=0; i<this->n; ++i) sum += (this->p)[i].two_norm2(); return sum; } //! infinity norm (maximum of absolute values of entries) - double infinity_norm () const + typename FieldTraits<field_type>::real_type infinity_norm () const { - double max=0; + typename FieldTraits<field_type>::real_type max=0; for (size_type i=0; i<this->n; ++i) max = std::max(max,(this->p)[i].infinity_norm()); return max; } //! simplified infinity norm (uses Manhattan norm for complex values) - double infinity_norm_real () const + typename FieldTraits<field_type>::real_type infinity_norm_real () const { - double max=0; + typename FieldTraits<field_type>::real_type max=0; for (size_type i=0; i<this->n; ++i) max = std::max(max,(this->p)[i].infinity_norm_real()); return max; } diff --git a/dune/istl/paamg/smoother.hh b/dune/istl/paamg/smoother.hh index e117014ea8ce04110ca58222404e4d9f445fc285..27d0828086a9d3e107a1f7377ba3016e747745cf 100644 --- a/dune/istl/paamg/smoother.hh +++ b/dune/istl/paamg/smoother.hh @@ -458,7 +458,7 @@ namespace Dune template<class M, class X, class MO, class MS, class A> class SeqOverlappingSchwarz; - class MultiplicativeSchwarzMode; + struct MultiplicativeSchwarzMode; namespace Amg { diff --git a/dune/istl/solver.hh b/dune/istl/solver.hh index 8ace9496b486558c489567bdfbbf8af0e844c7f0..f3b80784d7366f53ca45608e12278151fc50079b 100644 --- a/dune/istl/solver.hh +++ b/dune/istl/solver.hh @@ -1,8 +1,8 @@ // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- // vi: set et ts=4 sw=2 sts=2: -#ifndef DUNE_SOLVER_HH -#define DUNE_SOLVER_HH +#ifndef DUNE_ISTL_SOLVER_HH +#define DUNE_ISTL_SOLVER_HH #include <iomanip> #include <ostream> diff --git a/dune/istl/test/.gitignore b/dune/istl/test/.gitignore index c298506d1c5fa9a10254dfa6771c21d7ec9a24ac..3db90901f83eafae13c170db8542170e323a16c8 100644 --- a/dune/istl/test/.gitignore +++ b/dune/istl/test/.gitignore @@ -19,6 +19,7 @@ superlztest mmtest mv iotest +inverseoperator2prectest scaledidmatrixtest basearraytest vbvectortest