[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