TR1 Math

Ed Smith-Rowland 3dw4rd@verizon.net
Sat Mar 25 15:55:00 GMT 2006


All,

I have to accept that the TR1 math won't be done for 4.2.  However, I 
have enough done that I think it would be worthwhile to report on the 
status and get some feedback and suggestions and maybe some help.

In terms of structure I have implemented the functions as generics with 
template arguments and using the type promotion functions in common.h.  
These in turn are called by inline functions with arguments as expected 
by TR1.

I think it would really be great to have ONE implementation instead of 
three - one for each precision.

I terms of what I have done:

* The Legendre, Hermite, and Laguerre functions are ready.

* The Riemann zeta function works.

* The exponential integral works.

* The six elliptic integrals are in good shape.  I'm using 
representation in terms of the Carlson elliptic function.

* The hypergeometric functions work.  The confluent hypergeometric 
function is quite good.

* The Bessel functions are working in some regimes and not in others.  
In fact, the low argument regime is just
   missing.  I just didn't have time to get these completed.  Bessel 
functions have traditionally been a minefield.
   The spherical Bessel and Neumann functions will just call their 
corresponding cylindrical functions with the
   appropriate argument and order.

Mostly, I wanted to show the patch and give people a chance to critique 
the overall strategy and to provide
insight/help on the specific techniques.

I disagree somewhat with the suggestion committee that these functions 
are completely understood even in the real argument regime.  As an old 
physics professor of mine said "This stuff is cut but not dried".  It 
will take a while
for these to get really good.  But I really think we could have 
something by the time 4.3 branches and maybe before if they would let us.

I did start on the testsuite.  These are just compile tests at present.  
It is my intention that NaN checks
and some spot evaluation checks will be present as well.  I think it 
would be worthwhile to have a GSL-TR1
deathmatch although this might not be appropriate for the testsuite.

Ed Smith-Rowland.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: tr1_math.diff.gz
Type: application/x-gzip
Size: 16947 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20060325/1dd24929/attachment.bin>


More information about the Libstdc++ mailing list