
Boost : 
From: Paul A. Bristow (boost_at_[hidden])
Date: 20031020 13:30:11
This is also what I found with MSVC 7.1. Although this is very promising, it
really must handle all these cases  and I suspect there are many others too
that we should test in order to 'stress' the concept a bit more.
Suggestions anyone?
And I have, of course, for two years had a collection of suitably high accuracy
math constants ready waiting for a Boostacceptable way of presenting them to
users.
To Daniel's wantlist, I would add the need to work with the Boost Interval
library.
Paul
Paul A Bristow, Prizet Farmhouse, Kendal, Cumbria, LA8 8AB UK
+44 1539 561830 Mobile +44 7714 33 02 04
mailto:pbristow_at_[hidden]
 Original Message
 From: boostbounces_at_[hidden]
 [mailto:boostbounces_at_[hidden]]On Behalf Of Thorsten Ottosen
 Sent: Saturday, October 18, 2003 1:37 AM
 To: boost_at_[hidden]
 Subject: [boost] Re: Constants framework (long)



 [snip]
 > The framework itself allows compilers to produce code which is as
 > good as handwritten code. Of course, not all compilers make use of
 > these opportunities. I tested the GCC and the Intel compiler, the
 > latter can produce optimal code, the former has some problems,
 > though. Last tested: GCC 3.3, maybe this has improved since, further
 > testing is definitly needed. To be fair, I should also mention that
 > Paul Bristow tried the run the code through the VC++, which
 > failed. The code seems to be a bit challanging, but I haven't given
 > up hope. If you can make it work for the VC++, please let me know :)

 I could compile some of it with vc7:

 int main()
 {
 // Usage example:

 using namespace boost::math;
 using std::sqrt;
 using boost::math::sqrt;

 const float f = 1.F;
 const double d = 1.;
 const long double ld = 1.L;

 cout << pi * f * f << endl;
 cout << pi * d * d << endl;
 cout << pi * ld * ld << endl;
 /*
 cout << static_cast< double >( pi ) << endl;
 cout << static_cast< float >( pi ) * d * d << endl;
 */
 cout << pi * pi * f << endl;
 cout << pi * pi * d << endl;
 cout << pi * pi * ld << endl;

 cout << pi + pi  pi * pi / pi + d << endl;
 /*
 cout << pi * pi * pi * f << endl;
 cout << pi * pi * pi * d << endl;
 cout << pi * pi * pi * ld << endl;

 cout << pi + 2. << endl;
 cout << 2. + pi << endl;

 cout << sqrt( two ) * sqrt( 2.F ) << endl;
 cout << sqrt( two ) * sqrt( 2.L ) << endl;

 cout << sqrt( sqrt( two + pi ) ) + d << endl;

 // double dx = sqrt( pi );
 // cout << ( sqrt( pi ) ) << endl;
 */
 }

 For the rest, I havn't looked more into it.

 cheers

 Thorsten



 _______________________________________________
 Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk