#541 rat/factor exponents are fixnums (doc)

open
nobody
5
2012-11-18
2004-03-25
No

It does not seem to be documented anywhere that the
exponents in a CRE expression are fixnums. For example,
rat(x^(2^31)) => x. This also affects functions which
use Rat internally, e.g. factor, ratsubst....

This is not a bug, but it is an important documentation
lacuna.

Discussion

  • Robert Dodier

    Robert Dodier - 2004-11-02

    Logged In: YES
    user_id=501686

    Hmm, with Maxima 5.9.1 (cvs circa 200410) I see

    rat(x^(2^31));
    => Exponent out of range

    so it appears something has changed in the not-too-distant past.

     
  • Stavros Macrakis

    Logged In: YES
    user_id=588346

    a) I can reproduce this in the current Windows GCL version
    Maxima version: 5.9.1
    Maxima build date: 7:34 9/24/2004
    host type: i686-pc-mingw32
    lisp-implementation-type: Kyoto Common Lisp
    lisp-implementation-version: GCL 2.6.5

    b) In Dodier's configuration, "Exponent out of range"
    presumably indicates that the exponent could not be
    converted to a fixnum. It is a *good thing* that an error
    message was generated in this case (rather than silently
    giving an incorrect response), though the message should be
    more user-friendly. But in any case, the exponents are
    still restricted to fixnums.

    c) For another dramatic failure due to this issue, try

    rat((x^2^30+1)*(x^2^30)) => 1/x^2147483648+x^1073741824

    d) Given current processor speeds, I recommend that we
    convert exponents to general numbers. At the very least, we
    should be giving overflow errors and not blindly generating
    garbage.

     
  • Raymond Toy

    Raymond Toy - 2004-11-02

    Logged In: YES
    user_id=28849

    Could this be a gcl problem? I also get "Exponent out of
    range" when using cmucl.

     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks