[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

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>