[BACK]Return to NEW CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / pari

Annotation of OpenXM_contrib/pari/NEW, Revision 1.1

1.1     ! maekawa     1: This file lists some of the novelties in PARI/GP 2.0. Incompatible changes are
        !             2: described in COMPAT.
        !             3:
        !             4: ==========================================================================
        !             5: The GP/PARI structure has been cleaned up.
        !             6:
        !             7:    * The whole configuration process has been automated, and a Configure
        !             8:      file is provided. Just typing `./Configure' should see you home in most
        !             9:      cases.
        !            10:
        !            11:    * PARI is now available as a dynamic library, thanks to Louis Granboulan.
        !            12:      (you can link GP with it, if you wish to). This saves a tremendous
        !            13:      amount of disk space, and is generally more convenient as you don't need
        !            14:      to re-link your files when updating the library (or when debugging.
        !            15:      or profiling, or...).
        !            16:
        !            17:    * types now have a symbolic mnemonic name (e.g t_INT for an integer,
        !            18:      t_VEC for a vector, and so on).
        !            19:
        !            20:    * General speed-up (depends on your applications, about 40% for our
        !            21:      generic testing file).
        !            22:
        !            23:    * Experimental module loading structure (the actual function tree
        !            24:      has not yet been cut into modules, but for the GP specific functions).
        !            25:
        !            26: ==========================================================================
        !            27: Many new or improved functions in the PARI library.
        !            28:
        !            29:    * MANY class-field related functions. In particular:
        !            30:      - is it now possible to try and remove the GRH assumption on class group
        !            31:      computations.
        !            32:      - ray class groups computations (including discrete log).
        !            33:      - explicit defining equations in simple cases (Kummer extensions of prime
        !            34:        degree, quadratic base field).
        !            35:
        !            36:    * roots is now entirely reliable, thanks to Xavier Gourdon.
        !            37:
        !            38:    * much faster integer factorisation (including an MPQS implementation),
        !            39:      due to Gerhard Niklasch, Thomas Papanikolaou and Xavier Roblot.
        !            40:
        !            41:    * some core routines have been optimized: Karatsuba fast multiplication,
        !            42:      a specific function gsqr() for squarings,...
        !            43:
        !            44:    * input/output is much more flexible now:
        !            45:      - a function GENtostring has been added, generalizing gitoascii to any
        !            46:      PARI object (with a simpler syntax: GENtostring(g) returns a malloc'ed
        !            47:      string containing g as gp would print it).
        !            48:
        !            49:      - lisexpr has a relative flisexpr (for filtered lisexpr), which enables
        !            50:      you to use input containing whitespaces.
        !            51:
        !            52:      - you can use GENs in formatted output, a la printf.
        !            53:
        !            54:    * improved garbage collecting.
        !            55:
        !            56:    * private variables can be created without an explicit lisexpr(), using
        !            57:      fetch_var() and delete_var().
        !            58:
        !            59: ==========================================================================
        !            60: GP has been completely re-written:
        !            61:
        !            62:    * lowercase/uppercase are now significant. All predefined constants
        !            63:      (Euler, I, Pi) have been renamed (as well, the o() notation for series
        !            64:      and padics has been superseded by O()).
        !            65:
        !            66:      for (i=1,10, print(i)) will not yield an error anymore.
        !            67:
        !            68:    * human-readable error messages, including a caret to indicate where
        !            69:      a GP syntax error occurred.
        !            70:
        !            71:    * function names were renamed according to a more logical scheme. The
        !            72:      file new.dico provides a translation (available under GP using "whatnow")
        !            73:
        !            74:    * You can retrieve basic information from complicated objects using member
        !            75:      functions (you cannot define your own). For instance x.disc will yield the
        !            76:      discriminant of x, whether it was created by nfinit (aka initalg), bnfinit
        !            77:      (aka buchinit), ellinit (aka initell).
        !            78:
        !            79:    * A `gprc' file is available to set "permanent" defaults (such as
        !            80:      global variables, aliases, custom user functions, etc...).  For instance,
        !            81:      you can put all your scripts in some special directories, and
        !            82:      point them out to GP using "path". See misc/gprc.dft for examples.
        !            83:
        !            84:      The function "default" enables to change most defaults under gp.
        !            85:      For instance: default(compatible, 2) will give you back the former gp
        !            86:      function names and helpmessages. [default(compatible, 3) undoes the
        !            87:      lowercaps/uppercaps changes as well]. Try "default".
        !            88:
        !            89:    * basic C idiosyncrasies such as for instance i++ (for i=i+1), i<<1
        !            90:      (for left shift) or i+=j (for i=i+j) are now allowed within GP scripts.
        !            91:      /* */ multi-line comments are understood.
        !            92:
        !            93:    * lists and (primitive) string support have been added. Characters can be
        !            94:      quoted with the usual meaning. As a result, set functions can now be
        !            95:      used with arbitrary elements.
        !            96:
        !            97:    * if your terminal supports color (variants of color_xterm for instance),
        !            98:      you can tell GP to highlight its output in different (user configurable)
        !            99:      colors. This is done by fiddling with the default "colors".
        !           100:
        !           101:    * The familiar functions "break", "next" and "return" are now available.
        !           102:      These should supersede the buggy label/goto provided in older versions.
        !           103:
        !           104:    * somewhat enhanced on-line help. Even more: if you have perl on your
        !           105:      system, try ?? function-name (?? bnfinit for instance). This is provided
        !           106:      by external scripts which can be used independently, outside of the GP
        !           107:      session.
        !           108:
        !           109:    * If readline is installed on your system, a context-dependent completion
        !           110:      (not yet user-programmable) is now available (try hitting <TAB> here and
        !           111:      there). Try ?? readline.
        !           112:
        !           113:    * many functions now have default arguments (shown between braces {} in
        !           114:      the on-line description). gp first reads user-supplied arguments, and
        !           115:      then fills in the arg list with these default values. Optional args can
        !           116:      be entirely omitted, comma included (for a function with no mandatory
        !           117:      arguments, even parentheses are optional !). For instance:
        !           118:
        !           119:        Mat = Mat()
        !           120:        bnfclassunit(x^2+1,0) = bnfclassunit(x^2+1)
        !           121:        bnfclassunit(x^2+1,,[0.2,0.2]) = bnfclassunit(x^2+1,0,[0.2,0.2])
        !           122:
        !           123:        The "else" part of the "if" function can be entirely omitted.
        !           124:        if (a,1) is now correct; of course, the former syntax if (a,1,) is
        !           125:        still valid.
        !           126:
        !           127:    * functions "extern" and "system" have been added to interface with
        !           128:      external programs (UNIX only). You can do for instance
        !           129:      extern("myprog"), or system("ls -l *.gp").
        !           130:
        !           131:    * even better, "install" enables you to load any function provided by
        !           132:      a dynamically linked library, and have the GP interpreter use it. This
        !           133:      makes it easy to have your own customized version of GP with your own set
        !           134:      of functions on startup (you can document them using "addhelp").
        !           135:
        !           136:    * On 32-bit machines, maximum number of variables has been increased from
        !           137:      254 to 16382. Arrays can have up to 16777215 elements (instead of 65535).
        !           138:      In addition vector/matrix operations in GP now perform orders of
        !           139:      magnitudes faster than in version 1.39
        !           140:
        !           141: =============================================================================

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>