Menu ▾ ▴

#1589 lmin

open
nobody
None
5
2012-11-18
2009-02-12
Ago77
No

I came across a list that seems to expose a bug in "lmin." The list is:

Q: [0, (10*sqrt(3019)-653)/(10*sqrt(3019)-800),

-(1243*sqrt(3019)-65630)/(1600*sqrt(3019)-94190),
(12270806*sqrt(3019)-674213245)/(15070400*sqrt(3019)-830019805),
-(1534218310305203*sqrt(3019)-84298201004276722)/(2001396875083520*sqrt(3019)-109967917387142242),
(877822352489691153078985106965453*sqrt(3019)-48232324401355597222123482321934010)/
(1100447231090345843897339350259200*sqrt(3019)-60464543522069663495052507120510410)]$

lmin(Q); produces a "Division by 0" error message - on the other hand, lmin(float(Q)); or also lmin(Q), numer; both yield - 0.089597918818624. lmax(Q) works properly, but -lmax(-Q) also yields a "Divide by 0" error, not too surprisingly.

Discussion

  • Barton Willis

    Barton Willis - 2009-02-13

    A workaround it to set algebraic : true.

     
  • Barton Willis

    Barton Willis - 2009-02-13

    A workaround it to set algebraic : true.

     
  • Barton Willis

    Barton Willis - 2009-02-13

    I believe the trouble is in computing the sign of:
    (%i62) (94648962737729943093436340438935374529647608621614*sqrt(3019)-5200527717336367518913170807682526084100767540599370)/(60506859663968574059067272189736794088560937142400*sqrt(3019)-3324575269180571635805235048597996242355104695758805);
    (%o62) (94648962737729943093436340438935374529647608621614*sqrt(3019)-5200527717336367518913170807682526084100767540599370)/(60506859663968574059067272189736794088560937142400*sqrt(3019)-3324575269180571635805235048597996242355104695758805)
    (%i63) sign(%);
    Division by 0

    The number is actually not so complicated:

    (%i64) ratsimp(%o62), algebraic : true;
    (%o64) -(2*sqrt(3019)-70)/115
    (%i65) sign(%);
    (%o65) neg

     
  • Dieter Kaiser

    Dieter Kaiser - 2010-10-10

    I think the error is not in sign but in $float:

    (94648962737729943093436340438935374529647608621614*sqrt(3019)
    -5200527717336367518913170807682526084100767540599370)
    /(60506859663968574059067272189736794088560937142400*sqrt(3019)
    -3324575269180571635805235048597996242355104695758805)
    (%i73) float(%);

    Division by 0
    -- an error. To debug this try: debugmode(true);

    Dieter Kaiser

     

Log in to post a comment.