Hi,

Using math.log has a disadvantage; it is less accurate.

sage: print n(math.log(2),100)
sage: print n(log(2),100)
0.69314718055994528622676398300
0.69314718055994530941723212146

Rolandb

On 30 aug, 06:48, Robert Bradshaw <rober...@math.washington.edu>
wrote:
> On Aug 29, 2009, at 12:44 PM, Rolandb wrote:
>
>
>
>
>
> > On 29 aug, 18:43, John H Palmieri <jhpalmier...@gmail.com> wrote:
> >> On Aug 29, 8:51 am, Simon King <simon.k...@nuigalway.ie> wrote:
>
> >>> Note that expon uses Maxima, because you use the logarithm. So, I
> >>> reckon that your problem is related withhttp://trac.sagemath.org/
> >>> sage_trac/ticket/4731
> >>> andhttp://trac.sagemath.org/sage_trac/ticket/6818.
> >>> If not, you might try to work around by thinking what "expon" really
> >>> does. For example, one of my first problems with Sage occurred  
> >>> when I
> >>> used the logarithm for determining the number of digits of a natural
> >>> number n --  len(str(n)) is much faster!
>
> >> Or you can use "math.log" instead of "log" -- this should use the
> >> Python log function rather than the Maxima one: use
>
> >> def expon(mx,g): return floor(math.log(mx)/math.log(g))+1
>
> >>  John
>
> > Hi,
>
> > The whole issue boils down to:
>
> > floor(log(256)/log(2))+1
>
> > which takes 'ages' to compute (Sage 4.1).
>
> > print floor(ln(256)/ln(2))+1 is no improvement; floor(math.log(mx)/
> > math.log(g))+1 is.
>
> Ah, that makes sense. It is numerically computing this to higher and  
> higher precision, trying to figure out whether or not it is greater  
> than or less than 8. Of course, you can't do this with high precision  
> arithmetic, so eventually it gives up.
>
> What we should do is also try to check to see if it is exactly equal  
> to an integer symbolically before computing out too far...maybe even  
> do both in parallel.
>
> sage: bool(log(256)/log(2) == 8)
> True
>
> - Robert
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to