Hi Burcin, indeed, here is another case of buggy libc/libm. The same workaround as for Cygwin should do the trick (provided that cephes works on ARM) Would installing cephes spkg break things on non-Cygwin, or this is safe? Dmitrii On Feb 6, 5:24 pm, Burcin Erocal <[email protected]> wrote: > Hi Julien, > > On Sun, 06 Feb 2011 09:30:16 +0100 > > Julien PUYDT <[email protected]> wrote: > > Le 05/02/2011 11:44, Francois Bissey a écrit : > > > So gamma could be called from C, Cython, possibly mpmath, pynac or > > > maxima. I guess you could tests the results calling from mpmath or > > > maxima. I am guessing that SR(10.0r).gamma() will end up being a > > > call to maxima to compute gamma but I could be completely off > > > track. But since it is also a gamma computation it could be related > > > to the previous computation of gamma(6). > > On most platforms, we use the tgammal() function provided by the C > library to evaluate gamma when the input is a float. See lines > 1032-1039 of sage/symbolic/pynac.pyx and 21-28 of > sage/symbolic/pynac_cc.h for the relevant code. > > > Here are a few computations : > > > sage: gamma(6.) > > 120.000000000000 > > Here 6. is a RealLiteral. This gets converted to a RealNumber with the > default precision. Then the evaluation is done with the .gamma() method > of real numbers, which uses MPFR. > > sage: type(6.) > <type 'sage.rings.real_mpfr.RealLiteral'> > > > sage: gamma(float(6)) > > 119.99999999999997 > > sage: SR(6.0r).gamma() > > 119.99999999999997 > > Both these examples call the same code in sage/symbolic/pynac.pyx I > mentioned above and pass the evaluation to the C library. > > The cephes library was included in the standard Sage distribution > recently to prevent these problems, but some symbolic functions still > need to switch to using that when the C library is unreliable. The file > sage/symbolic/pynac_cc.h is there to facilitate this switch. > > > Launching, from my sage directory : > > LD_LIBRARY_PATH=./local/lib ./local/bin/maxima > > > I can write : > > (%i1) gamma(6.); > > (%o1) 120 > > (%i2) gamma(6.0000000000000000000000); > > (%o2) 120.0 > > Using maxima for such things would be incredibly slow. We avoid that > when possible. But, as you can see from the comments in > sage/symbolic/pynac.pyx, the special functions in Sage, especially > those provided by GiNaC/pynac need a lot of work. > > Thank you. > > Burcin
-- To post to this group, send an email to [email protected] To unsubscribe from this group, send an email to [email protected] For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org
