[Dune] Dune on Windows MinGW
Christian Engwer
christian.engwer at uni-muenster.de
Wed May 4 10:31:56 CEST 2011
On Wed, May 04, 2011 at 09:59:16AM +0200, Bård Skaflestad wrote:
> Hi Martin,
>
> I like the idea of a special purpose container of important constants a
> lot. I've been doing something similar in a few of my own projects
> although *much* less refined than what you're suggesting below. The
> ability to include arbitrary precision definitions is particularly
> tempting.
>
> Obviously I have no vote in determining what does or does not get into
> Dune, but I wholeheartedly support the idea.
plus one :-)
>
>
> Best,
>
> Bård
>
> On Wed, 2011-05-04 at 09:46 +0200, Martin Nolte wrote:
> > Hi Bård,
> >
> > this is an interesting Detail. Maybe we should consider adding something
> > similar to numeric_limits to Dune, i.e., a specialized class containing
> > important mathematical constants. It could look somewhat like
> >
> > template<>
> > struct MathematicalConstants< double >
> > {
> > static double e () { return exp( 1 ); }
> > static double pi () { return 3.14...; }
> > static double ln2 () { return log( 2 ); }
> > };
> >
> > This would be especially interesting in the context of multiprecision floating
> > point types (like GMPField), where those numbers might be interesting, too,
> > but can only be computed. For such types, this structure might want to
> > implement the singleton pattern.
> >
> > Best,
> >
> > Martin
> >
> >
> > On 05/03/2011 08:40 PM, Bård Skaflestad wrote:
> > > Andreas, Bernd, All
> > >
> > > Sorry to barge in on the discussion, but I'd like to make a little comment concerning the 'M_PI' issue. Including <cmath> may help on MinGW, but in reality portable code must not reference the preprocessor symbol 'M_PI' without a (more or less manual) separate definition. Any given implementation may, and many do--particularly on Linux, define 'M_PI' as a (double precision) approximation to \pi as an extension, but no implementation is obliged to provide this symbol. In fact, when compiling in "maximally standards conforming" mode, an implementation must *not* provide the 'M_PI' symbol.
> > >
> > > In short, any code that references 'M_PI' without explicitly defining the symbol itself is non-portable.
> > >
> > >
> > > Sincerely,
> >
>
>
>
> _______________________________________________
> Dune mailing list
> Dune at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune
More information about the Dune
mailing list