[Dune] Dune on Windows MinGW

Andreas Dedner dedner at mathematik.uni-freiburg.de
Wed May 4 11:06:51 CEST 2011


I also like this idea

On 05/04/2011 08:59 AM, 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.
>
>
> 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