[Dune-devel] [Dune-Commit] dune-common r7032 - trunk/dune/common
Matthias Wohlmuth
Matthias.Wohlmuth at ma.tum.de
Wed Oct 10 14:31:51 CEST 2012
Am 10/09/2012 06:16 PM, schrieb sander at dune-project.org:
> Author: sander
> Date: 2012-10-09 18:16:27 +0200 (Tue, 09 Oct 2012)
> New Revision: 7032
>
> Added:
> trunk/dune/common/power.hh
> Modified:
> trunk/dune/common/Makefile.am
> trunk/dune/common/misc.hh
> Log:
> Add a new header power.hh for static computations of the power functions
>
> There are lots of power implementations all over our code.
> This is the first step of some cleanup. It moves the class Power_m_p
> from misc.hh (like who's ever gonna find it there...) to a separate
> header power.hh. Other implementations will be collected there as
> well, if appropriate.
>
> With the patch, including misc.hh will issue a cpp warning that people
> who include misc.hh only for Power_m_p should now include power.hh
> instead. This is not great, because it also affects people who include
> misc.hh for something else. Bear with this for a while; I couldn't
> think of a better solution.
>
>
> Modified: trunk/dune/common/Makefile.am
> ===================================================================
> --- trunk/dune/common/Makefile.am 2012-10-08 17:10:46 UTC (rev 7031)
> +++ trunk/dune/common/Makefile.am 2012-10-09 16:16:27 UTC (rev 7032)
> @@ -70,6 +70,7 @@
> parametertreeparser.hh \
> path.hh \
> poolallocator.hh \
> + power.hh \
> precision.hh \
> promotiontraits.hh \
> propertymap.hh \
>
> Modified: trunk/dune/common/misc.hh
> ===================================================================
> --- trunk/dune/common/misc.hh 2012-10-08 17:10:46 UTC (rev 7031)
> +++ trunk/dune/common/misc.hh 2012-10-09 16:16:27 UTC (rev 7032)
> @@ -20,6 +20,8 @@
> #include<dune/common/deprecated.hh>
> #include "exceptions.hh"
> #include<dune/common/typetraits.hh>
> +#warning If you have included misc.hh only for the Power_m_p class please include power.hh instead.
> +#include<dune/common/power.hh>
>
> namespace Dune {
>
> @@ -65,22 +67,6 @@
> return t*t;
> }
>
> -//! Calculates m^p at compile time
> -template<int m, int p>
> -struct Power_m_p
> -{
> - // power stores m^p
> - enum { power = (m * Power_m_p<m,p-1>::power ) };
> -};
> -
> -//! end of recursion via specialization
> -template<int m>
> -struct Power_m_p< m , 0>
> -{
> - // m^0 = 1
> - enum { power = 1 };
> -};
> -
> //! Calculates the factorial of m at compile time
> template<int m>
> struct Factorial
>
> Added: trunk/dune/common/power.hh
> ===================================================================
> --- trunk/dune/common/power.hh (rev 0)
> +++ trunk/dune/common/power.hh 2012-10-09 16:16:27 UTC (rev 7032)
> @@ -0,0 +1,35 @@
> +// -*- tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
> +// vi: set ts=8 sw=2 et sts=2:
> +#ifndef DUNE_COMMON_POWER_HH
> +#define DUNE_COMMON_POWER_HH
> +
> +/** \file
> + \brief Various implementations of the power function for run-time and static arguments
> +*/
> +
> +namespace Dune {
> +
> + /** @addtogroup Common
> +
> + @{
> + */
> +
> + //! Calculates m^p at compile time
> + template<int m, int p>
> + struct Power_m_p
> + {
> + /** \brief power stores m^p */
> + enum { power = (m * Power_m_p<m,p-1>::power ) };
> + };
> +
> + //! end of recursion via specialization
> + template<int m>
> + struct Power_m_p< m , 0>
> + {
> + /** \brief m^0 = 1 */
> + enum { power = 1 };
> + };
> +
> +}
> +
> +#endif
>
>
> _______________________________________________
> Dune-Commit mailing list
> Dune-Commit at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-commit
>
--
*****************************************************************
*************** Dr.-Ing Dipl.-Math. Matthias Wohlmuth
************
********** Department of Mathematics (M2)
******** Technische Universität München (TU Munich)
****** Boltzmannstr. 3, 85748 Garching, Germany
****
** http://www-m2.ma.tum.de/bin/view/Allgemeines/MatthiasWohlmuth
**** matthias.wohlmuth at ma.tum.de
****** Phone: +49 89 / 289 18441
******** Fax: +49 89 / 289 18435
********** Office: 03.10.036
*****************************************************************
More information about the Dune-devel
mailing list