[pari] - update to 2.5.1

Paul Howarth pghmcfc at fedoraproject.org
Mon Jul 2 19:34:15 UTC 2012


commit d87f6c966ed6ec759d9748dbdfb127b4785624c3
Author: Paul Howarth <paul at city-fan.org>
Date:   Mon Jul 2 20:21:48 2012 +0100

    - update to 2.5.1
    
    - update to 2.5.1 (#821191; see NEW for details)
    - use rpm 4.9.x requires/provides filtering
    - update xdg-open patch
    - drop emacs sub-package; the PARI Emacs shell is now a separate project
    - drop %defattr, redundant since rpm 4.4
    - gp sub-package requires bzip2 for support of bzipped files
    - make %files list more explicit
    - drop redundant buildroot definition and cleaning
    - BR: xmkmf for X11 detection
    - make sure we use our %{optflags} and only those
    - call pari_init_defaults() before gp_expand_path() (upstream #1264)
    - fix scoping issue that manifests as a test suite failure with gcc 4.7.x and
      -ftree-dse (#821918, upstream #1314)
    - fix desktop file categories
    - install site-wide /etc/gprc
    - update FSF address (upstream #1315)
    - fix various compiler warnings (upstream #1316)
    - run the full test suite in %check
    - add buildreqs for data packages needed by full test suite
    - hardcode %{_datadir} in gp.desktop so no need to fiddle with it in %prep

 .gitignore                                         |    2 +-
 gp.desktop                                         |    4 +-
 pari-2.5.1-clobbered.patch                         |   36 +
 pari-2.5.1-declaration-not-prototype.patch         |   91 +
 pari-2.5.1-fsf-address.patch                       | 1952 ++++++++++++++
 pari-2.5.1-gcc47.patch                             |   39 +
 pari-2.5.1-missing-field-init.patch                | 2670 ++++++++++++++++++++
 pari-2.5.1-optflags.patch                          |   11 +
 pari-2.5.1-reorder-init-opts.patch                 |   14 +
 ...2.3.4-xdgopen.patch => pari-2.5.1-xdgopen.patch |    8 +-
 pari-init.el                                       |    5 -
 pari.spec                                          |  183 +-
 sources                                            |    2 +-
 13 files changed, 4925 insertions(+), 92 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 8d1e9b4..9f20222 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-pari-2.3.5.tar.gz
+/pari-[0-9.]*.tar.gz
diff --git a/gp.desktop b/gp.desktop
index 9614364..38cf7bc 100644
--- a/gp.desktop
+++ b/gp.desktop
@@ -2,9 +2,9 @@
 Name=PARI/GP
 Comment=Programmable calculator based on PARI
 Exec=gp
-Icon=@DATADIR@/pari/misc/pari.xpm
+Icon=/usr/share/pari/misc/pari.xpm
 Terminal=true
 Type=Application
-Categories=Application;Education;Math;
+Categories=Application;Education;Science;Math;
 Encoding=UTF-8
 X-Desktop-File-Install-Version=0.10
diff --git a/pari-2.5.1-clobbered.patch b/pari-2.5.1-clobbered.patch
new file mode 100644
index 0000000..ba0660e
--- /dev/null
+++ b/pari-2.5.1-clobbered.patch
@@ -0,0 +1,36 @@
+--- src/basemath/bibli1.c
++++ src/basemath/bibli1.c
+@@ -2238,9 +2238,9 @@ END:
+  * If check is non-NULL keep x only if check(x).
+  * If a is a vector, assume a[1] is the LLL-reduced Cholesky form of q */
+ GEN
+-fincke_pohst(GEN a, GEN B0, long stockmax, long PREC, FP_chk_fun *CHECK)
++fincke_pohst(GEN a, GEN B0, VOLATILE long stockmax, long PREC, FP_chk_fun *CHECK)
+ {
+-  pari_sp av = avma;
++  VOLATILE pari_sp av = avma;
+   VOLATILE long i,j,l;
+   VOLATILE GEN r,rinv,rinvtrans,u,v,res,z,vnorm,rperm,perm,uperm, bound = B0;
+ 
+--- src/gp/gp.c
++++ src/gp/gp.c
+@@ -1250,7 +1250,7 @@ static void
+ gp_initrc(pari_stack *p_A, char *path)
+ {
+   char *nexts,*s,*t;
+-  FILE *file = gprc_get(path);
++  FILE * VOLATILE file = gprc_get(path);
+   Buffer *b;
+   filtre_t F;
+   VOLATILE long c = 0;
+--- src/modules/stark.c
++++ src/modules/stark.c
+@@ -2740,7 +2740,7 @@ quadray_init(GEN *pD, GEN f, GEN *pbnf,
+ /* compute the polynomial over Q of the Hilbert class field of
+    Q(sqrt(D)) where D is a positive fundamental discriminant */
+ static GEN
+-quadhilbertreal(GEN D, long prec)
++quadhilbertreal(GEN D, VOLATILE long prec)
+ {
+   pari_sp av = avma;
+   long newprec;
diff --git a/pari-2.5.1-declaration-not-prototype.patch b/pari-2.5.1-declaration-not-prototype.patch
new file mode 100644
index 0000000..1f775c6
--- /dev/null
+++ b/pari-2.5.1-declaration-not-prototype.patch
@@ -0,0 +1,91 @@
+--- src/headers/paripriv.h
++++ src/headers/paripriv.h
+@@ -252,7 +252,7 @@
+ GEN  pari_compile_str(char *lex, int strict);
+ 
+ void pari_sigint(const char *s);
+-pariFILE *pari_last_tmp_file();
++pariFILE *pari_last_tmp_file(void);
+ void* get_stack(double fraction, long min);
+ void  init_graph(void);
+ void  free_graph(void);
+--- src/language/eval.c
++++ src/language/eval.c
+@@ -1079,11 +1079,11 @@
+         break;
+       }
+ 
+-#define EVAL_f(f) \
++#define EVAL_f0(f) f()
++#define EVAL_f1(f) sp--; f(st[sp])
++#define EVAL_fn(f) \
+   switch (ep->arity) \
+   { \
+-    case 0: f(); break; \
+-    case 1: sp--; f(st[sp]); break; \
+     case 2: sp-=2; f(st[sp],st[sp+1]); break; \
+     case 3: sp-=3; f(st[sp],st[sp+1],st[sp+2]); break; \
+     case 4: sp-=4; f(st[sp],st[sp+1],st[sp+2],st[sp+3]); break; \
+@@ -1114,7 +1114,12 @@
+         GEN res;
+         /* Macro Madness : evaluate function ep->value on arguments
+          * st[sp-ep->arity .. sp]. Set res = result. */
+-        EVAL_f(res = ((GEN (*)(ANYARG))ep->value));
++        switch (ep->arity)
++        {
++          case 0:  EVAL_f0(res = ((GEN (*)(void))ep->value)); break;
++          case 1:  EVAL_f1(res = ((GEN (*)(long))ep->value)); break;
++          default: EVAL_fn(res = ((GEN (*)(long, ...))ep->value));
++        }
+         if (br_status) goto endeval;
+         gel(st,sp++)=res;
+         break;
+@@ -1133,7 +1138,12 @@
+       {
+         entree *ep = (entree *)operand;
+         long res;
+-        EVAL_f(res = ((long (*)(ANYARG))ep->value));
++        switch (ep->arity)
++        {
++          case 0:  EVAL_f0(res = ((long (*)(void))ep->value)); break;
++          case 1:  EVAL_f1(res = ((long (*)(long))ep->value)); break;
++          default: EVAL_fn(res = ((long (*)(long, ...))ep->value));
++        }
+         if (br_status) goto endeval;
+         st[sp++] = res;
+         break;
+@@ -1142,7 +1152,12 @@
+       {
+         entree *ep = (entree *)operand;
+         long res;
+-        EVAL_f(res = ((int (*)(ANYARG))ep->value));
++        switch (ep->arity)
++        {
++          case 0:  EVAL_f0(res = ((int (*)(void))ep->value)); break;
++          case 1:  EVAL_f1(res = ((int (*)(long))ep->value)); break;
++          default: EVAL_fn(res = ((int (*)(long, ...))ep->value));
++        }
+         if (br_status) goto endeval;
+         st[sp++] = res;
+         break;
+@@ -1150,11 +1165,18 @@
+     case OCcallvoid:
+       {
+         entree *ep = (entree *)operand;
+-        EVAL_f(((void (*)(ANYARG))ep->value));
++        switch (ep->arity)
++        {
++          case 0:  EVAL_f0(((void (*)(void))ep->value)); break;
++          case 1:  EVAL_f1(((void (*)(long))ep->value)); break;
++          default: EVAL_fn(((void (*)(long, ...))ep->value));
++        }
+         if (br_status) goto endeval;
+         break;
+       }
+-#undef EVAL_f
++#undef EVAL_f0
++#undef EVAL_f1
++#undef EVAL_fn
+ 
+     case OCcalluser:
+       {
diff --git a/pari-2.5.1-fsf-address.patch b/pari-2.5.1-fsf-address.patch
new file mode 100644
index 0000000..02598ef
--- /dev/null
+++ b/pari-2.5.1-fsf-address.patch
@@ -0,0 +1,1952 @@
+diff -up pari-2.5.1/Configure.orig pari-2.5.1/Configure
+--- pari-2.5.1/Configure.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/Configure	2012-05-16 14:12:07.160588197 +0100
+@@ -9,7 +9,7 @@
+ #
+ # Check the License for details. You should have received a copy of it, along
+ # with the package; see the file 'COPYING'. If not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 
+ # Configuration file for GP/PARI.  Run Configure --help for Usage.
+ #
+diff -up pari-2.5.1/COPYING.orig pari-2.5.1/COPYING
+--- pari-2.5.1/COPYING.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/COPYING	2012-05-16 14:12:07.160588197 +0100
+@@ -1,12 +1,12 @@
+-		    GNU GENERAL PUBLIC LICENSE
+-		       Version 2, June 1991
++                    GNU GENERAL PUBLIC LICENSE
++                       Version 2, June 1991
+ 
+- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+-                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
++ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  Everyone is permitted to copy and distribute verbatim copies
+  of this license document, but changing it is not allowed.
+ 
+-			    Preamble
++                            Preamble
+ 
+   The licenses for most software are designed to take away your
+ freedom to share and change it.  By contrast, the GNU General Public
+@@ -15,7 +15,7 @@ software--to make sure the software is f
+ General Public License applies to most of the Free Software
+ Foundation's software and to any other program whose authors commit to
+ using it.  (Some other Free Software Foundation software is covered by
+-the GNU Library General Public License instead.)  You can apply it to
++the GNU Lesser General Public License instead.)  You can apply it to
+ your programs, too.
+ 
+   When we speak of free software, we are referring to freedom, not
+@@ -55,8 +55,8 @@ patent must be licensed for everyone's f
+ 
+   The precise terms and conditions for copying, distribution and
+ modification follow.
+-
+-		    GNU GENERAL PUBLIC LICENSE
++
++                    GNU GENERAL PUBLIC LICENSE
+    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+ 
+   0. This License applies to any program or other work which contains
+@@ -110,7 +110,7 @@ above, provided that you also meet all o
+     License.  (Exception: if the Program itself is interactive but
+     does not normally print such an announcement, your work based on
+     the Program is not required to print an announcement.)
+-
++
+ These requirements apply to the modified work as a whole.  If
+ identifiable sections of that work are not derived from the Program,
+ and can be reasonably considered independent and separate works in
+@@ -168,7 +168,7 @@ access to copy from a designated place,
+ access to copy the source code from the same place counts as
+ distribution of the source code, even though third parties are not
+ compelled to copy the source along with the object code.
+-
++
+   4. You may not copy, modify, sublicense, or distribute the Program
+ except as expressly provided under this License.  Any attempt
+ otherwise to copy, modify, sublicense or distribute the Program is
+@@ -225,7 +225,7 @@ impose that choice.
+ 
+ This section is intended to make thoroughly clear what is believed to
+ be a consequence of the rest of this License.
+-
++
+   8. If the distribution and/or use of the Program is restricted in
+ certain countries either by patents or by copyrighted interfaces, the
+ original copyright holder who places the Program under this License
+@@ -255,7 +255,7 @@ make exceptions for this.  Our decision
+ of preserving the free status of all derivatives of our free software and
+ of promoting the sharing and reuse of software generally.
+ 
+-			    NO WARRANTY
++                            NO WARRANTY
+ 
+   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGES.
+ 
+-		     END OF TERMS AND CONDITIONS
+-
+-	    How to Apply These Terms to Your New Programs
++                     END OF TERMS AND CONDITIONS
++
++            How to Apply These Terms to Your New Programs
+ 
+   If you develop a new program, and you want it to be of the greatest
+ possible use to the public, the best way to achieve this is to make it
+@@ -291,7 +291,7 @@ convey the exclusion of warranty; and ea
+ the "copyright" line and a pointer to where the full notice is found.
+ 
+     <one line to give the program's name and a brief idea of what it does.>
+-    Copyright (C) 19yy  <name of author>
++    Copyright (C) <year>  <name of author>
+ 
+     This program is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+@@ -303,17 +303,16 @@ the "copyright" line and a pointer to wh
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+     GNU General Public License for more details.
+ 
+-    You should have received a copy of the GNU General Public License
+-    along with this program; if not, write to the Free Software
+-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+-
++    You should have received a copy of the GNU General Public License along
++    with this program; if not, write to the Free Software Foundation, Inc.,
++    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 
+ Also add information on how to contact you by electronic and paper mail.
+ 
+ If the program is interactive, make it output a short notice like this
+ when it starts in an interactive mode:
+ 
+-    Gnomovision version 69, Copyright (C) 19yy name of author
++    Gnomovision version 69, Copyright (C) year name of author
+     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+     This is free software, and you are welcome to redistribute it
+     under certain conditions; type `show c' for details.
+@@ -336,5 +335,5 @@ necessary.  Here is a sample; alter the
+ This General Public License does not permit incorporating your program into
+ proprietary programs.  If your program is a subroutine library, you may
+ consider it more useful to permit linking proprietary applications with the
+-library.  If this is what you want to do, use the GNU Library General
++library.  If this is what you want to do, use the GNU Lesser General
+ Public License instead of this License.
+diff -up pari-2.5.1/doc/gphelp.in.orig pari-2.5.1/doc/gphelp.in
+--- pari-2.5.1/doc/gphelp.in.orig	2012-05-16 14:12:07.102588125 +0100
++++ pari-2.5.1/doc/gphelp.in	2012-05-16 14:12:07.161588198 +0100
+@@ -13,7 +13,7 @@
+ #
+ # Check the License for details. You should have received a copy of it, along
+ # with the package; see the file 'COPYING'. If not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 
+ # Output extended help corresponding to a given GP command. By default,
+ # extract relevant information from  from the PARI manual, run TeX, then open
+diff -up pari-2.5.1/README.orig pari-2.5.1/README
+--- pari-2.5.1/README.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/README	2012-05-16 14:12:07.162588199 +0100
+@@ -76,7 +76,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 
+ 
+ (*) Version numbers have the shape: MAJOR.MINOR.patchlevel.status. The status
+diff -up pari-2.5.1/src/basemath/alglin1.c.orig pari-2.5.1/src/basemath/alglin1.c
+--- pari-2.5.1/src/basemath/alglin1.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/alglin1.c	2012-05-16 14:12:07.163588200 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /********************************************************************/
+ /**                                                                **/
+diff -up pari-2.5.1/src/basemath/alglin2.c.orig pari-2.5.1/src/basemath/alglin2.c
+--- pari-2.5.1/src/basemath/alglin2.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/alglin2.c	2012-05-16 14:12:07.164588201 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /********************************************************************/
+ /**                                                                **/
+diff -up pari-2.5.1/src/basemath/arith1.c.orig pari-2.5.1/src/basemath/arith1.c
+--- pari-2.5.1/src/basemath/arith1.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/arith1.c	2012-05-16 14:12:07.166588205 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*********************************************************************/
+ /**                                                                 **/
+diff -up pari-2.5.1/src/basemath/arith2.c.orig pari-2.5.1/src/basemath/arith2.c
+--- pari-2.5.1/src/basemath/arith2.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/arith2.c	2012-05-16 14:12:07.167588206 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*********************************************************************/
+ /**                                                                 **/
+diff -up pari-2.5.1/src/basemath/base1.c.orig pari-2.5.1/src/basemath/base1.c
+--- pari-2.5.1/src/basemath/base1.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/base1.c	2012-05-16 14:12:07.168588207 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /**************************************************************/
+ /*                                                            */
+diff -up pari-2.5.1/src/basemath/base2.c.orig pari-2.5.1/src/basemath/base2.c
+--- pari-2.5.1/src/basemath/base2.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/base2.c	2012-05-16 14:12:07.170588209 +0100
+@@ -10,7 +10,7 @@ Foundation. It is distributed in the hop
+ ANY WARRANTY WHATSOEVER.
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/basemath/base3.c.orig pari-2.5.1/src/basemath/base3.c
+--- pari-2.5.1/src/basemath/base3.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/base3.c	2012-05-16 14:12:07.171588210 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/basemath/base4.c.orig pari-2.5.1/src/basemath/base4.c
+--- pari-2.5.1/src/basemath/base4.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/base4.c	2012-05-16 14:12:07.173588213 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/basemath/base5.c.orig pari-2.5.1/src/basemath/base5.c
+--- pari-2.5.1/src/basemath/base5.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/base5.c	2012-05-16 14:12:07.174588215 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/basemath/bb_group.c.orig pari-2.5.1/src/basemath/bb_group.c
+--- pari-2.5.1/src/basemath/bb_group.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/bb_group.c	2012-05-16 14:12:07.175588217 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /***********************************************************************/
+ /**                                                                   **/
+diff -up pari-2.5.1/src/basemath/bibli1.c.orig pari-2.5.1/src/basemath/bibli1.c
+--- pari-2.5.1/src/basemath/bibli1.c.orig	2012-05-16 14:12:07.152588187 +0100
++++ pari-2.5.1/src/basemath/bibli1.c	2012-05-16 14:12:07.176588218 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /********************************************************************/
+ /**                                                                **/
+diff -up pari-2.5.1/src/basemath/bibli2.c.orig pari-2.5.1/src/basemath/bibli2.c
+--- pari-2.5.1/src/basemath/bibli2.c.orig	2012-05-16 14:12:07.157588194 +0100
++++ pari-2.5.1/src/basemath/bibli2.c	2012-05-16 14:12:07.177588219 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/bit.c.orig pari-2.5.1/src/basemath/bit.c
+--- pari-2.5.1/src/basemath/bit.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/bit.c	2012-05-16 14:12:07.178588220 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/buch1.c.orig pari-2.5.1/src/basemath/buch1.c
+--- pari-2.5.1/src/basemath/buch1.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/basemath/buch1.c	2012-05-16 14:12:07.179588221 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ #include "pari.h"
+ #include "paripriv.h"
+ 
+diff -up pari-2.5.1/src/basemath/buch2.c.orig pari-2.5.1/src/basemath/buch2.c
+--- pari-2.5.1/src/basemath/buch2.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/buch2.c	2012-05-16 14:12:07.180588222 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ #include "pari.h"
+ #include "paripriv.h"
+ /********************************************************************/
+diff -up pari-2.5.1/src/basemath/buch3.c.orig pari-2.5.1/src/basemath/buch3.c
+--- pari-2.5.1/src/basemath/buch3.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/buch3.c	2012-05-16 14:12:07.182588224 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/basemath/buch4.c.orig pari-2.5.1/src/basemath/buch4.c
+--- pari-2.5.1/src/basemath/buch4.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/buch4.c	2012-05-16 14:12:07.183588225 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/basemath/concat.c.orig pari-2.5.1/src/basemath/concat.c
+--- pari-2.5.1/src/basemath/concat.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/concat.c	2012-05-16 14:12:07.184588226 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/basemath/ellanal.c.orig pari-2.5.1/src/basemath/ellanal.c
+--- pari-2.5.1/src/basemath/ellanal.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/ellanal.c	2012-05-16 14:12:07.184588226 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /********************************************************************/
+ /**                                                                **/
+diff -up pari-2.5.1/src/basemath/elliptic.c.orig pari-2.5.1/src/basemath/elliptic.c
+--- pari-2.5.1/src/basemath/elliptic.c.orig	2012-01-28 17:16:47.000000000 +0000
++++ pari-2.5.1/src/basemath/elliptic.c	2012-05-16 14:12:07.186588229 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /********************************************************************/
+ /**                                                                **/
+diff -up pari-2.5.1/src/basemath/F2x.c.orig pari-2.5.1/src/basemath/F2x.c
+--- pari-2.5.1/src/basemath/F2x.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/F2x.c	2012-05-16 14:12:07.187588231 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/FF.c.orig pari-2.5.1/src/basemath/FF.c
+--- pari-2.5.1/src/basemath/FF.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/FF.c	2012-05-16 14:12:07.188588232 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/Flx.c.orig pari-2.5.1/src/basemath/Flx.c
+--- pari-2.5.1/src/basemath/Flx.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/Flx.c	2012-05-16 14:12:07.189588233 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/FpE.c.orig pari-2.5.1/src/basemath/FpE.c
+--- pari-2.5.1/src/basemath/FpE.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/FpE.c	2012-05-16 14:12:07.190588234 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/FpV.c.orig pari-2.5.1/src/basemath/FpV.c
+--- pari-2.5.1/src/basemath/FpV.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/FpV.c	2012-05-16 14:12:07.190588234 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/FpX.c.orig pari-2.5.1/src/basemath/FpX.c
+--- pari-2.5.1/src/basemath/FpX.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/FpX.c	2012-05-16 14:12:07.191588235 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/galconj.c.orig pari-2.5.1/src/basemath/galconj.c
+--- pari-2.5.1/src/basemath/galconj.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/galconj.c	2012-05-16 14:12:07.192588236 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/gen1.c.orig pari-2.5.1/src/basemath/gen1.c
+--- pari-2.5.1/src/basemath/gen1.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/gen1.c	2012-05-16 14:12:07.194588238 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /********************************************************************/
+ /**                                                                **/
+diff -up pari-2.5.1/src/basemath/gen2.c.orig pari-2.5.1/src/basemath/gen2.c
+--- pari-2.5.1/src/basemath/gen2.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/gen2.c	2012-05-16 14:12:07.196588242 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /********************************************************************/
+ /**                                                                **/
+diff -up pari-2.5.1/src/basemath/gen3.c.orig pari-2.5.1/src/basemath/gen3.c
+--- pari-2.5.1/src/basemath/gen3.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/gen3.c	2012-05-16 14:12:07.197588243 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /********************************************************************/
+ /**                                                                **/
+diff -up pari-2.5.1/src/basemath/Hensel.c.orig pari-2.5.1/src/basemath/Hensel.c
+--- pari-2.5.1/src/basemath/Hensel.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/Hensel.c	2012-05-16 14:12:07.198588244 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ #include "pari.h"
+ #include "paripriv.h"
+ 
+diff -up pari-2.5.1/src/basemath/hnf_snf.c.orig pari-2.5.1/src/basemath/hnf_snf.c
+--- pari-2.5.1/src/basemath/hnf_snf.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/hnf_snf.c	2012-05-16 14:12:07.199588245 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/ifactor1.c.orig pari-2.5.1/src/basemath/ifactor1.c
+--- pari-2.5.1/src/basemath/ifactor1.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/ifactor1.c	2012-05-16 14:12:07.201588247 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ #include "pari.h"
+ #include "paripriv.h"
+ 
+diff -up pari-2.5.1/src/basemath/lll.c.orig pari-2.5.1/src/basemath/lll.c
+--- pari-2.5.1/src/basemath/lll.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/lll.c	2012-05-16 14:12:07.203588250 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/nffactor.c.orig pari-2.5.1/src/basemath/nffactor.c
+--- pari-2.5.1/src/basemath/nffactor.c.orig	2012-02-02 16:49:31.000000000 +0000
++++ pari-2.5.1/src/basemath/nffactor.c	2012-05-16 14:12:07.204588252 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/basemath/perm.c.orig pari-2.5.1/src/basemath/perm.c
+--- pari-2.5.1/src/basemath/perm.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/perm.c	2012-05-16 14:12:07.205588253 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/polarit1.c.orig pari-2.5.1/src/basemath/polarit1.c
+--- pari-2.5.1/src/basemath/polarit1.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/polarit1.c	2012-05-16 14:12:07.205588253 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /***********************************************************************/
+ /**                                                                   **/
+diff -up pari-2.5.1/src/basemath/polarit2.c.orig pari-2.5.1/src/basemath/polarit2.c
+--- pari-2.5.1/src/basemath/polarit2.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/polarit2.c	2012-05-16 14:12:07.207588255 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /***********************************************************************/
+ /**                                                                   **/
+diff -up pari-2.5.1/src/basemath/polarit3.c.orig pari-2.5.1/src/basemath/polarit3.c
+--- pari-2.5.1/src/basemath/polarit3.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/polarit3.c	2012-05-16 14:12:07.208588256 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /***********************************************************************/
+ /**                                                                   **/
+diff -up pari-2.5.1/src/basemath/prime.c.orig pari-2.5.1/src/basemath/prime.c
+--- pari-2.5.1/src/basemath/prime.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/prime.c	2012-05-16 14:12:07.209588257 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/Qfb.c.orig pari-2.5.1/src/basemath/Qfb.c
+--- pari-2.5.1/src/basemath/Qfb.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/Qfb.c	2012-05-16 14:12:07.210588258 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ #include "pari.h"
+ #include "paripriv.h"
+ /*******************************************************************/
+diff -up pari-2.5.1/src/basemath/QX_factor.c.orig pari-2.5.1/src/basemath/QX_factor.c
+--- pari-2.5.1/src/basemath/QX_factor.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/QX_factor.c	2012-05-16 14:12:07.211588259 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ #include "pari.h"
+ #include "paripriv.h"
+ 
+diff -up pari-2.5.1/src/basemath/random.c.orig pari-2.5.1/src/basemath/random.c
+--- pari-2.5.1/src/basemath/random.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/random.c	2012-05-16 14:12:07.212588261 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ /********************************************************************/
+ /*                                                                  */
+ /*                      PSEUDO-RANDOM INTEGERS                      */
+diff -up pari-2.5.1/src/basemath/RgV.c.orig pari-2.5.1/src/basemath/RgV.c
+--- pari-2.5.1/src/basemath/RgV.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/RgV.c	2012-05-16 14:12:07.212588261 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/RgX.c.orig pari-2.5.1/src/basemath/RgX.c
+--- pari-2.5.1/src/basemath/RgX.c.orig	2012-02-02 16:46:08.000000000 +0000
++++ pari-2.5.1/src/basemath/RgX.c	2012-05-16 14:12:07.213588263 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/rootpol.c.orig pari-2.5.1/src/basemath/rootpol.c
+--- pari-2.5.1/src/basemath/rootpol.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/rootpol.c	2012-05-16 14:12:07.214588264 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/basemath/subcyclo.c.orig pari-2.5.1/src/basemath/subcyclo.c
+--- pari-2.5.1/src/basemath/subcyclo.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/subcyclo.c	2012-05-16 14:12:07.215588265 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/subgroup.c.orig pari-2.5.1/src/basemath/subgroup.c
+--- pari-2.5.1/src/basemath/subgroup.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/subgroup.c	2012-05-16 14:12:07.216588266 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/trans1.c.orig pari-2.5.1/src/basemath/trans1.c
+--- pari-2.5.1/src/basemath/trans1.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/trans1.c	2012-05-16 14:12:07.217588267 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /********************************************************************/
+ /**                                                                **/
+diff -up pari-2.5.1/src/basemath/trans2.c.orig pari-2.5.1/src/basemath/trans2.c
+--- pari-2.5.1/src/basemath/trans2.c.orig	2012-01-28 17:04:26.000000000 +0000
++++ pari-2.5.1/src/basemath/trans2.c	2012-05-16 14:12:07.218588268 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /********************************************************************/
+ /**                                                                **/
+diff -up pari-2.5.1/src/basemath/trans3.c.orig pari-2.5.1/src/basemath/trans3.c
+--- pari-2.5.1/src/basemath/trans3.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/trans3.c	2012-05-16 14:12:07.219588269 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /********************************************************************/
+ /**                                                                **/
+diff -up pari-2.5.1/src/basemath/ZV.c.orig pari-2.5.1/src/basemath/ZV.c
+--- pari-2.5.1/src/basemath/ZV.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/ZV.c	2012-05-16 14:12:07.220588271 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/basemath/ZX.c.orig pari-2.5.1/src/basemath/ZX.c
+--- pari-2.5.1/src/basemath/ZX.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/basemath/ZX.c	2012-05-16 14:12:07.221588273 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/desc/PARI/822.pm.orig pari-2.5.1/src/desc/PARI/822.pm
+--- pari-2.5.1/src/desc/PARI/822.pm.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/desc/PARI/822.pm	2012-05-16 14:12:07.222588275 +0100
+@@ -10,7 +10,7 @@
+ #
+ #Check the License for details. You should have received a copy of it, along
+ #with the package; see the file 'COPYING'. If not, write to the Free Software
+-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 
+ #Based on Debconf::Format::822 by Joey Hess <joey at kitenet.net>.
+ 
+diff -up pari-2.5.1/src/gp/gp.c.orig pari-2.5.1/src/gp/gp.c
+--- pari-2.5.1/src/gp/gp.c.orig	2012-05-16 14:12:07.152588187 +0100
++++ pari-2.5.1/src/gp/gp.c	2012-05-16 14:12:07.223588276 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /**                                                               **/
+diff -up pari-2.5.1/src/gp/gp.h.orig pari-2.5.1/src/gp/gp.h
+--- pari-2.5.1/src/gp/gp.h.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/gp/gp.h	2012-05-16 14:12:07.224588277 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*************************************************************************/
+ /*                                                                       */
+diff -up pari-2.5.1/src/gp/gp_init.c.orig pari-2.5.1/src/gp/gp_init.c
+--- pari-2.5.1/src/gp/gp_init.c.orig	2012-05-16 14:12:07.138588169 +0100
++++ pari-2.5.1/src/gp/gp_init.c	2012-05-16 14:12:07.224588277 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/gp/gp_rl.c.orig pari-2.5.1/src/gp/gp_rl.c
+--- pari-2.5.1/src/gp/gp_rl.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/gp/gp_rl.c	2012-05-16 14:12:07.225588278 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/gp/highlvl.c.orig pari-2.5.1/src/gp/highlvl.c
+--- pari-2.5.1/src/gp/highlvl.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/gp/highlvl.c	2012-05-16 14:12:07.226588279 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/gp/whatnow.c.orig pari-2.5.1/src/gp/whatnow.c
+--- pari-2.5.1/src/gp/whatnow.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/gp/whatnow.c	2012-05-16 14:12:07.226588279 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/graph/plotfltk.c.orig pari-2.5.1/src/graph/plotfltk.c
+--- pari-2.5.1/src/graph/plotfltk.c.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/graph/plotfltk.c	2012-05-16 14:12:07.226588279 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ /////////////////////////////////////////////////////////////////////////////
+ //
+ //  High resolution plot using FLTK library
+diff -up pari-2.5.1/src/graph/plotnull.c.orig pari-2.5.1/src/graph/plotnull.c
+--- pari-2.5.1/src/graph/plotnull.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/graph/plotnull.c	2012-05-16 14:12:07.227588280 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "rect.h"
+diff -up pari-2.5.1/src/graph/plotport.c.orig pari-2.5.1/src/graph/plotport.c
+--- pari-2.5.1/src/graph/plotport.c.orig	2012-05-16 14:12:07.140588173 +0100
++++ pari-2.5.1/src/graph/plotport.c	2012-05-16 14:12:07.228588281 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/graph/plotQt4.c.orig pari-2.5.1/src/graph/plotQt4.c
+--- pari-2.5.1/src/graph/plotQt4.c.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/graph/plotQt4.c	2012-05-16 14:12:07.231588284 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ /////////////////////////////////////////////////////////////////////////////
+ //
+ //  High resolution plot using Trolltech's Qt library
+diff -up pari-2.5.1/src/graph/plotQt.c.orig pari-2.5.1/src/graph/plotQt.c
+--- pari-2.5.1/src/graph/plotQt.c.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/graph/plotQt.c	2012-05-16 14:12:07.231588284 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ /////////////////////////////////////////////////////////////////////////////
+ //
+ //  High resolution plot using Trolltech's Qt library
+diff -up pari-2.5.1/src/graph/plotWin32.c.orig pari-2.5.1/src/graph/plotWin32.c
+--- pari-2.5.1/src/graph/plotWin32.c.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/graph/plotWin32.c	2012-05-16 14:12:07.232588285 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* Written by Vasili Burdo */
+ 
+diff -up pari-2.5.1/src/graph/plotX.c.orig pari-2.5.1/src/graph/plotX.c
+--- pari-2.5.1/src/graph/plotX.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/graph/plotX.c	2012-05-16 14:12:07.232588285 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/graph/rect.h.orig pari-2.5.1/src/graph/rect.h
+--- pari-2.5.1/src/graph/rect.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/graph/rect.h	2012-05-16 14:12:07.233588287 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ BEGINEXTERN
+ 
+diff -up pari-2.5.1/src/headers/paricast.h.orig pari-2.5.1/src/headers/paricast.h
+--- pari-2.5.1/src/headers/paricast.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/headers/paricast.h	2012-05-16 14:12:07.233588287 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #define mael2(m,x1,x2)          (((GEN*)   (m))[x1][x2])
+ #define mael3(m,x1,x2,x3)       (((GEN**)  (m))[x1][x2][x3])
+diff -up pari-2.5.1/src/headers/paricom.h.orig pari-2.5.1/src/headers/paricom.h
+--- pari-2.5.1/src/headers/paricom.h.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/headers/paricom.h	2012-05-16 14:12:07.233588287 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /******************************************************************/
+ /*                                                                */
+diff -up pari-2.5.1/src/headers/paridecl.h.orig pari-2.5.1/src/headers/paridecl.h
+--- pari-2.5.1/src/headers/paridecl.h.orig	2012-02-02 16:44:44.000000000 +0000
++++ pari-2.5.1/src/headers/paridecl.h	2012-05-16 14:12:07.234588289 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/headers/parierr.h.orig pari-2.5.1/src/headers/parierr.h
+--- pari-2.5.1/src/headers/parierr.h.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/headers/parierr.h	2012-05-16 14:12:07.237588293 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */
+ 
+ enum {
+ /* Force errors into non-0 */
+diff -up pari-2.5.1/src/headers/parigen.h.orig pari-2.5.1/src/headers/parigen.h
+--- pari-2.5.1/src/headers/parigen.h.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/headers/parigen.h	2012-05-16 14:12:07.237588293 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* This file defines the parameters of the GEN type               */
+ 
+diff -up pari-2.5.1/src/headers/pari.h.orig pari-2.5.1/src/headers/pari.h
+--- pari-2.5.1/src/headers/pari.h.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/headers/pari.h	2012-05-16 14:12:07.237588293 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #ifndef __GENPARI__
+ #define __GENPARI__
+diff -up pari-2.5.1/src/headers/pariinl.h.orig pari-2.5.1/src/headers/pariinl.h
+--- pari-2.5.1/src/headers/pariinl.h.orig	2012-01-26 16:27:55.000000000 +0000
++++ pari-2.5.1/src/headers/pariinl.h	2012-05-16 14:12:07.238588294 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/headers/parinf.h.orig pari-2.5.1/src/headers/parinf.h
+--- pari-2.5.1/src/headers/parinf.h.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/headers/parinf.h	2012-05-16 14:12:07.239588295 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* output of get_nf and get_bnf */
+ enum {
+diff -up pari-2.5.1/src/headers/pariold.h.orig pari-2.5.1/src/headers/pariold.h
+--- pari-2.5.1/src/headers/pariold.h.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/headers/pariold.h	2012-05-16 14:12:07.239588295 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* For compatibility with 1.x.x */
+ /*functions renamed*/
+diff -up pari-2.5.1/src/headers/paripriv.h.orig pari-2.5.1/src/headers/paripriv.h
+--- pari-2.5.1/src/headers/paripriv.h.orig	2012-05-16 14:12:07.148588183 +0100
++++ pari-2.5.1/src/headers/paripriv.h	2012-05-16 14:12:07.240588296 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ BEGINEXTERN
+ /* hashtables */
+diff -up pari-2.5.1/src/headers/paristio.h.orig pari-2.5.1/src/headers/paristio.h
+--- pari-2.5.1/src/headers/paristio.h.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/headers/paristio.h	2012-05-16 14:12:07.240588296 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* This file contains memory and I/O management definitions       */
+ 
+diff -up pari-2.5.1/src/headers/parisys.h.orig pari-2.5.1/src/headers/parisys.h
+--- pari-2.5.1/src/headers/parisys.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/headers/parisys.h	2012-05-16 14:12:07.241588297 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* This files contains macros depending on system and compiler    */
+ 
+diff -up pari-2.5.1/src/kernel/alpha/asm0.h.orig pari-2.5.1/src/kernel/alpha/asm0.h
+--- pari-2.5.1/src/kernel/alpha/asm0.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/alpha/asm0.h	2012-05-16 14:12:07.241588297 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*
+ ASM addll mulll
+diff -up pari-2.5.1/src/kernel/alpha/asm1.h.orig pari-2.5.1/src/kernel/alpha/asm1.h
+--- pari-2.5.1/src/kernel/alpha/asm1.h.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/kernel/alpha/asm1.h	2012-05-16 14:12:07.241588297 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* This file is a slight adaptation of source code extracted from gmp-3.1.1
+   (from T. Granlund), files longlong.h and gmp-impl.h
+diff -up pari-2.5.1/src/kernel/gmp/gcd.c.orig pari-2.5.1/src/kernel/gmp/gcd.c
+--- pari-2.5.1/src/kernel/gmp/gcd.c.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/gmp/gcd.c	2012-05-16 14:12:07.242588298 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* assume y > x > 0. return y mod x */
+ static ulong
+diff -up pari-2.5.1/src/kernel/gmp/gcdext.c.orig pari-2.5.1/src/kernel/gmp/gcdext.c
+--- pari-2.5.1/src/kernel/gmp/gcdext.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/kernel/gmp/gcdext.c	2012-05-16 14:12:07.242588298 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*==================================
+  * invmod(a,b,res)
+diff -up pari-2.5.1/src/kernel/gmp/int.h.orig pari-2.5.1/src/kernel/gmp/int.h
+--- pari-2.5.1/src/kernel/gmp/int.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/gmp/int.h	2012-05-16 14:12:07.242588298 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #define int_MSW(x) ((x)+lgefint((x))-1)
+ /*x being a t_INT, return a pointer to the most significant word of x.*/
+diff -up pari-2.5.1/src/kernel/gmp/mp.c.orig pari-2.5.1/src/kernel/gmp/mp.c
+--- pari-2.5.1/src/kernel/gmp/mp.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/kernel/gmp/mp.c	2012-05-16 14:12:07.243588299 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /***********************************************************************/
+ /**                                                                   **/
+diff -up pari-2.5.1/src/kernel/hppa64/asm0.h.orig pari-2.5.1/src/kernel/hppa64/asm0.h
+--- pari-2.5.1/src/kernel/hppa64/asm0.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/hppa64/asm0.h	2012-05-16 14:12:07.244588300 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* This file was made using idea from Bruno Haible ix86 asm inline kernel
+  * and code from Nigel Smart hppa asm kernel. mulll was inspired from
+diff -up pari-2.5.1/src/kernel/hppa/asm0.h.orig pari-2.5.1/src/kernel/hppa/asm0.h
+--- pari-2.5.1/src/kernel/hppa/asm0.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/hppa/asm0.h	2012-05-16 14:12:07.244588300 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* This file was made using idea from Bruno Haible ix86 asm inline kernel
+  * and code from Nigel Smart hppa asm kernel. mulll was inspired from
+diff -up pari-2.5.1/src/kernel/ia64/asm0.h.orig pari-2.5.1/src/kernel/ia64/asm0.h
+--- pari-2.5.1/src/kernel/ia64/asm0.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/ia64/asm0.h	2012-05-16 14:12:07.244588300 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*
+ ASM mulll bfffo
+diff -up pari-2.5.1/src/kernel/ix86/asm0.h.orig pari-2.5.1/src/kernel/ix86/asm0.h
+--- pari-2.5.1/src/kernel/ix86/asm0.h.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/kernel/ix86/asm0.h	2012-05-16 14:12:07.246588302 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* This file defines some "level 0" kernel functions for Intel ix86  */
+ /* It is intended for use with an external "asm" definition          */
+diff -up pari-2.5.1/src/kernel/m68k/asm0.h.orig pari-2.5.1/src/kernel/m68k/asm0.h
+--- pari-2.5.1/src/kernel/m68k/asm0.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/m68k/asm0.h	2012-05-16 14:12:07.247588304 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* Written by Bill Allombert and dedicated to thoses who wrote the original
+  * m68k kernel mp.s */
+diff -up pari-2.5.1/src/kernel/none/add.c.orig pari-2.5.1/src/kernel/none/add.c
+--- pari-2.5.1/src/kernel/none/add.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/kernel/none/add.c	2012-05-16 14:12:07.247588304 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ INLINE GEN
+ icopy_sign(GEN x, long sx)
+diff -up pari-2.5.1/src/kernel/none/addll.h.orig pari-2.5.1/src/kernel/none/addll.h
+--- pari-2.5.1/src/kernel/none/addll.h.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/kernel/none/addll.h	2012-05-16 14:12:07.248588306 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* This file originally adapted from gmp-3.1.1 (from T. Granlund), files
+  * longlong.h and gmp-impl.h
+diff -up pari-2.5.1/src/kernel/none/asm0.h.orig pari-2.5.1/src/kernel/none/asm0.h
+--- pari-2.5.1/src/kernel/none/asm0.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/none/asm0.h	2012-05-16 14:12:07.248588306 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*
+ NOASM addll mulll bfffo divll
+diff -up pari-2.5.1/src/kernel/none/bfffo.h.orig pari-2.5.1/src/kernel/none/bfffo.h
+--- pari-2.5.1/src/kernel/none/bfffo.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/none/bfffo.h	2012-05-16 14:12:07.248588306 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #if !defined(INLINE)
+ extern int  bfffo(ulong x);
+diff -up pari-2.5.1/src/kernel/none/cmp.c.orig pari-2.5.1/src/kernel/none/cmp.c
+--- pari-2.5.1/src/kernel/none/cmp.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/kernel/none/cmp.c	2012-05-16 14:12:07.249588307 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ 
+ /********************************************************************/
+diff -up pari-2.5.1/src/kernel/none/divll.h.orig pari-2.5.1/src/kernel/none/divll.h
+--- pari-2.5.1/src/kernel/none/divll.h.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/kernel/none/divll.h	2012-05-16 14:12:07.250588308 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* This file originally adapted from gmp-3.1.1 (from T. Granlund), files
+  * longlong.h and gmp-impl.h
+diff -up pari-2.5.1/src/kernel/none/gcd.c.orig pari-2.5.1/src/kernel/none/gcd.c
+--- pari-2.5.1/src/kernel/none/gcd.c.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/none/gcd.c	2012-05-16 14:12:07.250588308 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* assume y > x > 0. return y mod x */
+ static ulong
+diff -up pari-2.5.1/src/kernel/none/gcdext.c.orig pari-2.5.1/src/kernel/none/gcdext.c
+--- pari-2.5.1/src/kernel/none/gcdext.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/kernel/none/gcdext.c	2012-05-16 14:12:07.250588308 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*==================================
+  * bezout(a,b,pu,pv)
+diff -up pari-2.5.1/src/kernel/none/gcdll.c.orig pari-2.5.1/src/kernel/none/gcdll.c
+--- pari-2.5.1/src/kernel/none/gcdll.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/kernel/none/gcdll.c	2012-05-16 14:12:07.251588309 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /***********************************************************************/
+ /**                                                                   **/
+diff -up pari-2.5.1/src/kernel/none/int.h.orig pari-2.5.1/src/kernel/none/int.h
+--- pari-2.5.1/src/kernel/none/int.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/none/int.h	2012-05-16 14:12:07.252588310 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #define int_MSW(x) ((x)+2)
+ /*x being a t_INT, return a pointer to the most significant word of x.*/
+diff -up pari-2.5.1/src/kernel/none/invmod.c.orig pari-2.5.1/src/kernel/none/invmod.c
+--- pari-2.5.1/src/kernel/none/invmod.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/kernel/none/invmod.c	2012-05-16 14:12:07.252588310 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*==================================
+  * invmod(a,b,res)
+diff -up pari-2.5.1/src/kernel/none/level1.h.orig pari-2.5.1/src/kernel/none/level1.h
+--- pari-2.5.1/src/kernel/none/level1.h.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/kernel/none/level1.h	2012-05-16 14:12:07.253588311 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* This file defines "level 1" kernel functions.
+  * These functions can be inline; they are also defined externally in
+diff -up pari-2.5.1/src/kernel/none/mp.c.orig pari-2.5.1/src/kernel/none/mp.c
+--- pari-2.5.1/src/kernel/none/mp.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/kernel/none/mp.c	2012-05-16 14:12:07.254588312 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /***********************************************************************/
+ /**                                                                   **/
+diff -up pari-2.5.1/src/kernel/none/mp_indep.c.orig pari-2.5.1/src/kernel/none/mp_indep.c
+--- pari-2.5.1/src/kernel/none/mp_indep.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/kernel/none/mp_indep.c	2012-05-16 14:12:07.255588314 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* Find c such that 1=c*b mod 2^BITS_IN_LONG, assuming b odd (unchecked) */
+ ulong
+diff -up pari-2.5.1/src/kernel/none/mpinl.c.orig pari-2.5.1/src/kernel/none/mpinl.c
+--- pari-2.5.1/src/kernel/none/mpinl.c.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/none/mpinl.c	2012-05-16 14:12:07.255588314 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ #define PARI_NO_PARIINL_H
+ #define INLINE
+ #define DISABLE_INLINE
+diff -up pari-2.5.1/src/kernel/none/mulll.h.orig pari-2.5.1/src/kernel/none/mulll.h
+--- pari-2.5.1/src/kernel/none/mulll.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/none/mulll.h	2012-05-16 14:12:07.256588316 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #undef  LOCAL_HIREMAINDER
+ #define LOCAL_HIREMAINDER
+diff -up pari-2.5.1/src/kernel/none/ratlift.c.orig pari-2.5.1/src/kernel/none/ratlift.c
+--- pari-2.5.1/src/kernel/none/ratlift.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/kernel/none/ratlift.c	2012-05-16 14:12:07.256588316 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*==========================================================
+  * ratlift(GEN x, GEN m, GEN *a, GEN *b, GEN amax, GEN bmax)
+diff -up pari-2.5.1/src/kernel/ppc64/asm0.h.orig pari-2.5.1/src/kernel/ppc64/asm0.h
+--- pari-2.5.1/src/kernel/ppc64/asm0.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/ppc64/asm0.h	2012-05-16 14:12:07.257588317 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ /*
+ ASM addll mulll bfffo
+ NOASM divll
+diff -up pari-2.5.1/src/kernel/ppc/asm0.h.orig pari-2.5.1/src/kernel/ppc/asm0.h
+--- pari-2.5.1/src/kernel/ppc/asm0.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/ppc/asm0.h	2012-05-16 14:12:07.257588317 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ /*
+ ASM addll mulll bfffo
+ NOASM divll
+diff -up pari-2.5.1/src/kernel/sparcv8_micro/asm0-common.h.orig pari-2.5.1/src/kernel/sparcv8_micro/asm0-common.h
+--- pari-2.5.1/src/kernel/sparcv8_micro/asm0-common.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/sparcv8_micro/asm0-common.h	2012-05-16 14:12:07.258588318 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* This file is common to SuperSparc and MicroSparc */
+ /*
+diff -up pari-2.5.1/src/kernel/sparcv8_micro/asm0.h.orig pari-2.5.1/src/kernel/sparcv8_micro/asm0.h
+--- pari-2.5.1/src/kernel/sparcv8_micro/asm0.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/kernel/sparcv8_micro/asm0.h	2012-05-16 14:12:07.258588318 +0100
+@@ -10,7 +10,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ /*
+ ASM divll
+ */
+diff -up pari-2.5.1/src/kernel/x86_64/asm0.h.orig pari-2.5.1/src/kernel/x86_64/asm0.h
+--- pari-2.5.1/src/kernel/x86_64/asm0.h.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/kernel/x86_64/asm0.h	2012-05-16 14:12:07.258588318 +0100
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*
+ ASM addll mulll bfffo divll
+diff -up pari-2.5.1/src/language/anal.c.orig pari-2.5.1/src/language/anal.c
+--- pari-2.5.1/src/language/anal.c.orig	2012-01-27 23:40:30.000000000 +0000
++++ pari-2.5.1/src/language/anal.c	2012-05-16 14:12:07.259588319 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/language/anal.h.orig pari-2.5.1/src/language/anal.h
+--- pari-2.5.1/src/language/anal.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/language/anal.h	2012-05-16 14:12:07.259588319 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*************************************************************************/
+ /*                                                                       */
+diff -up pari-2.5.1/src/language/compat.c.orig pari-2.5.1/src/language/compat.c
+--- pari-2.5.1/src/language/compat.c.orig	2012-05-16 14:12:07.145588178 +0100
++++ pari-2.5.1/src/language/compat.c	2012-05-16 14:12:07.260588320 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/language/compile.c.orig pari-2.5.1/src/language/compile.c
+--- pari-2.5.1/src/language/compile.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/language/compile.c	2012-05-16 14:12:07.261588321 +0100
+@@ -10,7 +10,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/language/default.c.orig pari-2.5.1/src/language/default.c
+--- pari-2.5.1/src/language/default.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/language/default.c	2012-05-16 14:12:07.262588322 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ #include "pari.h"
+ #include "paripriv.h"
+ 
+diff -up pari-2.5.1/src/language/errmsg.c.orig pari-2.5.1/src/language/errmsg.c
+--- pari-2.5.1/src/language/errmsg.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/language/errmsg.c	2012-05-16 14:12:50.838634160 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ 
+diff -up pari-2.5.1/src/language/es.c.orig pari-2.5.1/src/language/es.c
+--- pari-2.5.1/src/language/es.c.orig	2012-01-28 17:06:25.000000000 +0000
++++ pari-2.5.1/src/language/es.c	2012-05-16 14:12:07.263588324 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /**                                                               **/
+diff -up pari-2.5.1/src/language/eval.c.orig pari-2.5.1/src/language/eval.c
+--- pari-2.5.1/src/language/eval.c.orig	2012-05-16 14:12:07.148588183 +0100
++++ pari-2.5.1/src/language/eval.c	2012-05-16 14:12:07.265588327 +0100
+@@ -10,7 +10,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/language/hash.c.orig pari-2.5.1/src/language/hash.c
+--- pari-2.5.1/src/language/hash.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/language/hash.c	2012-05-16 14:12:07.266588328 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ #include "pari.h"
+ #include "paripriv.h"
+ 
+diff -up pari-2.5.1/src/language/init.c.orig pari-2.5.1/src/language/init.c
+--- pari-2.5.1/src/language/init.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/language/init.c	2012-05-16 14:12:07.266588328 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/language/intnum.c.orig pari-2.5.1/src/language/intnum.c
+--- pari-2.5.1/src/language/intnum.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/language/intnum.c	2012-05-16 14:12:07.267588329 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/language/members.c.orig pari-2.5.1/src/language/members.c
+--- pari-2.5.1/src/language/members.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/language/members.c	2012-05-16 14:12:07.269588331 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/language/opcode.h.orig pari-2.5.1/src/language/opcode.h
+--- pari-2.5.1/src/language/opcode.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/language/opcode.h	2012-05-16 14:12:07.269588331 +0100
+@@ -10,7 +10,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ BEGINEXTERN
+ 
+diff -up pari-2.5.1/src/language/paricfg.c.orig pari-2.5.1/src/language/paricfg.c
+--- pari-2.5.1/src/language/paricfg.c.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/language/paricfg.c	2012-05-16 14:12:07.269588331 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ #include "pari.h"
+ 
+ const char *paricfg_datadir = GPDATADIR;
+diff -up pari-2.5.1/src/language/pariinl.c.orig pari-2.5.1/src/language/pariinl.c
+--- pari-2.5.1/src/language/pariinl.c.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/language/pariinl.c	2012-05-16 14:12:07.270588332 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ #define PARI_NO_MPINL_H
+ #define INLINE
+ #define DISABLE_INLINE
+diff -up pari-2.5.1/src/language/parsec.h.orig pari-2.5.1/src/language/parsec.h
+--- pari-2.5.1/src/language/parsec.h.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/language/parsec.h	2012-05-16 14:12:07.270588332 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/language/parse.y.orig pari-2.5.1/src/language/parse.y
+--- pari-2.5.1/src/language/parse.y.orig	2012-01-27 23:40:30.000000000 +0000
++++ pari-2.5.1/src/language/parse.y	2012-01-27 23:40:30.000000000 +0000
+@@ -12,7 +12,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #define YYSIZE_T size_t
+ #define YYERROR_VERBOSE 1
+diff -up pari-2.5.1/src/language/sumiter.c.orig pari-2.5.1/src/language/sumiter.c
+--- pari-2.5.1/src/language/sumiter.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/language/sumiter.c	2012-05-16 14:12:07.271588333 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/language/tree.h.orig pari-2.5.1/src/language/tree.h
+--- pari-2.5.1/src/language/tree.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/language/tree.h	2012-05-16 14:12:07.271588333 +0100
+@@ -10,7 +10,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ BEGINEXTERN
+ 
+diff -up pari-2.5.1/src/modules/aprcl.c.orig pari-2.5.1/src/modules/aprcl.c
+--- pari-2.5.1/src/modules/aprcl.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/modules/aprcl.c	2012-05-16 14:12:07.272588335 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/modules/DedekZeta.c.orig pari-2.5.1/src/modules/DedekZeta.c
+--- pari-2.5.1/src/modules/DedekZeta.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/modules/DedekZeta.c	2012-05-16 14:12:07.273588337 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ /*******************************************************************/
+ /*                                                                 */
+ /*                     DEDEKIND ZETA FUNCTION                      */
+diff -up pari-2.5.1/src/modules/elldata.c.orig pari-2.5.1/src/modules/elldata.c
+--- pari-2.5.1/src/modules/elldata.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/modules/elldata.c	2012-05-16 14:12:07.273588337 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /********************************************************************/
+ /**                                                                **/
+diff -up pari-2.5.1/src/modules/ellsea.c.orig pari-2.5.1/src/modules/ellsea.c
+--- pari-2.5.1/src/modules/ellsea.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/modules/ellsea.c	2012-05-16 14:12:07.274588338 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* This file is a C version by Bill Allombert of the 'ellsea' GP package
+  * whose copyright statement is as follows:
+diff -up pari-2.5.1/src/modules/galois.c.orig pari-2.5.1/src/modules/galois.c
+--- pari-2.5.1/src/modules/galois.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/modules/galois.c	2012-05-16 14:12:07.275588339 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /**************************************************************/
+ /*                                                            */
+diff -up pari-2.5.1/src/modules/galpol.c.orig pari-2.5.1/src/modules/galpol.c
+--- pari-2.5.1/src/modules/galpol.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/modules/galpol.c	2012-05-16 14:12:07.276588340 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/modules/groupid.c.orig pari-2.5.1/src/modules/groupid.c
+--- pari-2.5.1/src/modules/groupid.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/modules/groupid.c	2012-05-16 14:12:07.276588340 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/modules/krasner.c.orig pari-2.5.1/src/modules/krasner.c
+--- pari-2.5.1/src/modules/krasner.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/modules/krasner.c	2012-05-16 14:12:07.277588341 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/modules/kummer.c.orig pari-2.5.1/src/modules/kummer.c
+--- pari-2.5.1/src/modules/kummer.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/modules/kummer.c	2012-05-16 14:12:07.278588342 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/modules/mpqs.c.orig pari-2.5.1/src/modules/mpqs.c
+--- pari-2.5.1/src/modules/mpqs.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/modules/mpqs.c	2012-05-16 14:12:07.280588345 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* Written by Thomas Papanikolaou and Xavier Roblot
+  *
+diff -up pari-2.5.1/src/modules/part.c.orig pari-2.5.1/src/modules/part.c
+--- pari-2.5.1/src/modules/part.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/modules/part.c	2012-05-16 14:12:07.281588347 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* Original code contributed by: Ralf Stephan (ralf at ark.in-berlin.de).
+  *
+diff -up pari-2.5.1/src/modules/stark.c.orig pari-2.5.1/src/modules/stark.c
+--- pari-2.5.1/src/modules/stark.c.orig	2012-05-16 14:12:07.154588189 +0100
++++ pari-2.5.1/src/modules/stark.c	2012-05-16 14:12:07.282588349 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/modules/subfield.c.orig pari-2.5.1/src/modules/subfield.c
+--- pari-2.5.1/src/modules/subfield.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/modules/subfield.c	2012-05-16 14:12:07.284588351 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /*******************************************************************/
+ /*                                                                 */
+diff -up pari-2.5.1/src/modules/thue.c.orig pari-2.5.1/src/modules/thue.c
+--- pari-2.5.1/src/modules/thue.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/modules/thue.c	2012-05-16 14:12:07.284588351 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ #include "pari.h"
+ #include "paripriv.h"
+diff -up pari-2.5.1/src/systems/mingw/mingw.c.orig pari-2.5.1/src/systems/mingw/mingw.c
+--- pari-2.5.1/src/systems/mingw/mingw.c.orig	2012-01-26 16:26:13.000000000 +0000
++++ pari-2.5.1/src/systems/mingw/mingw.c	2012-05-16 14:12:07.285588352 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* Written by Vasili Burdo */
+ 
+diff -up pari-2.5.1/src/systems/mingw/mingw.h.orig pari-2.5.1/src/systems/mingw/mingw.h
+--- pari-2.5.1/src/systems/mingw/mingw.h.orig	2011-09-22 21:02:11.000000000 +0100
++++ pari-2.5.1/src/systems/mingw/mingw.h	2012-05-16 14:12:07.285588352 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* Written by Vasili Burdo */
+ 
+diff -up pari-2.5.1/src/test/tune.c.orig pari-2.5.1/src/test/tune.c
+--- pari-2.5.1/src/test/tune.c.orig	2012-01-22 17:02:03.000000000 +0000
++++ pari-2.5.1/src/test/tune.c	2012-05-16 14:12:07.285588352 +0100
+@@ -11,7 +11,7 @@ ANY WARRANTY WHATSOEVER.
+ 
+ Check the License for details. You should have received a copy of it, along
+ with the package; see the file 'COPYING'. If not, write to the Free Software
+-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
++Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
+ 
+ /* This file is a quick hack adapted from gmp-4.0 tuning utilities
+  * (T. Granlund et al.)
diff --git a/pari-2.5.1-gcc47.patch b/pari-2.5.1-gcc47.patch
new file mode 100644
index 0000000..f0d616d
--- /dev/null
+++ b/pari-2.5.1-gcc47.patch
@@ -0,0 +1,39 @@
+https://bugzilla.redhat.com/show_bug.cgi?id=821918
+
+  if (k) {
+...
+    struct veccmp_s v;
+...
+    v.cmp = cmp;
+    v.k = k;
+    E = (void*)&v;
+    CMP = &veccmp;    
+  } else {
+    E = (void*)((typ(x) == t_VECSMALL)? cmp_small: cmp);
+    CMP = &cmp_nodata;
+  }
+...
+  use *E
+
+This is undefined behaviour; after the v variable goes out of scope (at } before
+else), you can't reference it any longer, even when the E pointer is still in
+scope.  It is the same bug as returning an address of an automatic variable
+from a function:
+int *foo (void) { int x = 1; return &x; }
+
+--- src/basemath/bibli2.c
++++ src/basemath/bibli2.c
+@@ -1394,12 +1394,12 @@
+   int (*CMP)(void*,GEN,GEN);
+   int (*cmp)(GEN,GEN) = (flag & cmp_LEX)? &lexcmp: &gcmp;
+   void *E;
++  struct veccmp_s v;
+ 
+   if (flag < 0 || flag > (cmp_REV|cmp_LEX|cmp_IND|cmp_UNIQ))
+     pari_err(flagerr,"vecsort");
+   if (k) {
+     long i, j, l, lk, tx, lx;
+-    struct veccmp_s v;
+     GEN y;
+ 
+     /* cf init_sort */
diff --git a/pari-2.5.1-missing-field-init.patch b/pari-2.5.1-missing-field-init.patch
new file mode 100644
index 0000000..294e607
--- /dev/null
+++ b/pari-2.5.1-missing-field-init.patch
@@ -0,0 +1,2670 @@
+This patch fixes missing field initializer warnings in gcc.
+The fixes are entirely in generated code, so it would of course
+be much better to fix the generator scripts to create complete
+definitions and render this patch redundant.
+
+--- src/desc/gen_proto
++++ src/desc/gen_proto
+@@ -53,14 +53,14 @@
+       if (defined($cname))
+       {
+         $proto =~ s/"/\\"/g;
+-        print "{\"$gpname\",0,(void*)$cname,$sec,\"$proto\",$help},\n";
++        print "{\"$gpname\",0,(void*)$cname,$sec,\"$proto\",$help,NULL,0,NULL},\n";
+       }
+       else
+       {
+-        print "{\"$gpname\",0,NULL,$sec,NULL,$help},\n";
++        print "{\"$gpname\",0,NULL,$sec,NULL,$help,NULL,0,NULL},\n";
+       }
+ }
+ print <<'EOF';
+-{NULL,0,NULL,0,NULL,NULL} /* sentinel */
++{NULL,0,NULL,0,NULL,NULL,NULL,0,NULL} /* sentinel */
+ };
+ EOF
+--- src/gp/gp_init.c
++++ src/gp/gp_init.c
+@@ -72,48 +72,48 @@ setprecr(long n)
+ }
+ 
+ entree functions_oldgp[] = {
+-{"allocatemem",11,(void *)allocatemem0,2,"vLp","allocatemem(s)=allocates a new stack of s bytes, or doubles the stack if size is 0"},
+-{"box",35,(void *)rectbox,10,"vLGG","box(w,x2,y2)=if the cursor is at position (x1,y1), draw a box with diagonal (x1,y1) and (x2,y2) in rectwindow w (cursor does not move)"},
+-{"color",2,(void *)rectcolor,2,"vLL","color(w,c)=set default color to c in rectwindow. Possible values for c are 1=sienna, 2=cornsilk, 3=red, 4=black, 5=grey, 6=blue, 7=gainsborough"},
+-{"cursor",11,(void*)rectcursor,10,"vLp","cursor(w)=current position of cursor in rectwindow w"},
+-{"default",0,(void*)default0,11,"D\"\",r,D\"\",s,D0,L,","default({opt},{v},{flag}): set the default opt to v. If v is omitted, print the current default for opt. If no argument is given, print a list of all defaults as well as their values. If flag is non-zero, return the result instead of printing it on screen. See manual for details"},
+-{"draw",1,(void*)rectdraw,10,"vGp","draw(list)=draw vector of rectwindows list at indicated x,y positions; list is a vector w1,x1,y1,w2,x2,y2,etc..."},
+-{"initrect",34,(void*)initrect,10,"vLLL","initrect(w,x,y)=initialize rectwindow w to size x,y"},
+-{"kill",85,(void*)kill0,11,"vr","kill(x)=kills the present value of the variable or function x. Returns new value or 0"},
+-{"killrect",11,(void *)killrect,10,"vL","killrect(w)=erase the rectwindow w"},
+-{"line",35,(void *)rectline,10,"vLGG","line(w,x2,y2)=if cursor is at position (x1,y1), draw a line from (x1,y1) to (x2,y2) (and move the cursor) in the rectwindow w"},
+-{"lines",35,(void *)rectlines,10,"vLGG","lines(w,listx,listy)=draws an open polygon in rectwindow w where listx and listy contain the x (resp. y) coordinates of the vertices"},
+-{"move",35,(void*)rectmove,10,"vLGG","move(w,x,y)=move cursor to position x,y in rectwindow w"},
+-{"plot",99,(void *)plot,10,"vV=GGEDGDGp","plot(X=a,b,expr)=crude plot of expression expr, X goes from a to b"},
+-{"ploth",37,(void *)ploth,10,"V=GGEp","ploth(X=a,b,expr)=plot of expression expr, X goes from a to b in high resolution"},
+-{"ploth2",37,(void *)ploth2,10,"V=GGEp","ploth2(X=a,b,[expr1,expr2])=plot of points [expr1,expr2], X goes from a to b in high resolution"},
+-{"plothmult",37,(void *)plothmult,10,"V=GGEp","plothmult(X=a,b,[expr1,...])=plot of expressions expr1,..., X goes from a to b in high resolution"},
+-{"plothraw",2,(void *)plothraw,10,"GGp","plothraw(listx,listy)=plot in high resolution points whose x (resp. y) coordinates are in listx (resp. listy)"},
+-{"point",35,(void *)rectpoint,10,"vLGG","point(w,x,y)=draw a point (and move cursor) at position x,y in rectwindow w"},
+-{"points",35,(void *)rectpoints,10,"vLGG","points(w,listx,listy)=draws in rectwindow w the points whose x (resp y) coordinates are in listx (resp listy)"},
+-{"postdraw",1,(void *)postdraw,10,"vG","postdraw(list)=same as plotdraw, except that the output is a PostScript program in file \"pari.ps\""},
+-{"postploth",37,(void *)postploth,10,"V=GGEpD0,L,D0,L,","postploth(X=a,b,expr)=same as ploth, except that the output is a PostScript program in the file \"pari.ps\""},
+-{"postploth2",37,(void *)postploth2,10,"V=GGEpD0,L,","postploth2(X=a,b,[expr1,expr2])=same as ploth2, except that the output is a PostScript program in the file \"pari.ps\""},
+-{"postplothraw",2,(void *)postplothraw,10,"GGD0,L,","postplothraw(listx,listy)=same as plothraw, except that the output is a PostScript program in the file \"pari.ps\""},
+-{"pprint",0,(void*)print,11,"vs*","pprint(a)=outputs a in beautified format ending with newline"},
+-{"pprint1",0,(void*)print1,11,"vs*","pprint1(a)=outputs a in beautified format without ending with newline"},
+-{"print",0,(void*)print,11,"vs*","print(a)=outputs a in raw format ending with newline"},
+-{"print1",0,(void*)print1,11,"vs*","print1(a)=outputs a in raw format without ending with newline"},
+-{"rbox",35,(void *)rectrbox,10,"vLGG","rbox(w,dx,dy)=if the cursor is at (x1,y1), draw a box with diagonal (x1,y1)-(x1+dx,y1+dy) in rectwindow w (cursor does not move)"},
+-{"read",0,(void *)input0,11,"","read()=read an expression from the input file or standard input"},
+-{"rline",35,(void *)rectrline,10,"vLGG","rline(w,dx,dy)=if the cursor is at (x1,y1), draw a line from (x1,y1) to (x1+dx,y1+dy) (and move the cursor) in the rectwindow w"},
+-{"rlines",35,(void *)rectlines,10,"vLGG","rlines(w,dx,dy)=draw in rectwindow w the points given by vector of first coordinates xsand vector of second coordinates, connect them by lines"},
+-{"rmove",35,(void *)rectrmove,10,"vLGG","rmove(w,dx,dy)=move cursor to position (dx,dy) relative to the present position in the rectwindow w"},
+-{"rpoint",35,(void *)rectrpoint,10,"vLGG","rpoint(w,dx,dy)=draw a point (and move cursor) at position dx,dy relative to present position of the cursor in rectwindow w"},
+-{"rpoints",35,(void *)rectpoints,10,"vLGG","rpoints(w,xs,ys)=draw in rectwindow w the points given by vector of first coordinates xs and vector of second coordinates ys"},
+-{"scale",59,(void *)rectscale,10,"vLGGGG","scale(w,x1,x2,y1,y2)=scale the coordinates in rectwindow w so that x goes from x1 to x2 and y from y1 to y2 (y2<y1 is allowed)"},
+-{"setprecision",15,(void *)setprecr,2,"lL","setprecision(n)=set the current precision to n decimal digits if n>0, or return the current precision if n<=0"},
+-{"setserieslength",15,(void *)setserieslength,2,"lL","setserieslength(n)=set the default length of power series to n if n>0, or return the current default length if n<=0"},
+-{"settype",21,(void *)gsettype,2,"GL","settype(x,t)=make a copy of x with type t (to use with extreme care)"},
+-{"string",57,(void*)rectstring,10,"vLs","string(w,x)=draw in rectwindow w the string corresponding to x, where x is either a string, or a number in R, written in format 9.3"},
+-{"system",70,(void*) system0,11,"vs","system(a): a being a string, execute the system command a (not valid on every machine)"},
+-{"texprint",0,(void*)printtex,11,"vs*","texprint(a)=outputs a in TeX format"},
+-{"type",1,(void *)gtype,2,"Gp","type(x)=internal type number of the GEN x"},
++{"allocatemem",11,(void *)allocatemem0,2,"vLp","allocatemem(s)=allocates a new stack of s bytes, or doubles the stack if size is 0",NULL,0,NULL},
++{"box",35,(void *)rectbox,10,"vLGG","box(w,x2,y2)=if the cursor is at position (x1,y1), draw a box with diagonal (x1,y1) and (x2,y2) in rectwindow w (cursor does not move)",NULL,0,NULL},
++{"color",2,(void *)rectcolor,2,"vLL","color(w,c)=set default color to c in rectwindow. Possible values for c are 1=sienna, 2=cornsilk, 3=red, 4=black, 5=grey, 6=blue, 7=gainsborough",NULL,0,NULL},
++{"cursor",11,(void*)rectcursor,10,"vLp","cursor(w)=current position of cursor in rectwindow w",NULL,0,NULL},
++{"default",0,(void*)default0,11,"D\"\",r,D\"\",s,D0,L,","default({opt},{v},{flag}): set the default opt to v. If v is omitted, print the current default for opt. If no argument is given, print a list of all defaults as well as their values. If flag is non-zero, return the result instead of printing it on screen. See manual for details",NULL,0,NULL},
++{"draw",1,(void*)rectdraw,10,"vGp","draw(list)=draw vector of rectwindows list at indicated x,y positions; list is a vector w1,x1,y1,w2,x2,y2,etc...",NULL,0,NULL},
++{"initrect",34,(void*)initrect,10,"vLLL","initrect(w,x,y)=initialize rectwindow w to size x,y",NULL,0,NULL},
++{"kill",85,(void*)kill0,11,"vr","kill(x)=kills the present value of the variable or function x. Returns new value or 0",NULL,0,NULL},
++{"killrect",11,(void *)killrect,10,"vL","killrect(w)=erase the rectwindow w",NULL,0,NULL},
++{"line",35,(void *)rectline,10,"vLGG","line(w,x2,y2)=if cursor is at position (x1,y1), draw a line from (x1,y1) to (x2,y2) (and move the cursor) in the rectwindow w",NULL,0,NULL},
++{"lines",35,(void *)rectlines,10,"vLGG","lines(w,listx,listy)=draws an open polygon in rectwindow w where listx and listy contain the x (resp. y) coordinates of the vertices",NULL,0,NULL},
++{"move",35,(void*)rectmove,10,"vLGG","move(w,x,y)=move cursor to position x,y in rectwindow w",NULL,0,NULL},
++{"plot",99,(void *)plot,10,"vV=GGEDGDGp","plot(X=a,b,expr)=crude plot of expression expr, X goes from a to b",NULL,0,NULL},
++{"ploth",37,(void *)ploth,10,"V=GGEp","ploth(X=a,b,expr)=plot of expression expr, X goes from a to b in high resolution",NULL,0,NULL},
++{"ploth2",37,(void *)ploth2,10,"V=GGEp","ploth2(X=a,b,[expr1,expr2])=plot of points [expr1,expr2], X goes from a to b in high resolution",NULL,0,NULL},
++{"plothmult",37,(void *)plothmult,10,"V=GGEp","plothmult(X=a,b,[expr1,...])=plot of expressions expr1,..., X goes from a to b in high resolution",NULL,0,NULL},
++{"plothraw",2,(void *)plothraw,10,"GGp","plothraw(listx,listy)=plot in high resolution points whose x (resp. y) coordinates are in listx (resp. listy)",NULL,0,NULL},
++{"point",35,(void *)rectpoint,10,"vLGG","point(w,x,y)=draw a point (and move cursor) at position x,y in rectwindow w",NULL,0,NULL},
++{"points",35,(void *)rectpoints,10,"vLGG","points(w,listx,listy)=draws in rectwindow w the points whose x (resp y) coordinates are in listx (resp listy)",NULL,0,NULL},
++{"postdraw",1,(void *)postdraw,10,"vG","postdraw(list)=same as plotdraw, except that the output is a PostScript program in file \"pari.ps\"",NULL,0,NULL},
++{"postploth",37,(void *)postploth,10,"V=GGEpD0,L,D0,L,","postploth(X=a,b,expr)=same as ploth, except that the output is a PostScript program in the file \"pari.ps\"",NULL,0,NULL},
++{"postploth2",37,(void *)postploth2,10,"V=GGEpD0,L,","postploth2(X=a,b,[expr1,expr2])=same as ploth2, except that the output is a PostScript program in the file \"pari.ps\"",NULL,0,NULL},
++{"postplothraw",2,(void *)postplothraw,10,"GGD0,L,","postplothraw(listx,listy)=same as plothraw, except that the output is a PostScript program in the file \"pari.ps\"",NULL,0,NULL},
++{"pprint",0,(void*)print,11,"vs*","pprint(a)=outputs a in beautified format ending with newline",NULL,0,NULL},
++{"pprint1",0,(void*)print1,11,"vs*","pprint1(a)=outputs a in beautified format without ending with newline",NULL,0,NULL},
++{"print",0,(void*)print,11,"vs*","print(a)=outputs a in raw format ending with newline",NULL,0,NULL},
++{"print1",0,(void*)print1,11,"vs*","print1(a)=outputs a in raw format without ending with newline",NULL,0,NULL},
++{"rbox",35,(void *)rectrbox,10,"vLGG","rbox(w,dx,dy)=if the cursor is at (x1,y1), draw a box with diagonal (x1,y1)-(x1+dx,y1+dy) in rectwindow w (cursor does not move)",NULL,0,NULL},
++{"read",0,(void *)input0,11,"","read()=read an expression from the input file or standard input",NULL,0,NULL},
++{"rline",35,(void *)rectrline,10,"vLGG","rline(w,dx,dy)=if the cursor is at (x1,y1), draw a line from (x1,y1) to (x1+dx,y1+dy) (and move the cursor) in the rectwindow w",NULL,0,NULL},
++{"rlines",35,(void *)rectlines,10,"vLGG","rlines(w,dx,dy)=draw in rectwindow w the points given by vector of first coordinates xsand vector of second coordinates, connect them by lines",NULL,0,NULL},
++{"rmove",35,(void *)rectrmove,10,"vLGG","rmove(w,dx,dy)=move cursor to position (dx,dy) relative to the present position in the rectwindow w",NULL,0,NULL},
++{"rpoint",35,(void *)rectrpoint,10,"vLGG","rpoint(w,dx,dy)=draw a point (and move cursor) at position dx,dy relative to present position of the cursor in rectwindow w",NULL,0,NULL},
++{"rpoints",35,(void *)rectpoints,10,"vLGG","rpoints(w,xs,ys)=draw in rectwindow w the points given by vector of first coordinates xs and vector of second coordinates ys",NULL,0,NULL},
++{"scale",59,(void *)rectscale,10,"vLGGGG","scale(w,x1,x2,y1,y2)=scale the coordinates in rectwindow w so that x goes from x1 to x2 and y from y1 to y2 (y2<y1 is allowed)",NULL,0,NULL},
++{"setprecision",15,(void *)setprecr,2,"lL","setprecision(n)=set the current precision to n decimal digits if n>0, or return the current precision if n<=0",NULL,0,NULL},
++{"setserieslength",15,(void *)setserieslength,2,"lL","setserieslength(n)=set the default length of power series to n if n>0, or return the current default length if n<=0",NULL,0,NULL},
++{"settype",21,(void *)gsettype,2,"GL","settype(x,t)=make a copy of x with type t (to use with extreme care)",NULL,0,NULL},
++{"string",57,(void*)rectstring,10,"vLs","string(w,x)=draw in rectwindow w the string corresponding to x, where x is either a string, or a number in R, written in format 9.3",NULL,0,NULL},
++{"system",70,(void*) system0,11,"vs","system(a): a being a string, execute the system command a (not valid on every machine)",NULL,0,NULL},
++{"texprint",0,(void*)printtex,11,"vs*","texprint(a)=outputs a in TeX format",NULL,0,NULL},
++{"type",1,(void *)gtype,2,"Gp","type(x)=internal type number of the GEN x",NULL,0,NULL},
+ 
+-{NULL,0,NULL,0,NULL,NULL} /* sentinel */
++{NULL,0,NULL,0,NULL,NULL,NULL,0,NULL} /* sentinel */
+ ,};
+--- src/graph/plotport.c
++++ src/graph/plotport.c
+@@ -2210,665 +2210,665 @@ while(<>)
+ #endif
+ 
+ static hashentry col_list[] = {
+-{(void*)"snow", (void*)0xfffafa},
+-{(void*)"ghostwhite", (void*)0xf8f8ff},
+-{(void*)"whitesmoke", (void*)0xf5f5f5},
+-{(void*)"gainsboro", (void*)0xdcdcdc},
+-{(void*)"floralwhite", (void*)0xfffaf0},
+-{(void*)"oldlace", (void*)0xfdf5e6},
+-{(void*)"linen", (void*)0xfaf0e6},
+-{(void*)"antiquewhite", (void*)0xfaebd7},
+-{(void*)"papayawhip", (void*)0xffefd5},
+-{(void*)"blanchedalmond", (void*)0xffebcd},
+-{(void*)"bisque", (void*)0xffe4c4},
+-{(void*)"peachpuff", (void*)0xffdab9},
+-{(void*)"navajowhite", (void*)0xffdead},
+-{(void*)"moccasin", (void*)0xffe4b5},
+-{(void*)"cornsilk", (void*)0xfff8dc},
+-{(void*)"ivory", (void*)0xfffff0},
+-{(void*)"lemonchiffon", (void*)0xfffacd},
+-{(void*)"seashell", (void*)0xfff5ee},
+-{(void*)"honeydew", (void*)0xf0fff0},
+-{(void*)"mintcream", (void*)0xf5fffa},
+-{(void*)"azure", (void*)0xf0ffff},
+-{(void*)"aliceblue", (void*)0xf0f8ff},
+-{(void*)"lavender", (void*)0xe6e6fa},
+-{(void*)"lavenderblush", (void*)0xfff0f5},
+-{(void*)"mistyrose", (void*)0xffe4e1},
+-{(void*)"white", (void*)0xffffff},
+-{(void*)"black", (void*)0x000000},
+-{(void*)"darkslategray", (void*)0x2f4f4f},
+-{(void*)"darkslategrey", (void*)0x2f4f4f},
+-{(void*)"dimgray", (void*)0x696969},
+-{(void*)"dimgrey", (void*)0x696969},
+-{(void*)"slategray", (void*)0x708090},
+-{(void*)"slategrey", (void*)0x708090},
+-{(void*)"lightslategray", (void*)0x778899},
+-{(void*)"lightslategrey", (void*)0x778899},
+-{(void*)"gray", (void*)0xbebebe},
+-{(void*)"grey", (void*)0xbebebe},
+-{(void*)"lightgrey", (void*)0xd3d3d3},
+-{(void*)"lightgray", (void*)0xd3d3d3},
+-{(void*)"midnightblue", (void*)0x191970},
+-{(void*)"navy", (void*)0x000080},
+-{(void*)"navyblue", (void*)0x000080},
+-{(void*)"cornflowerblue", (void*)0x6495ed},
+-{(void*)"darkslateblue", (void*)0x483d8b},
+-{(void*)"slateblue", (void*)0x6a5acd},
+-{(void*)"mediumslateblue", (void*)0x7b68ee},
+-{(void*)"lightslateblue", (void*)0x8470ff},
+-{(void*)"mediumblue", (void*)0x0000cd},
+-{(void*)"royalblue", (void*)0x4169e1},
+-{(void*)"blue", (void*)0x0000ff},
+-{(void*)"dodgerblue", (void*)0x1e90ff},
+-{(void*)"deepskyblue", (void*)0x00bfff},
+-{(void*)"skyblue", (void*)0x87ceeb},
+-{(void*)"lightskyblue", (void*)0x87cefa},
+-{(void*)"steelblue", (void*)0x4682b4},
+-{(void*)"lightsteelblue", (void*)0xb0c4de},
+-{(void*)"lightblue", (void*)0xadd8e6},
+-{(void*)"powderblue", (void*)0xb0e0e6},
+-{(void*)"paleturquoise", (void*)0xafeeee},
+-{(void*)"darkturquoise", (void*)0x00ced1},
+-{(void*)"mediumturquoise", (void*)0x48d1cc},
+-{(void*)"turquoise", (void*)0x40e0d0},
+-{(void*)"cyan", (void*)0x00ffff},
+-{(void*)"lightcyan", (void*)0xe0ffff},
+-{(void*)"cadetblue", (void*)0x5f9ea0},
+-{(void*)"mediumaquamarine", (void*)0x66cdaa},
+-{(void*)"aquamarine", (void*)0x7fffd4},
+-{(void*)"darkgreen", (void*)0x006400},
+-{(void*)"darkolivegreen", (void*)0x556b2f},
+-{(void*)"darkseagreen", (void*)0x8fbc8f},
+-{(void*)"seagreen", (void*)0x2e8b57},
+-{(void*)"mediumseagreen", (void*)0x3cb371},
+-{(void*)"lightseagreen", (void*)0x20b2aa},
+-{(void*)"palegreen", (void*)0x98fb98},
+-{(void*)"springgreen", (void*)0x00ff7f},
+-{(void*)"lawngreen", (void*)0x7cfc00},
+-{(void*)"green", (void*)0x00ff00},
+-{(void*)"chartreuse", (void*)0x7fff00},
+-{(void*)"mediumspringgreen", (void*)0x00fa9a},
+-{(void*)"greenyellow", (void*)0xadff2f},
+-{(void*)"limegreen", (void*)0x32cd32},
+-{(void*)"yellowgreen", (void*)0x9acd32},
+-{(void*)"forestgreen", (void*)0x228b22},
+-{(void*)"olivedrab", (void*)0x6b8e23},
+-{(void*)"darkkhaki", (void*)0xbdb76b},
+-{(void*)"khaki", (void*)0xf0e68c},
+-{(void*)"palegoldenrod", (void*)0xeee8aa},
+-{(void*)"lightgoldenrodyellow", (void*)0xfafad2},
+-{(void*)"lightyellow", (void*)0xffffe0},
+-{(void*)"yellow", (void*)0xffff00},
+-{(void*)"gold", (void*)0xffd700},
+-{(void*)"lightgoldenrod", (void*)0xeedd82},
+-{(void*)"goldenrod", (void*)0xdaa520},
+-{(void*)"darkgoldenrod", (void*)0xb8860b},
+-{(void*)"rosybrown", (void*)0xbc8f8f},
+-{(void*)"indianred", (void*)0xcd5c5c},
+-{(void*)"saddlebrown", (void*)0x8b4513},
+-{(void*)"sienna", (void*)0xa0522d},
+-{(void*)"peru", (void*)0xcd853f},
+-{(void*)"burlywood", (void*)0xdeb887},
+-{(void*)"beige", (void*)0xf5f5dc},
+-{(void*)"wheat", (void*)0xf5deb3},
+-{(void*)"sandybrown", (void*)0xf4a460},
+-{(void*)"tan", (void*)0xd2b48c},
+-{(void*)"chocolate", (void*)0xd2691e},
+-{(void*)"firebrick", (void*)0xb22222},
+-{(void*)"brown", (void*)0xa52a2a},
+-{(void*)"darksalmon", (void*)0xe9967a},
+-{(void*)"salmon", (void*)0xfa8072},
+-{(void*)"lightsalmon", (void*)0xffa07a},
+-{(void*)"orange", (void*)0xffa500},
+-{(void*)"darkorange", (void*)0xff8c00},
+-{(void*)"coral", (void*)0xff7f50},
+-{(void*)"lightcoral", (void*)0xf08080},
+-{(void*)"tomato", (void*)0xff6347},
+-{(void*)"orangered", (void*)0xff4500},
+-{(void*)"red", (void*)0xff0000},
+-{(void*)"hotpink", (void*)0xff69b4},
+-{(void*)"deeppink", (void*)0xff1493},
+-{(void*)"pink", (void*)0xffc0cb},
+-{(void*)"lightpink", (void*)0xffb6c1},
+-{(void*)"palevioletred", (void*)0xdb7093},
+-{(void*)"maroon", (void*)0xb03060},
+-{(void*)"mediumvioletred", (void*)0xc71585},
+-{(void*)"violetred", (void*)0xd02090},
+-{(void*)"magenta", (void*)0xff00ff},
+-{(void*)"violet", (void*)0xee82ee},
+-{(void*)"plum", (void*)0xdda0dd},
+-{(void*)"orchid", (void*)0xda70d6},
+-{(void*)"mediumorchid", (void*)0xba55d3},
+-{(void*)"darkorchid", (void*)0x9932cc},
+-{(void*)"darkviolet", (void*)0x9400d3},
+-{(void*)"blueviolet", (void*)0x8a2be2},
+-{(void*)"purple", (void*)0xa020f0},
+-{(void*)"mediumpurple", (void*)0x9370db},
+-{(void*)"thistle", (void*)0xd8bfd8},
+-{(void*)"snow1", (void*)0xfffafa},
+-{(void*)"snow2", (void*)0xeee9e9},
+-{(void*)"snow3", (void*)0xcdc9c9},
+-{(void*)"snow4", (void*)0x8b8989},
+-{(void*)"seashell1", (void*)0xfff5ee},
+-{(void*)"seashell2", (void*)0xeee5de},
+-{(void*)"seashell3", (void*)0xcdc5bf},
+-{(void*)"seashell4", (void*)0x8b8682},
+-{(void*)"antiquewhite1", (void*)0xffefdb},
+-{(void*)"antiquewhite2", (void*)0xeedfcc},
+-{(void*)"antiquewhite3", (void*)0xcdc0b0},
+-{(void*)"antiquewhite4", (void*)0x8b8378},
+-{(void*)"bisque1", (void*)0xffe4c4},
+-{(void*)"bisque2", (void*)0xeed5b7},
+-{(void*)"bisque3", (void*)0xcdb79e},
+-{(void*)"bisque4", (void*)0x8b7d6b},
+-{(void*)"peachpuff1", (void*)0xffdab9},
+-{(void*)"peachpuff2", (void*)0xeecbad},
+-{(void*)"peachpuff3", (void*)0xcdaf95},
+-{(void*)"peachpuff4", (void*)0x8b7765},
+-{(void*)"navajowhite1", (void*)0xffdead},
+-{(void*)"navajowhite2", (void*)0xeecfa1},
+-{(void*)"navajowhite3", (void*)0xcdb38b},
+-{(void*)"navajowhite4", (void*)0x8b795e},
+-{(void*)"lemonchiffon1", (void*)0xfffacd},
+-{(void*)"lemonchiffon2", (void*)0xeee9bf},
+-{(void*)"lemonchiffon3", (void*)0xcdc9a5},
+-{(void*)"lemonchiffon4", (void*)0x8b8970},
+-{(void*)"cornsilk1", (void*)0xfff8dc},
+-{(void*)"cornsilk2", (void*)0xeee8cd},
+-{(void*)"cornsilk3", (void*)0xcdc8b1},
+-{(void*)"cornsilk4", (void*)0x8b8878},
+-{(void*)"ivory1", (void*)0xfffff0},
+-{(void*)"ivory2", (void*)0xeeeee0},
+-{(void*)"ivory3", (void*)0xcdcdc1},
+-{(void*)"ivory4", (void*)0x8b8b83},
+-{(void*)"honeydew1", (void*)0xf0fff0},
+-{(void*)"honeydew2", (void*)0xe0eee0},
+-{(void*)"honeydew3", (void*)0xc1cdc1},
+-{(void*)"honeydew4", (void*)0x838b83},
+-{(void*)"lavenderblush1", (void*)0xfff0f5},
+-{(void*)"lavenderblush2", (void*)0xeee0e5},
+-{(void*)"lavenderblush3", (void*)0xcdc1c5},
+-{(void*)"lavenderblush4", (void*)0x8b8386},
+-{(void*)"mistyrose1", (void*)0xffe4e1},
+-{(void*)"mistyrose2", (void*)0xeed5d2},
+-{(void*)"mistyrose3", (void*)0xcdb7b5},
+-{(void*)"mistyrose4", (void*)0x8b7d7b},
+-{(void*)"azure1", (void*)0xf0ffff},
+-{(void*)"azure2", (void*)0xe0eeee},
+-{(void*)"azure3", (void*)0xc1cdcd},
+-{(void*)"azure4", (void*)0x838b8b},
+-{(void*)"slateblue1", (void*)0x836fff},
+-{(void*)"slateblue2", (void*)0x7a67ee},
+-{(void*)"slateblue3", (void*)0x6959cd},
+-{(void*)"slateblue4", (void*)0x473c8b},
+-{(void*)"royalblue1", (void*)0x4876ff},
+-{(void*)"royalblue2", (void*)0x436eee},
+-{(void*)"royalblue3", (void*)0x3a5fcd},
+-{(void*)"royalblue4", (void*)0x27408b},
+-{(void*)"blue1", (void*)0x0000ff},
+-{(void*)"blue2", (void*)0x0000ee},
+-{(void*)"blue3", (void*)0x0000cd},
+-{(void*)"blue4", (void*)0x00008b},
+-{(void*)"dodgerblue1", (void*)0x1e90ff},
+-{(void*)"dodgerblue2", (void*)0x1c86ee},
+-{(void*)"dodgerblue3", (void*)0x1874cd},
+-{(void*)"dodgerblue4", (void*)0x104e8b},
+-{(void*)"steelblue1", (void*)0x63b8ff},
+-{(void*)"steelblue2", (void*)0x5cacee},
+-{(void*)"steelblue3", (void*)0x4f94cd},
+-{(void*)"steelblue4", (void*)0x36648b},
+-{(void*)"deepskyblue1", (void*)0x00bfff},
+-{(void*)"deepskyblue2", (void*)0x00b2ee},
+-{(void*)"deepskyblue3", (void*)0x009acd},
+-{(void*)"deepskyblue4", (void*)0x00688b},
+-{(void*)"skyblue1", (void*)0x87ceff},
+-{(void*)"skyblue2", (void*)0x7ec0ee},
+-{(void*)"skyblue3", (void*)0x6ca6cd},
+-{(void*)"skyblue4", (void*)0x4a708b},
+-{(void*)"lightskyblue1", (void*)0xb0e2ff},
+-{(void*)"lightskyblue2", (void*)0xa4d3ee},
+-{(void*)"lightskyblue3", (void*)0x8db6cd},
+-{(void*)"lightskyblue4", (void*)0x607b8b},
+-{(void*)"slategray1", (void*)0xc6e2ff},
+-{(void*)"slategray2", (void*)0xb9d3ee},
+-{(void*)"slategray3", (void*)0x9fb6cd},
+-{(void*)"slategray4", (void*)0x6c7b8b},
+-{(void*)"lightsteelblue1", (void*)0xcae1ff},
+-{(void*)"lightsteelblue2", (void*)0xbcd2ee},
+-{(void*)"lightsteelblue3", (void*)0xa2b5cd},
+-{(void*)"lightsteelblue4", (void*)0x6e7b8b},
+-{(void*)"lightblue1", (void*)0xbfefff},
+-{(void*)"lightblue2", (void*)0xb2dfee},
+-{(void*)"lightblue3", (void*)0x9ac0cd},
+-{(void*)"lightblue4", (void*)0x68838b},
+-{(void*)"lightcyan1", (void*)0xe0ffff},
+-{(void*)"lightcyan2", (void*)0xd1eeee},
+-{(void*)"lightcyan3", (void*)0xb4cdcd},
+-{(void*)"lightcyan4", (void*)0x7a8b8b},
+-{(void*)"paleturquoise1", (void*)0xbbffff},
+-{(void*)"paleturquoise2", (void*)0xaeeeee},
+-{(void*)"paleturquoise3", (void*)0x96cdcd},
+-{(void*)"paleturquoise4", (void*)0x668b8b},
+-{(void*)"cadetblue1", (void*)0x98f5ff},
+-{(void*)"cadetblue2", (void*)0x8ee5ee},
+-{(void*)"cadetblue3", (void*)0x7ac5cd},
+-{(void*)"cadetblue4", (void*)0x53868b},
+-{(void*)"turquoise1", (void*)0x00f5ff},
+-{(void*)"turquoise2", (void*)0x00e5ee},
+-{(void*)"turquoise3", (void*)0x00c5cd},
+-{(void*)"turquoise4", (void*)0x00868b},
+-{(void*)"cyan1", (void*)0x00ffff},
+-{(void*)"cyan2", (void*)0x00eeee},
+-{(void*)"cyan3", (void*)0x00cdcd},
+-{(void*)"cyan4", (void*)0x008b8b},
+-{(void*)"darkslategray1", (void*)0x97ffff},
+-{(void*)"darkslategray2", (void*)0x8deeee},
+-{(void*)"darkslategray3", (void*)0x79cdcd},
+-{(void*)"darkslategray4", (void*)0x528b8b},
+-{(void*)"aquamarine1", (void*)0x7fffd4},
+-{(void*)"aquamarine2", (void*)0x76eec6},
+-{(void*)"aquamarine3", (void*)0x66cdaa},
+-{(void*)"aquamarine4", (void*)0x458b74},
+-{(void*)"darkseagreen1", (void*)0xc1ffc1},
+-{(void*)"darkseagreen2", (void*)0xb4eeb4},
+-{(void*)"darkseagreen3", (void*)0x9bcd9b},
+-{(void*)"darkseagreen4", (void*)0x698b69},
+-{(void*)"seagreen1", (void*)0x54ff9f},
+-{(void*)"seagreen2", (void*)0x4eee94},
+-{(void*)"seagreen3", (void*)0x43cd80},
+-{(void*)"seagreen4", (void*)0x2e8b57},
+-{(void*)"palegreen1", (void*)0x9aff9a},
+-{(void*)"palegreen2", (void*)0x90ee90},
+-{(void*)"palegreen3", (void*)0x7ccd7c},
+-{(void*)"palegreen4", (void*)0x548b54},
+-{(void*)"springgreen1", (void*)0x00ff7f},
+-{(void*)"springgreen2", (void*)0x00ee76},
+-{(void*)"springgreen3", (void*)0x00cd66},
+-{(void*)"springgreen4", (void*)0x008b45},
+-{(void*)"green1", (void*)0x00ff00},
+-{(void*)"green2", (void*)0x00ee00},
+-{(void*)"green3", (void*)0x00cd00},
+-{(void*)"green4", (void*)0x008b00},
+-{(void*)"chartreuse1", (void*)0x7fff00},
+-{(void*)"chartreuse2", (void*)0x76ee00},
+-{(void*)"chartreuse3", (void*)0x66cd00},
+-{(void*)"chartreuse4", (void*)0x458b00},
+-{(void*)"olivedrab1", (void*)0xc0ff3e},
+-{(void*)"olivedrab2", (void*)0xb3ee3a},
+-{(void*)"olivedrab3", (void*)0x9acd32},
+-{(void*)"olivedrab4", (void*)0x698b22},
+-{(void*)"darkolivegreen1", (void*)0xcaff70},
+-{(void*)"darkolivegreen2", (void*)0xbcee68},
+-{(void*)"darkolivegreen3", (void*)0xa2cd5a},
+-{(void*)"darkolivegreen4", (void*)0x6e8b3d},
+-{(void*)"khaki1", (void*)0xfff68f},
+-{(void*)"khaki2", (void*)0xeee685},
+-{(void*)"khaki3", (void*)0xcdc673},
+-{(void*)"khaki4", (void*)0x8b864e},
+-{(void*)"lightgoldenrod1", (void*)0xffec8b},
+-{(void*)"lightgoldenrod2", (void*)0xeedc82},
+-{(void*)"lightgoldenrod3", (void*)0xcdbe70},
+-{(void*)"lightgoldenrod4", (void*)0x8b814c},
+-{(void*)"lightyellow1", (void*)0xffffe0},
+-{(void*)"lightyellow2", (void*)0xeeeed1},
+-{(void*)"lightyellow3", (void*)0xcdcdb4},
+-{(void*)"lightyellow4", (void*)0x8b8b7a},
+-{(void*)"yellow1", (void*)0xffff00},
+-{(void*)"yellow2", (void*)0xeeee00},
+-{(void*)"yellow3", (void*)0xcdcd00},
+-{(void*)"yellow4", (void*)0x8b8b00},
+-{(void*)"gold1", (void*)0xffd700},
+-{(void*)"gold2", (void*)0xeec900},
+-{(void*)"gold3", (void*)0xcdad00},
+-{(void*)"gold4", (void*)0x8b7500},
+-{(void*)"goldenrod1", (void*)0xffc125},
+-{(void*)"goldenrod2", (void*)0xeeb422},
+-{(void*)"goldenrod3", (void*)0xcd9b1d},
+-{(void*)"goldenrod4", (void*)0x8b6914},
+-{(void*)"darkgoldenrod1", (void*)0xffb90f},
+-{(void*)"darkgoldenrod2", (void*)0xeead0e},
+-{(void*)"darkgoldenrod3", (void*)0xcd950c},
+-{(void*)"darkgoldenrod4", (void*)0x8b6508},
+-{(void*)"rosybrown1", (void*)0xffc1c1},
+-{(void*)"rosybrown2", (void*)0xeeb4b4},
+-{(void*)"rosybrown3", (void*)0xcd9b9b},
+-{(void*)"rosybrown4", (void*)0x8b6969},
+-{(void*)"indianred1", (void*)0xff6a6a},
+-{(void*)"indianred2", (void*)0xee6363},
+-{(void*)"indianred3", (void*)0xcd5555},
+-{(void*)"indianred4", (void*)0x8b3a3a},
+-{(void*)"sienna1", (void*)0xff8247},
+-{(void*)"sienna2", (void*)0xee7942},
+-{(void*)"sienna3", (void*)0xcd6839},
+-{(void*)"sienna4", (void*)0x8b4726},
+-{(void*)"burlywood1", (void*)0xffd39b},
+-{(void*)"burlywood2", (void*)0xeec591},
+-{(void*)"burlywood3", (void*)0xcdaa7d},
+-{(void*)"burlywood4", (void*)0x8b7355},
+-{(void*)"wheat1", (void*)0xffe7ba},
+-{(void*)"wheat2", (void*)0xeed8ae},
+-{(void*)"wheat3", (void*)0xcdba96},
+-{(void*)"wheat4", (void*)0x8b7e66},
+-{(void*)"tan1", (void*)0xffa54f},
+-{(void*)"tan2", (void*)0xee9a49},
+-{(void*)"tan3", (void*)0xcd853f},
+-{(void*)"tan4", (void*)0x8b5a2b},
+-{(void*)"chocolate1", (void*)0xff7f24},
+-{(void*)"chocolate2", (void*)0xee7621},
+-{(void*)"chocolate3", (void*)0xcd661d},
+-{(void*)"chocolate4", (void*)0x8b4513},
+-{(void*)"firebrick1", (void*)0xff3030},
+-{(void*)"firebrick2", (void*)0xee2c2c},
+-{(void*)"firebrick3", (void*)0xcd2626},
+-{(void*)"firebrick4", (void*)0x8b1a1a},
+-{(void*)"brown1", (void*)0xff4040},
+-{(void*)"brown2", (void*)0xee3b3b},
+-{(void*)"brown3", (void*)0xcd3333},
+-{(void*)"brown4", (void*)0x8b2323},
+-{(void*)"salmon1", (void*)0xff8c69},
+-{(void*)"salmon2", (void*)0xee8262},
+-{(void*)"salmon3", (void*)0xcd7054},
+-{(void*)"salmon4", (void*)0x8b4c39},
+-{(void*)"lightsalmon1", (void*)0xffa07a},
+-{(void*)"lightsalmon2", (void*)0xee9572},
+-{(void*)"lightsalmon3", (void*)0xcd8162},
+-{(void*)"lightsalmon4", (void*)0x8b5742},
+-{(void*)"orange1", (void*)0xffa500},
+-{(void*)"orange2", (void*)0xee9a00},
+-{(void*)"orange3", (void*)0xcd8500},
+-{(void*)"orange4", (void*)0x8b5a00},
+-{(void*)"darkorange1", (void*)0xff7f00},
+-{(void*)"darkorange2", (void*)0xee7600},
+-{(void*)"darkorange3", (void*)0xcd6600},
+-{(void*)"darkorange4", (void*)0x8b4500},
+-{(void*)"coral1", (void*)0xff7256},
+-{(void*)"coral2", (void*)0xee6a50},
+-{(void*)"coral3", (void*)0xcd5b45},
+-{(void*)"coral4", (void*)0x8b3e2f},
+-{(void*)"tomato1", (void*)0xff6347},
+-{(void*)"tomato2", (void*)0xee5c42},
+-{(void*)"tomato3", (void*)0xcd4f39},
+-{(void*)"tomato4", (void*)0x8b3626},
+-{(void*)"orangered1", (void*)0xff4500},
+-{(void*)"orangered2", (void*)0xee4000},
+-{(void*)"orangered3", (void*)0xcd3700},
+-{(void*)"orangered4", (void*)0x8b2500},
+-{(void*)"red1", (void*)0xff0000},
+-{(void*)"red2", (void*)0xee0000},
+-{(void*)"red3", (void*)0xcd0000},
+-{(void*)"red4", (void*)0x8b0000},
+-{(void*)"debianred", (void*)0xd70751},
+-{(void*)"deeppink1", (void*)0xff1493},
+-{(void*)"deeppink2", (void*)0xee1289},
+-{(void*)"deeppink3", (void*)0xcd1076},
+-{(void*)"deeppink4", (void*)0x8b0a50},
+-{(void*)"hotpink1", (void*)0xff6eb4},
+-{(void*)"hotpink2", (void*)0xee6aa7},
+-{(void*)"hotpink3", (void*)0xcd6090},
+-{(void*)"hotpink4", (void*)0x8b3a62},
+-{(void*)"pink1", (void*)0xffb5c5},
+-{(void*)"pink2", (void*)0xeea9b8},
+-{(void*)"pink3", (void*)0xcd919e},
+-{(void*)"pink4", (void*)0x8b636c},
+-{(void*)"lightpink1", (void*)0xffaeb9},
+-{(void*)"lightpink2", (void*)0xeea2ad},
+-{(void*)"lightpink3", (void*)0xcd8c95},
+-{(void*)"lightpink4", (void*)0x8b5f65},
+-{(void*)"palevioletred1", (void*)0xff82ab},
+-{(void*)"palevioletred2", (void*)0xee799f},
+-{(void*)"palevioletred3", (void*)0xcd6889},
+-{(void*)"palevioletred4", (void*)0x8b475d},
+-{(void*)"maroon1", (void*)0xff34b3},
+-{(void*)"maroon2", (void*)0xee30a7},
+-{(void*)"maroon3", (void*)0xcd2990},
+-{(void*)"maroon4", (void*)0x8b1c62},
+-{(void*)"violetred1", (void*)0xff3e96},
+-{(void*)"violetred2", (void*)0xee3a8c},
+-{(void*)"violetred3", (void*)0xcd3278},
+-{(void*)"violetred4", (void*)0x8b2252},
+-{(void*)"magenta1", (void*)0xff00ff},
+-{(void*)"magenta2", (void*)0xee00ee},
+-{(void*)"magenta3", (void*)0xcd00cd},
+-{(void*)"magenta4", (void*)0x8b008b},
+-{(void*)"orchid1", (void*)0xff83fa},
+-{(void*)"orchid2", (void*)0xee7ae9},
+-{(void*)"orchid3", (void*)0xcd69c9},
+-{(void*)"orchid4", (void*)0x8b4789},
+-{(void*)"plum1", (void*)0xffbbff},
+-{(void*)"plum2", (void*)0xeeaeee},
+-{(void*)"plum3", (void*)0xcd96cd},
+-{(void*)"plum4", (void*)0x8b668b},
+-{(void*)"mediumorchid1", (void*)0xe066ff},
+-{(void*)"mediumorchid2", (void*)0xd15fee},
+-{(void*)"mediumorchid3", (void*)0xb452cd},
+-{(void*)"mediumorchid4", (void*)0x7a378b},
+-{(void*)"darkorchid1", (void*)0xbf3eff},
+-{(void*)"darkorchid2", (void*)0xb23aee},
+-{(void*)"darkorchid3", (void*)0x9a32cd},
+-{(void*)"darkorchid4", (void*)0x68228b},
+-{(void*)"purple1", (void*)0x9b30ff},
+-{(void*)"purple2", (void*)0x912cee},
+-{(void*)"purple3", (void*)0x7d26cd},
+-{(void*)"purple4", (void*)0x551a8b},
+-{(void*)"mediumpurple1", (void*)0xab82ff},
+-{(void*)"mediumpurple2", (void*)0x9f79ee},
+-{(void*)"mediumpurple3", (void*)0x8968cd},
+-{(void*)"mediumpurple4", (void*)0x5d478b},
+-{(void*)"thistle1", (void*)0xffe1ff},
+-{(void*)"thistle2", (void*)0xeed2ee},
+-{(void*)"thistle3", (void*)0xcdb5cd},
+-{(void*)"thistle4", (void*)0x8b7b8b},
+-{(void*)"gray0", (void*)0x000000},
+-{(void*)"grey0", (void*)0x000000},
+-{(void*)"gray1", (void*)0x030303},
+-{(void*)"grey1", (void*)0x030303},
+-{(void*)"gray2", (void*)0x050505},
+-{(void*)"grey2", (void*)0x050505},
+-{(void*)"gray3", (void*)0x080808},
+-{(void*)"grey3", (void*)0x080808},
+-{(void*)"gray4", (void*)0x0a0a0a},
+-{(void*)"grey4", (void*)0x0a0a0a},
+-{(void*)"gray5", (void*)0x0d0d0d},
+-{(void*)"grey5", (void*)0x0d0d0d},
+-{(void*)"gray6", (void*)0x0f0f0f},
+-{(void*)"grey6", (void*)0x0f0f0f},
+-{(void*)"gray7", (void*)0x121212},
+-{(void*)"grey7", (void*)0x121212},
+-{(void*)"gray8", (void*)0x141414},
+-{(void*)"grey8", (void*)0x141414},
+-{(void*)"gray9", (void*)0x171717},
+-{(void*)"grey9", (void*)0x171717},
+-{(void*)"gray10", (void*)0x1a1a1a},
+-{(void*)"grey10", (void*)0x1a1a1a},
+-{(void*)"gray11", (void*)0x1c1c1c},
+-{(void*)"grey11", (void*)0x1c1c1c},
+-{(void*)"gray12", (void*)0x1f1f1f},
+-{(void*)"grey12", (void*)0x1f1f1f},
+-{(void*)"gray13", (void*)0x212121},
+-{(void*)"grey13", (void*)0x212121},
+-{(void*)"gray14", (void*)0x242424},
+-{(void*)"grey14", (void*)0x242424},
+-{(void*)"gray15", (void*)0x262626},
+-{(void*)"grey15", (void*)0x262626},
+-{(void*)"gray16", (void*)0x292929},
+-{(void*)"grey16", (void*)0x292929},
+-{(void*)"gray17", (void*)0x2b2b2b},
+-{(void*)"grey17", (void*)0x2b2b2b},
+-{(void*)"gray18", (void*)0x2e2e2e},
+-{(void*)"grey18", (void*)0x2e2e2e},
+-{(void*)"gray19", (void*)0x303030},
+-{(void*)"grey19", (void*)0x303030},
+-{(void*)"gray20", (void*)0x333333},
+-{(void*)"grey20", (void*)0x333333},
+-{(void*)"gray21", (void*)0x363636},
+-{(void*)"grey21", (void*)0x363636},
+-{(void*)"gray22", (void*)0x383838},
+-{(void*)"grey22", (void*)0x383838},
+-{(void*)"gray23", (void*)0x3b3b3b},
+-{(void*)"grey23", (void*)0x3b3b3b},
+-{(void*)"gray24", (void*)0x3d3d3d},
+-{(void*)"grey24", (void*)0x3d3d3d},
+-{(void*)"gray25", (void*)0x404040},
+-{(void*)"grey25", (void*)0x404040},
+-{(void*)"gray26", (void*)0x424242},
+-{(void*)"grey26", (void*)0x424242},
+-{(void*)"gray27", (void*)0x454545},
+-{(void*)"grey27", (void*)0x454545},
+-{(void*)"gray28", (void*)0x474747},
+-{(void*)"grey28", (void*)0x474747},
+-{(void*)"gray29", (void*)0x4a4a4a},
+-{(void*)"grey29", (void*)0x4a4a4a},
+-{(void*)"gray30", (void*)0x4d4d4d},
+-{(void*)"grey30", (void*)0x4d4d4d},
+-{(void*)"gray31", (void*)0x4f4f4f},
+-{(void*)"grey31", (void*)0x4f4f4f},
+-{(void*)"gray32", (void*)0x525252},
+-{(void*)"grey32", (void*)0x525252},
+-{(void*)"gray33", (void*)0x545454},
+-{(void*)"grey33", (void*)0x545454},
+-{(void*)"gray34", (void*)0x575757},
+-{(void*)"grey34", (void*)0x575757},
+-{(void*)"gray35", (void*)0x595959},
+-{(void*)"grey35", (void*)0x595959},
+-{(void*)"gray36", (void*)0x5c5c5c},
+-{(void*)"grey36", (void*)0x5c5c5c},
+-{(void*)"gray37", (void*)0x5e5e5e},
+-{(void*)"grey37", (void*)0x5e5e5e},
+-{(void*)"gray38", (void*)0x616161},
+-{(void*)"grey38", (void*)0x616161},
+-{(void*)"gray39", (void*)0x636363},
+-{(void*)"grey39", (void*)0x636363},
+-{(void*)"gray40", (void*)0x666666},
+-{(void*)"grey40", (void*)0x666666},
+-{(void*)"gray41", (void*)0x696969},
+-{(void*)"grey41", (void*)0x696969},
+-{(void*)"gray42", (void*)0x6b6b6b},
+-{(void*)"grey42", (void*)0x6b6b6b},
+-{(void*)"gray43", (void*)0x6e6e6e},
+-{(void*)"grey43", (void*)0x6e6e6e},
+-{(void*)"gray44", (void*)0x707070},
+-{(void*)"grey44", (void*)0x707070},
+-{(void*)"gray45", (void*)0x737373},
+-{(void*)"grey45", (void*)0x737373},
+-{(void*)"gray46", (void*)0x757575},
+-{(void*)"grey46", (void*)0x757575},
+-{(void*)"gray47", (void*)0x787878},
+-{(void*)"grey47", (void*)0x787878},
+-{(void*)"gray48", (void*)0x7a7a7a},
+-{(void*)"grey48", (void*)0x7a7a7a},
+-{(void*)"gray49", (void*)0x7d7d7d},
+-{(void*)"grey49", (void*)0x7d7d7d},
+-{(void*)"gray50", (void*)0x7f7f7f},
+-{(void*)"grey50", (void*)0x7f7f7f},
+-{(void*)"gray51", (void*)0x828282},
+-{(void*)"grey51", (void*)0x828282},
+-{(void*)"gray52", (void*)0x858585},
+-{(void*)"grey52", (void*)0x858585},
+-{(void*)"gray53", (void*)0x878787},
+-{(void*)"grey53", (void*)0x878787},
+-{(void*)"gray54", (void*)0x8a8a8a},
+-{(void*)"grey54", (void*)0x8a8a8a},
+-{(void*)"gray55", (void*)0x8c8c8c},
+-{(void*)"grey55", (void*)0x8c8c8c},
+-{(void*)"gray56", (void*)0x8f8f8f},
+-{(void*)"grey56", (void*)0x8f8f8f},
+-{(void*)"gray57", (void*)0x919191},
+-{(void*)"grey57", (void*)0x919191},
+-{(void*)"gray58", (void*)0x949494},
+-{(void*)"grey58", (void*)0x949494},
+-{(void*)"gray59", (void*)0x969696},
+-{(void*)"grey59", (void*)0x969696},
+-{(void*)"gray60", (void*)0x999999},
+-{(void*)"grey60", (void*)0x999999},
+-{(void*)"gray61", (void*)0x9c9c9c},
+-{(void*)"grey61", (void*)0x9c9c9c},
+-{(void*)"gray62", (void*)0x9e9e9e},
+-{(void*)"grey62", (void*)0x9e9e9e},
+-{(void*)"gray63", (void*)0xa1a1a1},
+-{(void*)"grey63", (void*)0xa1a1a1},
+-{(void*)"gray64", (void*)0xa3a3a3},
+-{(void*)"grey64", (void*)0xa3a3a3},
+-{(void*)"gray65", (void*)0xa6a6a6},
+-{(void*)"grey65", (void*)0xa6a6a6},
+-{(void*)"gray66", (void*)0xa8a8a8},
+-{(void*)"grey66", (void*)0xa8a8a8},
+-{(void*)"gray67", (void*)0xababab},
+-{(void*)"grey67", (void*)0xababab},
+-{(void*)"gray68", (void*)0xadadad},
+-{(void*)"grey68", (void*)0xadadad},
+-{(void*)"gray69", (void*)0xb0b0b0},
+-{(void*)"grey69", (void*)0xb0b0b0},
+-{(void*)"gray70", (void*)0xb3b3b3},
+-{(void*)"grey70", (void*)0xb3b3b3},
+-{(void*)"gray71", (void*)0xb5b5b5},
+-{(void*)"grey71", (void*)0xb5b5b5},
+-{(void*)"gray72", (void*)0xb8b8b8},
+-{(void*)"grey72", (void*)0xb8b8b8},
+-{(void*)"gray73", (void*)0xbababa},
+-{(void*)"grey73", (void*)0xbababa},
+-{(void*)"gray74", (void*)0xbdbdbd},
+-{(void*)"grey74", (void*)0xbdbdbd},
+-{(void*)"gray75", (void*)0xbfbfbf},
+-{(void*)"grey75", (void*)0xbfbfbf},
+-{(void*)"gray76", (void*)0xc2c2c2},
+-{(void*)"grey76", (void*)0xc2c2c2},
+-{(void*)"gray77", (void*)0xc4c4c4},
+-{(void*)"grey77", (void*)0xc4c4c4},
+-{(void*)"gray78", (void*)0xc7c7c7},
+-{(void*)"grey78", (void*)0xc7c7c7},
+-{(void*)"gray79", (void*)0xc9c9c9},
+-{(void*)"grey79", (void*)0xc9c9c9},
+-{(void*)"gray80", (void*)0xcccccc},
+-{(void*)"grey80", (void*)0xcccccc},
+-{(void*)"gray81", (void*)0xcfcfcf},
+-{(void*)"grey81", (void*)0xcfcfcf},
+-{(void*)"gray82", (void*)0xd1d1d1},
+-{(void*)"grey82", (void*)0xd1d1d1},
+-{(void*)"gray83", (void*)0xd4d4d4},
+-{(void*)"grey83", (void*)0xd4d4d4},
+-{(void*)"gray84", (void*)0xd6d6d6},
+-{(void*)"grey84", (void*)0xd6d6d6},
+-{(void*)"gray85", (void*)0xd9d9d9},
+-{(void*)"grey85", (void*)0xd9d9d9},
+-{(void*)"gray86", (void*)0xdbdbdb},
+-{(void*)"grey86", (void*)0xdbdbdb},
+-{(void*)"gray87", (void*)0xdedede},
+-{(void*)"grey87", (void*)0xdedede},
+-{(void*)"gray88", (void*)0xe0e0e0},
+-{(void*)"grey88", (void*)0xe0e0e0},
+-{(void*)"gray89", (void*)0xe3e3e3},
+-{(void*)"grey89", (void*)0xe3e3e3},
+-{(void*)"gray90", (void*)0xe5e5e5},
+-{(void*)"grey90", (void*)0xe5e5e5},
+-{(void*)"gray91", (void*)0xe8e8e8},
+-{(void*)"grey91", (void*)0xe8e8e8},
+-{(void*)"gray92", (void*)0xebebeb},
+-{(void*)"grey92", (void*)0xebebeb},
+-{(void*)"gray93", (void*)0xededed},
+-{(void*)"grey93", (void*)0xededed},
+-{(void*)"gray94", (void*)0xf0f0f0},
+-{(void*)"grey94", (void*)0xf0f0f0},
+-{(void*)"gray95", (void*)0xf2f2f2},
+-{(void*)"grey95", (void*)0xf2f2f2},
+-{(void*)"gray96", (void*)0xf5f5f5},
+-{(void*)"grey96", (void*)0xf5f5f5},
+-{(void*)"gray97", (void*)0xf7f7f7},
+-{(void*)"grey97", (void*)0xf7f7f7},
+-{(void*)"gray98", (void*)0xfafafa},
+-{(void*)"grey98", (void*)0xfafafa},
+-{(void*)"gray99", (void*)0xfcfcfc},
+-{(void*)"grey99", (void*)0xfcfcfc},
+-{(void*)"gray100", (void*)0xffffff},
+-{(void*)"grey100", (void*)0xffffff},
+-{(void*)"darkgrey", (void*)0xa9a9a9},
+-{(void*)"darkgray", (void*)0xa9a9a9},
+-{(void*)"darkblue", (void*)0x00008b},
+-{(void*)"darkcyan", (void*)0x008b8b},
+-{(void*)"darkmagenta", (void*)0x8b008b},
+-{(void*)"darkred", (void*)0x8b0000},
+-{(void*)"lightgreen", (void*)0x90ee90},
+-{NULL} /* sentinel */
++{(void*)"snow", (void*)0xfffafa,0,NULL},
++{(void*)"ghostwhite", (void*)0xf8f8ff,0,NULL},
++{(void*)"whitesmoke", (void*)0xf5f5f5,0,NULL},
++{(void*)"gainsboro", (void*)0xdcdcdc,0,NULL},
++{(void*)"floralwhite", (void*)0xfffaf0,0,NULL},
++{(void*)"oldlace", (void*)0xfdf5e6,0,NULL},
++{(void*)"linen", (void*)0xfaf0e6,0,NULL},
++{(void*)"antiquewhite", (void*)0xfaebd7,0,NULL},
++{(void*)"papayawhip", (void*)0xffefd5,0,NULL},
++{(void*)"blanchedalmond", (void*)0xffebcd,0,NULL},
++{(void*)"bisque", (void*)0xffe4c4,0,NULL},
++{(void*)"peachpuff", (void*)0xffdab9,0,NULL},
++{(void*)"navajowhite", (void*)0xffdead,0,NULL},
++{(void*)"moccasin", (void*)0xffe4b5,0,NULL},
++{(void*)"cornsilk", (void*)0xfff8dc,0,NULL},
++{(void*)"ivory", (void*)0xfffff0,0,NULL},
++{(void*)"lemonchiffon", (void*)0xfffacd,0,NULL},
++{(void*)"seashell", (void*)0xfff5ee,0,NULL},
++{(void*)"honeydew", (void*)0xf0fff0,0,NULL},
++{(void*)"mintcream", (void*)0xf5fffa,0,NULL},
++{(void*)"azure", (void*)0xf0ffff,0,NULL},
++{(void*)"aliceblue", (void*)0xf0f8ff,0,NULL},
++{(void*)"lavender", (void*)0xe6e6fa,0,NULL},
++{(void*)"lavenderblush", (void*)0xfff0f5,0,NULL},
++{(void*)"mistyrose", (void*)0xffe4e1,0,NULL},
++{(void*)"white", (void*)0xffffff,0,NULL},
++{(void*)"black", (void*)0x000000,0,NULL},
++{(void*)"darkslategray", (void*)0x2f4f4f,0,NULL},
++{(void*)"darkslategrey", (void*)0x2f4f4f,0,NULL},
++{(void*)"dimgray", (void*)0x696969,0,NULL},
++{(void*)"dimgrey", (void*)0x696969,0,NULL},
++{(void*)"slategray", (void*)0x708090,0,NULL},
++{(void*)"slategrey", (void*)0x708090,0,NULL},
++{(void*)"lightslategray", (void*)0x778899,0,NULL},
++{(void*)"lightslategrey", (void*)0x778899,0,NULL},
++{(void*)"gray", (void*)0xbebebe,0,NULL},
++{(void*)"grey", (void*)0xbebebe,0,NULL},
++{(void*)"lightgrey", (void*)0xd3d3d3,0,NULL},
++{(void*)"lightgray", (void*)0xd3d3d3,0,NULL},
++{(void*)"midnightblue", (void*)0x191970,0,NULL},
++{(void*)"navy", (void*)0x000080,0,NULL},
++{(void*)"navyblue", (void*)0x000080,0,NULL},
++{(void*)"cornflowerblue", (void*)0x6495ed,0,NULL},
++{(void*)"darkslateblue", (void*)0x483d8b,0,NULL},
++{(void*)"slateblue", (void*)0x6a5acd,0,NULL},
++{(void*)"mediumslateblue", (void*)0x7b68ee,0,NULL},
++{(void*)"lightslateblue", (void*)0x8470ff,0,NULL},
++{(void*)"mediumblue", (void*)0x0000cd,0,NULL},
++{(void*)"royalblue", (void*)0x4169e1,0,NULL},
++{(void*)"blue", (void*)0x0000ff,0,NULL},
++{(void*)"dodgerblue", (void*)0x1e90ff,0,NULL},
++{(void*)"deepskyblue", (void*)0x00bfff,0,NULL},
++{(void*)"skyblue", (void*)0x87ceeb,0,NULL},
++{(void*)"lightskyblue", (void*)0x87cefa,0,NULL},
++{(void*)"steelblue", (void*)0x4682b4,0,NULL},
++{(void*)"lightsteelblue", (void*)0xb0c4de,0,NULL},
++{(void*)"lightblue", (void*)0xadd8e6,0,NULL},
++{(void*)"powderblue", (void*)0xb0e0e6,0,NULL},
++{(void*)"paleturquoise", (void*)0xafeeee,0,NULL},
++{(void*)"darkturquoise", (void*)0x00ced1,0,NULL},
++{(void*)"mediumturquoise", (void*)0x48d1cc,0,NULL},
++{(void*)"turquoise", (void*)0x40e0d0,0,NULL},
++{(void*)"cyan", (void*)0x00ffff,0,NULL},
++{(void*)"lightcyan", (void*)0xe0ffff,0,NULL},
++{(void*)"cadetblue", (void*)0x5f9ea0,0,NULL},
++{(void*)"mediumaquamarine", (void*)0x66cdaa,0,NULL},
++{(void*)"aquamarine", (void*)0x7fffd4,0,NULL},
++{(void*)"darkgreen", (void*)0x006400,0,NULL},
++{(void*)"darkolivegreen", (void*)0x556b2f,0,NULL},
++{(void*)"darkseagreen", (void*)0x8fbc8f,0,NULL},
++{(void*)"seagreen", (void*)0x2e8b57,0,NULL},
++{(void*)"mediumseagreen", (void*)0x3cb371,0,NULL},
++{(void*)"lightseagreen", (void*)0x20b2aa,0,NULL},
++{(void*)"palegreen", (void*)0x98fb98,0,NULL},
++{(void*)"springgreen", (void*)0x00ff7f,0,NULL},
++{(void*)"lawngreen", (void*)0x7cfc00,0,NULL},
++{(void*)"green", (void*)0x00ff00,0,NULL},
++{(void*)"chartreuse", (void*)0x7fff00,0,NULL},
++{(void*)"mediumspringgreen", (void*)0x00fa9a,0,NULL},
++{(void*)"greenyellow", (void*)0xadff2f,0,NULL},
++{(void*)"limegreen", (void*)0x32cd32,0,NULL},
++{(void*)"yellowgreen", (void*)0x9acd32,0,NULL},
++{(void*)"forestgreen", (void*)0x228b22,0,NULL},
++{(void*)"olivedrab", (void*)0x6b8e23,0,NULL},
++{(void*)"darkkhaki", (void*)0xbdb76b,0,NULL},
++{(void*)"khaki", (void*)0xf0e68c,0,NULL},
++{(void*)"palegoldenrod", (void*)0xeee8aa,0,NULL},
++{(void*)"lightgoldenrodyellow", (void*)0xfafad2,0,NULL},
++{(void*)"lightyellow", (void*)0xffffe0,0,NULL},
++{(void*)"yellow", (void*)0xffff00,0,NULL},
++{(void*)"gold", (void*)0xffd700,0,NULL},
++{(void*)"lightgoldenrod", (void*)0xeedd82,0,NULL},
++{(void*)"goldenrod", (void*)0xdaa520,0,NULL},
++{(void*)"darkgoldenrod", (void*)0xb8860b,0,NULL},
++{(void*)"rosybrown", (void*)0xbc8f8f,0,NULL},
++{(void*)"indianred", (void*)0xcd5c5c,0,NULL},
++{(void*)"saddlebrown", (void*)0x8b4513,0,NULL},
++{(void*)"sienna", (void*)0xa0522d,0,NULL},
++{(void*)"peru", (void*)0xcd853f,0,NULL},
++{(void*)"burlywood", (void*)0xdeb887,0,NULL},
++{(void*)"beige", (void*)0xf5f5dc,0,NULL},
++{(void*)"wheat", (void*)0xf5deb3,0,NULL},
++{(void*)"sandybrown", (void*)0xf4a460,0,NULL},
++{(void*)"tan", (void*)0xd2b48c,0,NULL},
++{(void*)"chocolate", (void*)0xd2691e,0,NULL},
++{(void*)"firebrick", (void*)0xb22222,0,NULL},
++{(void*)"brown", (void*)0xa52a2a,0,NULL},
++{(void*)"darksalmon", (void*)0xe9967a,0,NULL},
++{(void*)"salmon", (void*)0xfa8072,0,NULL},
++{(void*)"lightsalmon", (void*)0xffa07a,0,NULL},
++{(void*)"orange", (void*)0xffa500,0,NULL},
++{(void*)"darkorange", (void*)0xff8c00,0,NULL},
++{(void*)"coral", (void*)0xff7f50,0,NULL},
++{(void*)"lightcoral", (void*)0xf08080,0,NULL},
++{(void*)"tomato", (void*)0xff6347,0,NULL},
++{(void*)"orangered", (void*)0xff4500,0,NULL},
++{(void*)"red", (void*)0xff0000,0,NULL},
++{(void*)"hotpink", (void*)0xff69b4,0,NULL},
++{(void*)"deeppink", (void*)0xff1493,0,NULL},
++{(void*)"pink", (void*)0xffc0cb,0,NULL},
++{(void*)"lightpink", (void*)0xffb6c1,0,NULL},
++{(void*)"palevioletred", (void*)0xdb7093,0,NULL},
++{(void*)"maroon", (void*)0xb03060,0,NULL},
++{(void*)"mediumvioletred", (void*)0xc71585,0,NULL},
++{(void*)"violetred", (void*)0xd02090,0,NULL},
++{(void*)"magenta", (void*)0xff00ff,0,NULL},
++{(void*)"violet", (void*)0xee82ee,0,NULL},
++{(void*)"plum", (void*)0xdda0dd,0,NULL},
++{(void*)"orchid", (void*)0xda70d6,0,NULL},
++{(void*)"mediumorchid", (void*)0xba55d3,0,NULL},
++{(void*)"darkorchid", (void*)0x9932cc,0,NULL},
++{(void*)"darkviolet", (void*)0x9400d3,0,NULL},
++{(void*)"blueviolet", (void*)0x8a2be2,0,NULL},
++{(void*)"purple", (void*)0xa020f0,0,NULL},
++{(void*)"mediumpurple", (void*)0x9370db,0,NULL},
++{(void*)"thistle", (void*)0xd8bfd8,0,NULL},
++{(void*)"snow1", (void*)0xfffafa,0,NULL},
++{(void*)"snow2", (void*)0xeee9e9,0,NULL},
++{(void*)"snow3", (void*)0xcdc9c9,0,NULL},
++{(void*)"snow4", (void*)0x8b8989,0,NULL},
++{(void*)"seashell1", (void*)0xfff5ee,0,NULL},
++{(void*)"seashell2", (void*)0xeee5de,0,NULL},
++{(void*)"seashell3", (void*)0xcdc5bf,0,NULL},
++{(void*)"seashell4", (void*)0x8b8682,0,NULL},
++{(void*)"antiquewhite1", (void*)0xffefdb,0,NULL},
++{(void*)"antiquewhite2", (void*)0xeedfcc,0,NULL},
++{(void*)"antiquewhite3", (void*)0xcdc0b0,0,NULL},
++{(void*)"antiquewhite4", (void*)0x8b8378,0,NULL},
++{(void*)"bisque1", (void*)0xffe4c4,0,NULL},
++{(void*)"bisque2", (void*)0xeed5b7,0,NULL},
++{(void*)"bisque3", (void*)0xcdb79e,0,NULL},
++{(void*)"bisque4", (void*)0x8b7d6b,0,NULL},
++{(void*)"peachpuff1", (void*)0xffdab9,0,NULL},
++{(void*)"peachpuff2", (void*)0xeecbad,0,NULL},
++{(void*)"peachpuff3", (void*)0xcdaf95,0,NULL},
++{(void*)"peachpuff4", (void*)0x8b7765,0,NULL},
++{(void*)"navajowhite1", (void*)0xffdead,0,NULL},
++{(void*)"navajowhite2", (void*)0xeecfa1,0,NULL},
++{(void*)"navajowhite3", (void*)0xcdb38b,0,NULL},
++{(void*)"navajowhite4", (void*)0x8b795e,0,NULL},
++{(void*)"lemonchiffon1", (void*)0xfffacd,0,NULL},
++{(void*)"lemonchiffon2", (void*)0xeee9bf,0,NULL},
++{(void*)"lemonchiffon3", (void*)0xcdc9a5,0,NULL},
++{(void*)"lemonchiffon4", (void*)0x8b8970,0,NULL},
++{(void*)"cornsilk1", (void*)0xfff8dc,0,NULL},
++{(void*)"cornsilk2", (void*)0xeee8cd,0,NULL},
++{(void*)"cornsilk3", (void*)0xcdc8b1,0,NULL},
++{(void*)"cornsilk4", (void*)0x8b8878,0,NULL},
++{(void*)"ivory1", (void*)0xfffff0,0,NULL},
++{(void*)"ivory2", (void*)0xeeeee0,0,NULL},
++{(void*)"ivory3", (void*)0xcdcdc1,0,NULL},
++{(void*)"ivory4", (void*)0x8b8b83,0,NULL},
++{(void*)"honeydew1", (void*)0xf0fff0,0,NULL},
++{(void*)"honeydew2", (void*)0xe0eee0,0,NULL},
++{(void*)"honeydew3", (void*)0xc1cdc1,0,NULL},
++{(void*)"honeydew4", (void*)0x838b83,0,NULL},
++{(void*)"lavenderblush1", (void*)0xfff0f5,0,NULL},
++{(void*)"lavenderblush2", (void*)0xeee0e5,0,NULL},
++{(void*)"lavenderblush3", (void*)0xcdc1c5,0,NULL},
++{(void*)"lavenderblush4", (void*)0x8b8386,0,NULL},
++{(void*)"mistyrose1", (void*)0xffe4e1,0,NULL},
++{(void*)"mistyrose2", (void*)0xeed5d2,0,NULL},
++{(void*)"mistyrose3", (void*)0xcdb7b5,0,NULL},
++{(void*)"mistyrose4", (void*)0x8b7d7b,0,NULL},
++{(void*)"azure1", (void*)0xf0ffff,0,NULL},
++{(void*)"azure2", (void*)0xe0eeee,0,NULL},
++{(void*)"azure3", (void*)0xc1cdcd,0,NULL},
++{(void*)"azure4", (void*)0x838b8b,0,NULL},
++{(void*)"slateblue1", (void*)0x836fff,0,NULL},
++{(void*)"slateblue2", (void*)0x7a67ee,0,NULL},
++{(void*)"slateblue3", (void*)0x6959cd,0,NULL},
++{(void*)"slateblue4", (void*)0x473c8b,0,NULL},
++{(void*)"royalblue1", (void*)0x4876ff,0,NULL},
++{(void*)"royalblue2", (void*)0x436eee,0,NULL},
++{(void*)"royalblue3", (void*)0x3a5fcd,0,NULL},
++{(void*)"royalblue4", (void*)0x27408b,0,NULL},
++{(void*)"blue1", (void*)0x0000ff,0,NULL},
++{(void*)"blue2", (void*)0x0000ee,0,NULL},
++{(void*)"blue3", (void*)0x0000cd,0,NULL},
++{(void*)"blue4", (void*)0x00008b,0,NULL},
++{(void*)"dodgerblue1", (void*)0x1e90ff,0,NULL},
++{(void*)"dodgerblue2", (void*)0x1c86ee,0,NULL},
++{(void*)"dodgerblue3", (void*)0x1874cd,0,NULL},
++{(void*)"dodgerblue4", (void*)0x104e8b,0,NULL},
++{(void*)"steelblue1", (void*)0x63b8ff,0,NULL},
++{(void*)"steelblue2", (void*)0x5cacee,0,NULL},
++{(void*)"steelblue3", (void*)0x4f94cd,0,NULL},
++{(void*)"steelblue4", (void*)0x36648b,0,NULL},
++{(void*)"deepskyblue1", (void*)0x00bfff,0,NULL},
++{(void*)"deepskyblue2", (void*)0x00b2ee,0,NULL},
++{(void*)"deepskyblue3", (void*)0x009acd,0,NULL},
++{(void*)"deepskyblue4", (void*)0x00688b,0,NULL},
++{(void*)"skyblue1", (void*)0x87ceff,0,NULL},
++{(void*)"skyblue2", (void*)0x7ec0ee,0,NULL},
++{(void*)"skyblue3", (void*)0x6ca6cd,0,NULL},
++{(void*)"skyblue4", (void*)0x4a708b,0,NULL},
++{(void*)"lightskyblue1", (void*)0xb0e2ff,0,NULL},
++{(void*)"lightskyblue2", (void*)0xa4d3ee,0,NULL},
++{(void*)"lightskyblue3", (void*)0x8db6cd,0,NULL},
++{(void*)"lightskyblue4", (void*)0x607b8b,0,NULL},
++{(void*)"slategray1", (void*)0xc6e2ff,0,NULL},
++{(void*)"slategray2", (void*)0xb9d3ee,0,NULL},
++{(void*)"slategray3", (void*)0x9fb6cd,0,NULL},
++{(void*)"slategray4", (void*)0x6c7b8b,0,NULL},
++{(void*)"lightsteelblue1", (void*)0xcae1ff,0,NULL},
++{(void*)"lightsteelblue2", (void*)0xbcd2ee,0,NULL},
++{(void*)"lightsteelblue3", (void*)0xa2b5cd,0,NULL},
++{(void*)"lightsteelblue4", (void*)0x6e7b8b,0,NULL},
++{(void*)"lightblue1", (void*)0xbfefff,0,NULL},
++{(void*)"lightblue2", (void*)0xb2dfee,0,NULL},
++{(void*)"lightblue3", (void*)0x9ac0cd,0,NULL},
++{(void*)"lightblue4", (void*)0x68838b,0,NULL},
++{(void*)"lightcyan1", (void*)0xe0ffff,0,NULL},
++{(void*)"lightcyan2", (void*)0xd1eeee,0,NULL},
++{(void*)"lightcyan3", (void*)0xb4cdcd,0,NULL},
++{(void*)"lightcyan4", (void*)0x7a8b8b,0,NULL},
++{(void*)"paleturquoise1", (void*)0xbbffff,0,NULL},
++{(void*)"paleturquoise2", (void*)0xaeeeee,0,NULL},
++{(void*)"paleturquoise3", (void*)0x96cdcd,0,NULL},
++{(void*)"paleturquoise4", (void*)0x668b8b,0,NULL},
++{(void*)"cadetblue1", (void*)0x98f5ff,0,NULL},
++{(void*)"cadetblue2", (void*)0x8ee5ee,0,NULL},
++{(void*)"cadetblue3", (void*)0x7ac5cd,0,NULL},
++{(void*)"cadetblue4", (void*)0x53868b,0,NULL},
++{(void*)"turquoise1", (void*)0x00f5ff,0,NULL},
++{(void*)"turquoise2", (void*)0x00e5ee,0,NULL},
++{(void*)"turquoise3", (void*)0x00c5cd,0,NULL},
++{(void*)"turquoise4", (void*)0x00868b,0,NULL},
++{(void*)"cyan1", (void*)0x00ffff,0,NULL},
++{(void*)"cyan2", (void*)0x00eeee,0,NULL},
++{(void*)"cyan3", (void*)0x00cdcd,0,NULL},
++{(void*)"cyan4", (void*)0x008b8b,0,NULL},
++{(void*)"darkslategray1", (void*)0x97ffff,0,NULL},
++{(void*)"darkslategray2", (void*)0x8deeee,0,NULL},
++{(void*)"darkslategray3", (void*)0x79cdcd,0,NULL},
++{(void*)"darkslategray4", (void*)0x528b8b,0,NULL},
++{(void*)"aquamarine1", (void*)0x7fffd4,0,NULL},
++{(void*)"aquamarine2", (void*)0x76eec6,0,NULL},
++{(void*)"aquamarine3", (void*)0x66cdaa,0,NULL},
++{(void*)"aquamarine4", (void*)0x458b74,0,NULL},
++{(void*)"darkseagreen1", (void*)0xc1ffc1,0,NULL},
++{(void*)"darkseagreen2", (void*)0xb4eeb4,0,NULL},
++{(void*)"darkseagreen3", (void*)0x9bcd9b,0,NULL},
++{(void*)"darkseagreen4", (void*)0x698b69,0,NULL},
++{(void*)"seagreen1", (void*)0x54ff9f,0,NULL},
++{(void*)"seagreen2", (void*)0x4eee94,0,NULL},
++{(void*)"seagreen3", (void*)0x43cd80,0,NULL},
++{(void*)"seagreen4", (void*)0x2e8b57,0,NULL},
++{(void*)"palegreen1", (void*)0x9aff9a,0,NULL},
++{(void*)"palegreen2", (void*)0x90ee90,0,NULL},
++{(void*)"palegreen3", (void*)0x7ccd7c,0,NULL},
++{(void*)"palegreen4", (void*)0x548b54,0,NULL},
++{(void*)"springgreen1", (void*)0x00ff7f,0,NULL},
++{(void*)"springgreen2", (void*)0x00ee76,0,NULL},
++{(void*)"springgreen3", (void*)0x00cd66,0,NULL},
++{(void*)"springgreen4", (void*)0x008b45,0,NULL},
++{(void*)"green1", (void*)0x00ff00,0,NULL},
++{(void*)"green2", (void*)0x00ee00,0,NULL},
++{(void*)"green3", (void*)0x00cd00,0,NULL},
++{(void*)"green4", (void*)0x008b00,0,NULL},
++{(void*)"chartreuse1", (void*)0x7fff00,0,NULL},
++{(void*)"chartreuse2", (void*)0x76ee00,0,NULL},
++{(void*)"chartreuse3", (void*)0x66cd00,0,NULL},
++{(void*)"chartreuse4", (void*)0x458b00,0,NULL},
++{(void*)"olivedrab1", (void*)0xc0ff3e,0,NULL},
++{(void*)"olivedrab2", (void*)0xb3ee3a,0,NULL},
++{(void*)"olivedrab3", (void*)0x9acd32,0,NULL},
++{(void*)"olivedrab4", (void*)0x698b22,0,NULL},
++{(void*)"darkolivegreen1", (void*)0xcaff70,0,NULL},
++{(void*)"darkolivegreen2", (void*)0xbcee68,0,NULL},
++{(void*)"darkolivegreen3", (void*)0xa2cd5a,0,NULL},
++{(void*)"darkolivegreen4", (void*)0x6e8b3d,0,NULL},
++{(void*)"khaki1", (void*)0xfff68f,0,NULL},
++{(void*)"khaki2", (void*)0xeee685,0,NULL},
++{(void*)"khaki3", (void*)0xcdc673,0,NULL},
++{(void*)"khaki4", (void*)0x8b864e,0,NULL},
++{(void*)"lightgoldenrod1", (void*)0xffec8b,0,NULL},
++{(void*)"lightgoldenrod2", (void*)0xeedc82,0,NULL},
++{(void*)"lightgoldenrod3", (void*)0xcdbe70,0,NULL},
++{(void*)"lightgoldenrod4", (void*)0x8b814c,0,NULL},
++{(void*)"lightyellow1", (void*)0xffffe0,0,NULL},
++{(void*)"lightyellow2", (void*)0xeeeed1,0,NULL},
++{(void*)"lightyellow3", (void*)0xcdcdb4,0,NULL},
++{(void*)"lightyellow4", (void*)0x8b8b7a,0,NULL},
++{(void*)"yellow1", (void*)0xffff00,0,NULL},
++{(void*)"yellow2", (void*)0xeeee00,0,NULL},
++{(void*)"yellow3", (void*)0xcdcd00,0,NULL},
++{(void*)"yellow4", (void*)0x8b8b00,0,NULL},
++{(void*)"gold1", (void*)0xffd700,0,NULL},
++{(void*)"gold2", (void*)0xeec900,0,NULL},
++{(void*)"gold3", (void*)0xcdad00,0,NULL},
++{(void*)"gold4", (void*)0x8b7500,0,NULL},
++{(void*)"goldenrod1", (void*)0xffc125,0,NULL},
++{(void*)"goldenrod2", (void*)0xeeb422,0,NULL},
++{(void*)"goldenrod3", (void*)0xcd9b1d,0,NULL},
++{(void*)"goldenrod4", (void*)0x8b6914,0,NULL},
++{(void*)"darkgoldenrod1", (void*)0xffb90f,0,NULL},
++{(void*)"darkgoldenrod2", (void*)0xeead0e,0,NULL},
++{(void*)"darkgoldenrod3", (void*)0xcd950c,0,NULL},
++{(void*)"darkgoldenrod4", (void*)0x8b6508,0,NULL},
++{(void*)"rosybrown1", (void*)0xffc1c1,0,NULL},
++{(void*)"rosybrown2", (void*)0xeeb4b4,0,NULL},
++{(void*)"rosybrown3", (void*)0xcd9b9b,0,NULL},
++{(void*)"rosybrown4", (void*)0x8b6969,0,NULL},
++{(void*)"indianred1", (void*)0xff6a6a,0,NULL},
++{(void*)"indianred2", (void*)0xee6363,0,NULL},
++{(void*)"indianred3", (void*)0xcd5555,0,NULL},
++{(void*)"indianred4", (void*)0x8b3a3a,0,NULL},
++{(void*)"sienna1", (void*)0xff8247,0,NULL},
++{(void*)"sienna2", (void*)0xee7942,0,NULL},
++{(void*)"sienna3", (void*)0xcd6839,0,NULL},
++{(void*)"sienna4", (void*)0x8b4726,0,NULL},
++{(void*)"burlywood1", (void*)0xffd39b,0,NULL},
++{(void*)"burlywood2", (void*)0xeec591,0,NULL},
++{(void*)"burlywood3", (void*)0xcdaa7d,0,NULL},
++{(void*)"burlywood4", (void*)0x8b7355,0,NULL},
++{(void*)"wheat1", (void*)0xffe7ba,0,NULL},
++{(void*)"wheat2", (void*)0xeed8ae,0,NULL},
++{(void*)"wheat3", (void*)0xcdba96,0,NULL},
++{(void*)"wheat4", (void*)0x8b7e66,0,NULL},
++{(void*)"tan1", (void*)0xffa54f,0,NULL},
++{(void*)"tan2", (void*)0xee9a49,0,NULL},
++{(void*)"tan3", (void*)0xcd853f,0,NULL},
++{(void*)"tan4", (void*)0x8b5a2b,0,NULL},
++{(void*)"chocolate1", (void*)0xff7f24,0,NULL},
++{(void*)"chocolate2", (void*)0xee7621,0,NULL},
++{(void*)"chocolate3", (void*)0xcd661d,0,NULL},
++{(void*)"chocolate4", (void*)0x8b4513,0,NULL},
++{(void*)"firebrick1", (void*)0xff3030,0,NULL},
++{(void*)"firebrick2", (void*)0xee2c2c,0,NULL},
++{(void*)"firebrick3", (void*)0xcd2626,0,NULL},
++{(void*)"firebrick4", (void*)0x8b1a1a,0,NULL},
++{(void*)"brown1", (void*)0xff4040,0,NULL},
++{(void*)"brown2", (void*)0xee3b3b,0,NULL},
++{(void*)"brown3", (void*)0xcd3333,0,NULL},
++{(void*)"brown4", (void*)0x8b2323,0,NULL},
++{(void*)"salmon1", (void*)0xff8c69,0,NULL},
++{(void*)"salmon2", (void*)0xee8262,0,NULL},
++{(void*)"salmon3", (void*)0xcd7054,0,NULL},
++{(void*)"salmon4", (void*)0x8b4c39,0,NULL},
++{(void*)"lightsalmon1", (void*)0xffa07a,0,NULL},
++{(void*)"lightsalmon2", (void*)0xee9572,0,NULL},
++{(void*)"lightsalmon3", (void*)0xcd8162,0,NULL},
++{(void*)"lightsalmon4", (void*)0x8b5742,0,NULL},
++{(void*)"orange1", (void*)0xffa500,0,NULL},
++{(void*)"orange2", (void*)0xee9a00,0,NULL},
++{(void*)"orange3", (void*)0xcd8500,0,NULL},
++{(void*)"orange4", (void*)0x8b5a00,0,NULL},
++{(void*)"darkorange1", (void*)0xff7f00,0,NULL},
++{(void*)"darkorange2", (void*)0xee7600,0,NULL},
++{(void*)"darkorange3", (void*)0xcd6600,0,NULL},
++{(void*)"darkorange4", (void*)0x8b4500,0,NULL},
++{(void*)"coral1", (void*)0xff7256,0,NULL},
++{(void*)"coral2", (void*)0xee6a50,0,NULL},
++{(void*)"coral3", (void*)0xcd5b45,0,NULL},
++{(void*)"coral4", (void*)0x8b3e2f,0,NULL},
++{(void*)"tomato1", (void*)0xff6347,0,NULL},
++{(void*)"tomato2", (void*)0xee5c42,0,NULL},
++{(void*)"tomato3", (void*)0xcd4f39,0,NULL},
++{(void*)"tomato4", (void*)0x8b3626,0,NULL},
++{(void*)"orangered1", (void*)0xff4500,0,NULL},
++{(void*)"orangered2", (void*)0xee4000,0,NULL},
++{(void*)"orangered3", (void*)0xcd3700,0,NULL},
++{(void*)"orangered4", (void*)0x8b2500,0,NULL},
++{(void*)"red1", (void*)0xff0000,0,NULL},
++{(void*)"red2", (void*)0xee0000,0,NULL},
++{(void*)"red3", (void*)0xcd0000,0,NULL},
++{(void*)"red4", (void*)0x8b0000,0,NULL},
++{(void*)"debianred", (void*)0xd70751,0,NULL},
++{(void*)"deeppink1", (void*)0xff1493,0,NULL},
++{(void*)"deeppink2", (void*)0xee1289,0,NULL},
++{(void*)"deeppink3", (void*)0xcd1076,0,NULL},
++{(void*)"deeppink4", (void*)0x8b0a50,0,NULL},
++{(void*)"hotpink1", (void*)0xff6eb4,0,NULL},
++{(void*)"hotpink2", (void*)0xee6aa7,0,NULL},
++{(void*)"hotpink3", (void*)0xcd6090,0,NULL},
++{(void*)"hotpink4", (void*)0x8b3a62,0,NULL},
++{(void*)"pink1", (void*)0xffb5c5,0,NULL},
++{(void*)"pink2", (void*)0xeea9b8,0,NULL},
++{(void*)"pink3", (void*)0xcd919e,0,NULL},
++{(void*)"pink4", (void*)0x8b636c,0,NULL},
++{(void*)"lightpink1", (void*)0xffaeb9,0,NULL},
++{(void*)"lightpink2", (void*)0xeea2ad,0,NULL},
++{(void*)"lightpink3", (void*)0xcd8c95,0,NULL},
++{(void*)"lightpink4", (void*)0x8b5f65,0,NULL},
++{(void*)"palevioletred1", (void*)0xff82ab,0,NULL},
++{(void*)"palevioletred2", (void*)0xee799f,0,NULL},
++{(void*)"palevioletred3", (void*)0xcd6889,0,NULL},
++{(void*)"palevioletred4", (void*)0x8b475d,0,NULL},
++{(void*)"maroon1", (void*)0xff34b3,0,NULL},
++{(void*)"maroon2", (void*)0xee30a7,0,NULL},
++{(void*)"maroon3", (void*)0xcd2990,0,NULL},
++{(void*)"maroon4", (void*)0x8b1c62,0,NULL},
++{(void*)"violetred1", (void*)0xff3e96,0,NULL},
++{(void*)"violetred2", (void*)0xee3a8c,0,NULL},
++{(void*)"violetred3", (void*)0xcd3278,0,NULL},
++{(void*)"violetred4", (void*)0x8b2252,0,NULL},
++{(void*)"magenta1", (void*)0xff00ff,0,NULL},
++{(void*)"magenta2", (void*)0xee00ee,0,NULL},
++{(void*)"magenta3", (void*)0xcd00cd,0,NULL},
++{(void*)"magenta4", (void*)0x8b008b,0,NULL},
++{(void*)"orchid1", (void*)0xff83fa,0,NULL},
++{(void*)"orchid2", (void*)0xee7ae9,0,NULL},
++{(void*)"orchid3", (void*)0xcd69c9,0,NULL},
++{(void*)"orchid4", (void*)0x8b4789,0,NULL},
++{(void*)"plum1", (void*)0xffbbff,0,NULL},
++{(void*)"plum2", (void*)0xeeaeee,0,NULL},
++{(void*)"plum3", (void*)0xcd96cd,0,NULL},
++{(void*)"plum4", (void*)0x8b668b,0,NULL},
++{(void*)"mediumorchid1", (void*)0xe066ff,0,NULL},
++{(void*)"mediumorchid2", (void*)0xd15fee,0,NULL},
++{(void*)"mediumorchid3", (void*)0xb452cd,0,NULL},
++{(void*)"mediumorchid4", (void*)0x7a378b,0,NULL},
++{(void*)"darkorchid1", (void*)0xbf3eff,0,NULL},
++{(void*)"darkorchid2", (void*)0xb23aee,0,NULL},
++{(void*)"darkorchid3", (void*)0x9a32cd,0,NULL},
++{(void*)"darkorchid4", (void*)0x68228b,0,NULL},
++{(void*)"purple1", (void*)0x9b30ff,0,NULL},
++{(void*)"purple2", (void*)0x912cee,0,NULL},
++{(void*)"purple3", (void*)0x7d26cd,0,NULL},
++{(void*)"purple4", (void*)0x551a8b,0,NULL},
++{(void*)"mediumpurple1", (void*)0xab82ff,0,NULL},
++{(void*)"mediumpurple2", (void*)0x9f79ee,0,NULL},
++{(void*)"mediumpurple3", (void*)0x8968cd,0,NULL},
++{(void*)"mediumpurple4", (void*)0x5d478b,0,NULL},
++{(void*)"thistle1", (void*)0xffe1ff,0,NULL},
++{(void*)"thistle2", (void*)0xeed2ee,0,NULL},
++{(void*)"thistle3", (void*)0xcdb5cd,0,NULL},
++{(void*)"thistle4", (void*)0x8b7b8b,0,NULL},
++{(void*)"gray0", (void*)0x000000,0,NULL},
++{(void*)"grey0", (void*)0x000000,0,NULL},
++{(void*)"gray1", (void*)0x030303,0,NULL},
++{(void*)"grey1", (void*)0x030303,0,NULL},
++{(void*)"gray2", (void*)0x050505,0,NULL},
++{(void*)"grey2", (void*)0x050505,0,NULL},
++{(void*)"gray3", (void*)0x080808,0,NULL},
++{(void*)"grey3", (void*)0x080808,0,NULL},
++{(void*)"gray4", (void*)0x0a0a0a,0,NULL},
++{(void*)"grey4", (void*)0x0a0a0a,0,NULL},
++{(void*)"gray5", (void*)0x0d0d0d,0,NULL},
++{(void*)"grey5", (void*)0x0d0d0d,0,NULL},
++{(void*)"gray6", (void*)0x0f0f0f,0,NULL},
++{(void*)"grey6", (void*)0x0f0f0f,0,NULL},
++{(void*)"gray7", (void*)0x121212,0,NULL},
++{(void*)"grey7", (void*)0x121212,0,NULL},
++{(void*)"gray8", (void*)0x141414,0,NULL},
++{(void*)"grey8", (void*)0x141414,0,NULL},
++{(void*)"gray9", (void*)0x171717,0,NULL},
++{(void*)"grey9", (void*)0x171717,0,NULL},
++{(void*)"gray10", (void*)0x1a1a1a,0,NULL},
++{(void*)"grey10", (void*)0x1a1a1a,0,NULL},
++{(void*)"gray11", (void*)0x1c1c1c,0,NULL},
++{(void*)"grey11", (void*)0x1c1c1c,0,NULL},
++{(void*)"gray12", (void*)0x1f1f1f,0,NULL},
++{(void*)"grey12", (void*)0x1f1f1f,0,NULL},
++{(void*)"gray13", (void*)0x212121,0,NULL},
++{(void*)"grey13", (void*)0x212121,0,NULL},
++{(void*)"gray14", (void*)0x242424,0,NULL},
++{(void*)"grey14", (void*)0x242424,0,NULL},
++{(void*)"gray15", (void*)0x262626,0,NULL},
++{(void*)"grey15", (void*)0x262626,0,NULL},
++{(void*)"gray16", (void*)0x292929,0,NULL},
++{(void*)"grey16", (void*)0x292929,0,NULL},
++{(void*)"gray17", (void*)0x2b2b2b,0,NULL},
++{(void*)"grey17", (void*)0x2b2b2b,0,NULL},
++{(void*)"gray18", (void*)0x2e2e2e,0,NULL},
++{(void*)"grey18", (void*)0x2e2e2e,0,NULL},
++{(void*)"gray19", (void*)0x303030,0,NULL},
++{(void*)"grey19", (void*)0x303030,0,NULL},
++{(void*)"gray20", (void*)0x333333,0,NULL},
++{(void*)"grey20", (void*)0x333333,0,NULL},
++{(void*)"gray21", (void*)0x363636,0,NULL},
++{(void*)"grey21", (void*)0x363636,0,NULL},
++{(void*)"gray22", (void*)0x383838,0,NULL},
++{(void*)"grey22", (void*)0x383838,0,NULL},
++{(void*)"gray23", (void*)0x3b3b3b,0,NULL},
++{(void*)"grey23", (void*)0x3b3b3b,0,NULL},
++{(void*)"gray24", (void*)0x3d3d3d,0,NULL},
++{(void*)"grey24", (void*)0x3d3d3d,0,NULL},
++{(void*)"gray25", (void*)0x404040,0,NULL},
++{(void*)"grey25", (void*)0x404040,0,NULL},
++{(void*)"gray26", (void*)0x424242,0,NULL},
++{(void*)"grey26", (void*)0x424242,0,NULL},
++{(void*)"gray27", (void*)0x454545,0,NULL},
++{(void*)"grey27", (void*)0x454545,0,NULL},
++{(void*)"gray28", (void*)0x474747,0,NULL},
++{(void*)"grey28", (void*)0x474747,0,NULL},
++{(void*)"gray29", (void*)0x4a4a4a,0,NULL},
++{(void*)"grey29", (void*)0x4a4a4a,0,NULL},
++{(void*)"gray30", (void*)0x4d4d4d,0,NULL},
++{(void*)"grey30", (void*)0x4d4d4d,0,NULL},
++{(void*)"gray31", (void*)0x4f4f4f,0,NULL},
++{(void*)"grey31", (void*)0x4f4f4f,0,NULL},
++{(void*)"gray32", (void*)0x525252,0,NULL},
++{(void*)"grey32", (void*)0x525252,0,NULL},
++{(void*)"gray33", (void*)0x545454,0,NULL},
++{(void*)"grey33", (void*)0x545454,0,NULL},
++{(void*)"gray34", (void*)0x575757,0,NULL},
++{(void*)"grey34", (void*)0x575757,0,NULL},
++{(void*)"gray35", (void*)0x595959,0,NULL},
++{(void*)"grey35", (void*)0x595959,0,NULL},
++{(void*)"gray36", (void*)0x5c5c5c,0,NULL},
++{(void*)"grey36", (void*)0x5c5c5c,0,NULL},
++{(void*)"gray37", (void*)0x5e5e5e,0,NULL},
++{(void*)"grey37", (void*)0x5e5e5e,0,NULL},
++{(void*)"gray38", (void*)0x616161,0,NULL},
++{(void*)"grey38", (void*)0x616161,0,NULL},
++{(void*)"gray39", (void*)0x636363,0,NULL},
++{(void*)"grey39", (void*)0x636363,0,NULL},
++{(void*)"gray40", (void*)0x666666,0,NULL},
++{(void*)"grey40", (void*)0x666666,0,NULL},
++{(void*)"gray41", (void*)0x696969,0,NULL},
++{(void*)"grey41", (void*)0x696969,0,NULL},
++{(void*)"gray42", (void*)0x6b6b6b,0,NULL},
++{(void*)"grey42", (void*)0x6b6b6b,0,NULL},
++{(void*)"gray43", (void*)0x6e6e6e,0,NULL},
++{(void*)"grey43", (void*)0x6e6e6e,0,NULL},
++{(void*)"gray44", (void*)0x707070,0,NULL},
++{(void*)"grey44", (void*)0x707070,0,NULL},
++{(void*)"gray45", (void*)0x737373,0,NULL},
++{(void*)"grey45", (void*)0x737373,0,NULL},
++{(void*)"gray46", (void*)0x757575,0,NULL},
++{(void*)"grey46", (void*)0x757575,0,NULL},
++{(void*)"gray47", (void*)0x787878,0,NULL},
++{(void*)"grey47", (void*)0x787878,0,NULL},
++{(void*)"gray48", (void*)0x7a7a7a,0,NULL},
++{(void*)"grey48", (void*)0x7a7a7a,0,NULL},
++{(void*)"gray49", (void*)0x7d7d7d,0,NULL},
++{(void*)"grey49", (void*)0x7d7d7d,0,NULL},
++{(void*)"gray50", (void*)0x7f7f7f,0,NULL},
++{(void*)"grey50", (void*)0x7f7f7f,0,NULL},
++{(void*)"gray51", (void*)0x828282,0,NULL},
++{(void*)"grey51", (void*)0x828282,0,NULL},
++{(void*)"gray52", (void*)0x858585,0,NULL},
++{(void*)"grey52", (void*)0x858585,0,NULL},
++{(void*)"gray53", (void*)0x878787,0,NULL},
++{(void*)"grey53", (void*)0x878787,0,NULL},
++{(void*)"gray54", (void*)0x8a8a8a,0,NULL},
++{(void*)"grey54", (void*)0x8a8a8a,0,NULL},
++{(void*)"gray55", (void*)0x8c8c8c,0,NULL},
++{(void*)"grey55", (void*)0x8c8c8c,0,NULL},
++{(void*)"gray56", (void*)0x8f8f8f,0,NULL},
++{(void*)"grey56", (void*)0x8f8f8f,0,NULL},
++{(void*)"gray57", (void*)0x919191,0,NULL},
++{(void*)"grey57", (void*)0x919191,0,NULL},
++{(void*)"gray58", (void*)0x949494,0,NULL},
++{(void*)"grey58", (void*)0x949494,0,NULL},
++{(void*)"gray59", (void*)0x969696,0,NULL},
++{(void*)"grey59", (void*)0x969696,0,NULL},
++{(void*)"gray60", (void*)0x999999,0,NULL},
++{(void*)"grey60", (void*)0x999999,0,NULL},
++{(void*)"gray61", (void*)0x9c9c9c,0,NULL},
++{(void*)"grey61", (void*)0x9c9c9c,0,NULL},
++{(void*)"gray62", (void*)0x9e9e9e,0,NULL},
++{(void*)"grey62", (void*)0x9e9e9e,0,NULL},
++{(void*)"gray63", (void*)0xa1a1a1,0,NULL},
++{(void*)"grey63", (void*)0xa1a1a1,0,NULL},
++{(void*)"gray64", (void*)0xa3a3a3,0,NULL},
++{(void*)"grey64", (void*)0xa3a3a3,0,NULL},
++{(void*)"gray65", (void*)0xa6a6a6,0,NULL},
++{(void*)"grey65", (void*)0xa6a6a6,0,NULL},
++{(void*)"gray66", (void*)0xa8a8a8,0,NULL},
++{(void*)"grey66", (void*)0xa8a8a8,0,NULL},
++{(void*)"gray67", (void*)0xababab,0,NULL},
++{(void*)"grey67", (void*)0xababab,0,NULL},
++{(void*)"gray68", (void*)0xadadad,0,NULL},
++{(void*)"grey68", (void*)0xadadad,0,NULL},
++{(void*)"gray69", (void*)0xb0b0b0,0,NULL},
++{(void*)"grey69", (void*)0xb0b0b0,0,NULL},
++{(void*)"gray70", (void*)0xb3b3b3,0,NULL},
++{(void*)"grey70", (void*)0xb3b3b3,0,NULL},
++{(void*)"gray71", (void*)0xb5b5b5,0,NULL},
++{(void*)"grey71", (void*)0xb5b5b5,0,NULL},
++{(void*)"gray72", (void*)0xb8b8b8,0,NULL},
++{(void*)"grey72", (void*)0xb8b8b8,0,NULL},
++{(void*)"gray73", (void*)0xbababa,0,NULL},
++{(void*)"grey73", (void*)0xbababa,0,NULL},
++{(void*)"gray74", (void*)0xbdbdbd,0,NULL},
++{(void*)"grey74", (void*)0xbdbdbd,0,NULL},
++{(void*)"gray75", (void*)0xbfbfbf,0,NULL},
++{(void*)"grey75", (void*)0xbfbfbf,0,NULL},
++{(void*)"gray76", (void*)0xc2c2c2,0,NULL},
++{(void*)"grey76", (void*)0xc2c2c2,0,NULL},
++{(void*)"gray77", (void*)0xc4c4c4,0,NULL},
++{(void*)"grey77", (void*)0xc4c4c4,0,NULL},
++{(void*)"gray78", (void*)0xc7c7c7,0,NULL},
++{(void*)"grey78", (void*)0xc7c7c7,0,NULL},
++{(void*)"gray79", (void*)0xc9c9c9,0,NULL},
++{(void*)"grey79", (void*)0xc9c9c9,0,NULL},
++{(void*)"gray80", (void*)0xcccccc,0,NULL},
++{(void*)"grey80", (void*)0xcccccc,0,NULL},
++{(void*)"gray81", (void*)0xcfcfcf,0,NULL},
++{(void*)"grey81", (void*)0xcfcfcf,0,NULL},
++{(void*)"gray82", (void*)0xd1d1d1,0,NULL},
++{(void*)"grey82", (void*)0xd1d1d1,0,NULL},
++{(void*)"gray83", (void*)0xd4d4d4,0,NULL},
++{(void*)"grey83", (void*)0xd4d4d4,0,NULL},
++{(void*)"gray84", (void*)0xd6d6d6,0,NULL},
++{(void*)"grey84", (void*)0xd6d6d6,0,NULL},
++{(void*)"gray85", (void*)0xd9d9d9,0,NULL},
++{(void*)"grey85", (void*)0xd9d9d9,0,NULL},
++{(void*)"gray86", (void*)0xdbdbdb,0,NULL},
++{(void*)"grey86", (void*)0xdbdbdb,0,NULL},
++{(void*)"gray87", (void*)0xdedede,0,NULL},
++{(void*)"grey87", (void*)0xdedede,0,NULL},
++{(void*)"gray88", (void*)0xe0e0e0,0,NULL},
++{(void*)"grey88", (void*)0xe0e0e0,0,NULL},
++{(void*)"gray89", (void*)0xe3e3e3,0,NULL},
++{(void*)"grey89", (void*)0xe3e3e3,0,NULL},
++{(void*)"gray90", (void*)0xe5e5e5,0,NULL},
++{(void*)"grey90", (void*)0xe5e5e5,0,NULL},
++{(void*)"gray91", (void*)0xe8e8e8,0,NULL},
++{(void*)"grey91", (void*)0xe8e8e8,0,NULL},
++{(void*)"gray92", (void*)0xebebeb,0,NULL},
++{(void*)"grey92", (void*)0xebebeb,0,NULL},
++{(void*)"gray93", (void*)0xededed,0,NULL},
++{(void*)"grey93", (void*)0xededed,0,NULL},
++{(void*)"gray94", (void*)0xf0f0f0,0,NULL},
++{(void*)"grey94", (void*)0xf0f0f0,0,NULL},
++{(void*)"gray95", (void*)0xf2f2f2,0,NULL},
++{(void*)"grey95", (void*)0xf2f2f2,0,NULL},
++{(void*)"gray96", (void*)0xf5f5f5,0,NULL},
++{(void*)"grey96", (void*)0xf5f5f5,0,NULL},
++{(void*)"gray97", (void*)0xf7f7f7,0,NULL},
++{(void*)"grey97", (void*)0xf7f7f7,0,NULL},
++{(void*)"gray98", (void*)0xfafafa,0,NULL},
++{(void*)"grey98", (void*)0xfafafa,0,NULL},
++{(void*)"gray99", (void*)0xfcfcfc,0,NULL},
++{(void*)"grey99", (void*)0xfcfcfc,0,NULL},
++{(void*)"gray100", (void*)0xffffff,0,NULL},
++{(void*)"grey100", (void*)0xffffff,0,NULL},
++{(void*)"darkgrey", (void*)0xa9a9a9,0,NULL},
++{(void*)"darkgray", (void*)0xa9a9a9,0,NULL},
++{(void*)"darkblue", (void*)0x00008b,0,NULL},
++{(void*)"darkcyan", (void*)0x008b8b,0,NULL},
++{(void*)"darkmagenta", (void*)0x8b008b,0,NULL},
++{(void*)"darkred", (void*)0x8b0000,0,NULL},
++{(void*)"lightgreen", (void*)0x90ee90,0,NULL},
++{NULL,NULL,0,NULL} /* sentinel */
+ };
+ 
+ static void
+--- src/language/compat.c
++++ src/language/compat.c
+@@ -105,613 +105,613 @@ static GEN
+ principalideal(GEN nf, GEN x) { return algtobasis(nf,x); }
+ 
+ entree oldfonctions[]={
+-{"!_",0,(void*)gnot,13,"G","!_"},
+-{"#_",0,(void*)glength,13,"lG","length(x): number of non code words in x, number of characters for a string."},
+-{"%",0,(void*)pari_get_hist,1,"D0,L,","last history item"},
+-{"+_",0,NULL,13,NULL,"+_"},
+-{"-_",0,(void*)gneg,13,"G","-_"},
+-{"_!",0,(void*)mpfact,13,"L","_!"},
+-{"_!=_",0,(void*)gne,13,"GG","_!=_"},
+-{"_%=_",0,(void*)gmode,13,"&G","_%=_"},
+-{"_%_",0,(void*)gmod,13,"GG","_%_"},
+-{"_&&_",0,(void*)andpari,13,"GE","_&&_"},
+-{"_'",0,(void*)deriv,13,"GDn","_'"},
+-{"_*=_",0,(void*)gmule,13,"&G","x*=y: shortcut for x=x*y."},
+-{"_*_",0,(void*)gmul,13,"GG","_*_"},
+-{"_++",0,(void*)gadd1e,13,"&","x++"},
+-{"_+=_",0,(void*)gadde,13,"&G","x+=y: shortcut for x=x+y."},
+-{"_+_",0,(void*)gadd,13,"GG","x+y: sum of x and y."},
+-{"_--",0,(void*)gsub1e,13,"&","x--"},
+-{"_-=_",0,(void*)gsube,13,"&G","x-=y"},
+-{"_-_",0,(void*)gsub,13,"GG","x-y: difference of x and y."},
+-{"_.a1",0,(void*)member_a1,14,"G","_.a1"},
+-{"_.a2",0,(void*)member_a2,14,"G","_.a2"},
+-{"_.a3",0,(void*)member_a3,14,"G","_.a3"},
+-{"_.a4",0,(void*)member_a4,14,"G","_.a4"},
+-{"_.a6",0,(void*)member_a6,14,"G","_.a6"},
+-{"_.area",0,(void*)member_area,14,"G","_.area"},
+-{"_.b2",0,(void*)member_b2,14,"G","_.b2"},
+-{"_.b4",0,(void*)member_b4,14,"G","_.b4"},
+-{"_.b6",0,(void*)member_b6,14,"G","_.b6"},
+-{"_.b8",0,(void*)member_b8,14,"G","_.b8"},
+-{"_.bid",0,(void*)member_bid,14,"G","_.bid"},
+-{"_.bnf",0,(void*)member_bnf,14,"G","_.bnf"},
+-{"_.c4",0,(void*)member_c4,14,"G","_.c4"},
+-{"_.c6",0,(void*)member_c6,14,"G","_.c6"},
+-{"_.clgp",0,(void*)member_clgp,14,"G","_.clgp"},
+-{"_.codiff",0,(void*)member_codiff,14,"G","_.codiff"},
+-{"_.cyc",0,(void*)member_cyc,14,"G","_.cyc"},
+-{"_.diff",0,(void*)member_diff,14,"G","_.diff"},
+-{"_.disc",0,(void*)member_disc,14,"G","_.disc"},
+-{"_.e",0,(void*)member_e,14,"G","_.e"},
+-{"_.eta",0,(void*)member_eta,14,"G","_.eta"},
+-{"_.f",0,(void*)member_f,14,"G","_.f"},
+-{"_.fu",0,(void*)member_fu,14,"G","_.fu"},
+-{"_.futu",0,(void*)member_futu,14,"G","_.futu"},
+-{"_.gen",0,(void*)member_gen,14,"G","_.gen"},
+-{"_.group",0,(void*)member_group,14,"G","_.group"},
+-{"_.index",0,(void*)member_index,14,"G","_.index"},
+-{"_.j",0,(void*)member_j,14,"G","_.j"},
+-{"_.mod",0,(void*)member_mod,14,"G","_.mod"},
+-{"_.nf",0,(void*)member_nf,14,"G","_.nf"},
+-{"_.no",0,(void*)member_no,14,"G","_.no"},
+-{"_.omega",0,(void*)member_omega,14,"G","_.omega"},
+-{"_.orders",0,(void*)member_orders,14,"G","_.orders"},
+-{"_.p",0,(void*)member_p,14,"G","_.p"},
+-{"_.pol",0,(void*)member_pol,14,"G","_.pol"},
+-{"_.r1",0,(void*)member_r1,14,"G","_.r1"},
+-{"_.r2",0,(void*)member_r2,14,"G","_.r2"},
+-{"_.reg",0,(void*)member_reg,14,"G","_.reg"},
+-{"_.roots",0,(void*)member_roots,14,"G","_.roots"},
+-{"_.sign",0,(void*)member_sign,14,"G","_.sign"},
+-{"_.t2",0,(void*)member_t2,14,"G","_.t2"},
+-{"_.tate",0,(void*)member_tate,14,"G","_.tate"},
+-{"_.tu",0,(void*)member_tu,14,"G","_.tu"},
+-{"_.tufu",0,(void*)member_tufu,14,"G","_.tufu"},
+-{"_.w",0,(void*)member_w,14,"G","_.w"},
+-{"_.zk",0,(void*)member_zk,14,"G","_.zk"},
+-{"_.zkst",0,(void*)member_zkst,14,"G","_.zkst"},
+-{"_/=_",0,(void*)gdive,13,"&G","x/=y"},
+-{"_/_",0,(void*)gdiv,13,"GG","_/_"},
+-{"_<<=_",0,(void*)gshiftle,13,"&L","x<<=y"},
+-{"_<<_",0,(void*)gshift,13,"GL","x<<y"},
+-{"_<=_",0,(void*)gle,13,"GG","_<=_"},
+-{"_<_",0,(void*)glt,13,"GG","_<_"},
+-{"_==_",0,(void*)geq,13,"GG","_==_"},
+-{"_=_",0,(void*)gstore,13,"&G","x=y: store value y in variable x."},
+-{"_>=_",0,(void*)gge,13,"GG","_>=_"},
+-{"_>>=_",0,(void*)gshiftre,13,"&L","_>>=_"},
+-{"_>>_",0,(void*)gshift_right,13,"GL","x>>y"},
+-{"_>_",0,(void*)ggt,13,"GG","_>_"},
+-{"_\\/=_",0,(void*)gdivrounde,13,"&G","x\\\\/=y"},
+-{"_\\/_",0,(void*)gdivround,13,"GG","x\\\\/y: rounded Euclidean quotient of x and y."},
+-{"_\\=_",0,(void*)gdivente,13,"&G","x\\\\=y"},
+-{"_\\_",0,(void*)gdivent,13,"GG","x\\\\y: Euclidean quotient of x and y."},
+-{"_^_",0,(void*)gpow,13,"GGp","_^_"},
+-{"_^s",0,(void*)gpowgs,13,"GL","_^s"},
+-{"__",0,NULL,13,NULL,"__"},
+-{"_void_if",0,(void*)ifpari_void,11,"vGDIDI","internal variant of if() that does not return a value."},
+-{"_||_",0,(void*)orpari,13,"GE","x||y"},
+-{"_~",0,(void*)gtrans,13,"G","_~"},
+-{"O",0,(void*)ggrando,7,"GD1,L,","O(a^b): p-adic or power series zero with precision given by b."},
+-{"O(_^_)",0,(void*)ggrando,7,"GD1,L,","O(a^b): p-adic or power series zero with precision given by b."},
+-{"abs",1,(void*)gabs,3,"Gp","abs(x)=absolute value (or modulus) of x."},
+-{"acos",1,(void*)gacos,3,"Gp","acos(x)=inverse cosine of x."},
+-{"acosh",1,(void*)gach,3,"Gp","acosh(x)=inverse hyperbolic cosine of x."},
+-{"addell",3,(void*)addell,5,"GGG","addell(e,z1,z2)=sum of the points z1 and z2 on elliptic curve e."},
+-{"addprimes",1,(void*)addprimes,4,"G","addprimes(x)=add primes in the vector x (with at most 20 components) to the prime table."},
+-{"adj",1,(void*)adj,8,"G","adj(x)=adjoint matrix of x."},
+-{"agm",2,(void*)agm,3,"GGp","agm(x,y)=arithmetic-geometric mean of x and y."},
+-{"akell",2,(void*)akell,5,"GG","akell(e,n)=computes the n-th Fourier coefficient of the L-function of the elliptic curve e."},
+-{"algdep",23,(void*)algdep,8,"GL","algdep(x,n)=algebraic relations up to degree n of x."},
+-{"algdep2",33,(void*)algdep0,8,"GLL","algdep2(x,n,dec)=algebraic relations up to degree n of x where dec is as in  lindep2."},
+-{"algtobasis",2,(void*)algtobasis,6,"GG","algtobasis(nf,x)=transforms the algebraic number x into a column vector on the integral basis nf[7]."},
+-{"anell",23,(void*)anell,5,"GL","anell(e,n)=computes the first n Fourier coefficients of the L-function of the elliptic curve e (n<32768)."},
+-{"apell",2,(void*)ellap,5,"GG","apell(e,p)=computes a_p for the elliptic curve e using Shanks-Mestre's method."},
+-{"apell2",2,(void*)ellap,5,"GG","apell2(e,p)=apell(e,p)."},
+-{"apprpadic",2,(void*)padicappr,7,"GG","apprpadic(x,a)=p-adic roots of the polynomial x congruent to a mod p."},
+-{"arg",1,(void*)garg,3,"Gp","arg(x)=argument of x,such that -pi<arg(x)<=pi."},
+-{"asin",1,(void*)gasin,3,"Gp","asin(x)=inverse sine of x."},
+-{"asinh",1,(void*)gash,3,"Gp","asinh(x)=inverse hyperbolic sine of x."},
+-{"assmat",1,(void*)matcompanion,8,"G","matcompanion(x)=associated matrix to polynomial x."},
+-{"atan",1,(void*)gatan,3,"Gp","atan(x)=inverse tangent of x."},
+-{"atanh",1,(void*)gath,3,"Gp","atanh(x)=inverse hyperbolic tangent of x."},
+-{"basis",13,(void*)nfbasis0,6,"GD0,L,DG","basis(x)=integral basis of the field Q[a], where a is a root of the polynomial x, using the round 4 algorithm."},
+-{"basis2",13,(void*)nfbasis0,6,"GD2,L,DG","basis2(x)=integral basis of the field Q[a], where a is a root of the polynomial x, using the round 2 algorithm."},
+-{"basistoalg",2,(void*)basistoalg,6,"GG","basistoalg(nf,x)=transforms the vertical vector x on the integral basis into an algebraic number."},
+-{"bernreal",11,(void*)bernreal,3,"Lp","bernreal(x)=Bernoulli number B_x, as a real number with the current precision."},
+-{"bernvec",11,(void*)bernvec,3,"L","bernvec(x)=Vector of rational Bernoulli numbers B_0, B_2,... up to B_(2x)."},
+-{"bestappr",2,(void*)bestappr,4,"GGp","bestappr(x,k)=gives the best approximation to the real x with denominator less or equal to k."},
+-{"bezout",2,(void*)vecbezout,4,"GG","bezout(x,y)=gives a 3-dimensional row vector [u,v,d] such that d=gcd(x,y) and u*x+v*y=d."},
+-{"bezoutres",2,(void*)vecbezoutres,4,"GG","bezoutres(x,y)=gives a 3-dimensional row vector [u,v,d] such that d=resultant(x,y) and u*x+v*y=d, where x and y are polynomials."},
+-{"bigomega",1,(void*)gbigomega,4,"G","bigomega(x)=number of repeated prime divisors of x."},
+-{"bilhell",3,(void*)bilhell,5,"GGGp","bilhell(e,z1,z2)=canonical bilinear form for the points z1,z2 on the elliptic curve e. Either z1 or z2 can also be a vector/matrix of points."},
+-{"bin",21,(void*)binomial,4,"GL","bin(x,y)=binomial coefficient x*(x-1)...*(x-y+1)/y! defined for y in Z and any x."},
+-{"binary",1,(void*)binaire,2,"G","binary(x)=gives the vector formed by the binary digits of x (x C-integer)."},
+-{"bittest",2,(void*)gbittest,2,"GL","bittest(x,n)=gives bit number n (coefficient of 2^n) of the integer x."},
+-{"boundcf",21,(void*)gboundcf,4,"GL","boundcf(x,lmax)=continued fraction expansion of x with at most lmax terms."},
+-{"boundfact",21,(void*)boundfact,4,"GL","boundfact(x,lim)=partial factorization of the integer x (using primes up to lim)."},
+-{"buchcertify",10,(void*)bnfcertify,6,"lG","buchcertify(bnf)=certify the correctness (i.e. remove the GRH) of the bnf data output by buchinit or buchinitfu."},
+-{"buchfu",1,(void*)buchfu,6,"Gp","buchfu(bnf)=compute the fundamental units of the number field bnf output by buchinit."},
+-{"buchgen",99,(void*)buchgenfu,6,BUCH_PROTO,"buchgen(P,...)=compute the structure of the class group and the regulator for the number field defined by the polynomial P. See manual for the other parameters (which can be omitted)."},
+-{"buchgenforcefu",99,(void*)buchgenforcefu,6,BUCH_PROTO,"buchgenforcefu(P,...)=compute the structure of the class group, the regulator a primitive root of unity and a system of fundamental units for the number field defined by the polynomial P, and insist until the units are obtained. See manual for the other parameters (which can be omitted)."},
+-{"buchgenfu",99,(void*)buchgenfu,6,BUCH_PROTO,"buchgenfu(P,...)=compute the structure of the class group, the regulator a primitive root of unity and a system of fundamental units (if they are not too large) for the number field defined by the polynomial P. See manual for the other parameters (which can be omitted)."},
+-{"buchimag",99,(void*)buchimag,4,"GD0.1,G,D0.1,G,D5,G,","buchimag(D,...)=compute the structure of the class group of the complex quadratic field of discriminant D<0. See manual for the other parameters (which can be omitted)."},
+-{"buchinit",99,(void*)buchinitfu,6,BUCH_PROTO,"buchinit(P,...)=compute the necessary data for future use in ideal and unit group computations. See manual for details."},
+-{"buchinitforcefu",99,(void*)buchinitforcefu,6,BUCH_PROTO,"buchinitforcefu(P,...)=compute the necessary data for future use in ideal and unit group computations, and insist on having fundamental units. See manual for details."},
+-{"buchinitfu",99,(void*)buchinitfu,6,BUCH_PROTO,"buchinitfu(P,...)=compute the necessary data for future use in ideal and unit group computations, including fundamental units if they are not too large. See manual for details."},
+-{"buchnarrow",1,(void*)buchnarrow,6,"Gp","buchnarrow(bnf)=given a big number field as output by buchinitxx, gives as a 3-component vector the structure of the narrow class group."},
+-{"buchray",2,(void*)buchray,6,"GGp","buchray(bnf,ideal)=given a big number field as output by buchinitfu (only) and  an ideal or a 2-component row vector formed by an ideal and a list of R1 zeros or ones representing a module, finds the ray class group structure corresponding to this module."},
+-{"buchrayinit",2,(void*)buchrayinit,6,"GGp","buchrayinit(bnf,ideal)=same as buchrayinitgen, except that the generators are not explicitly computed."},
+-{"buchrayinitgen",2,(void*)buchrayinitgen,6,"GGp","buchrayinitgen(bnf,ideal)=given a big number field as output by buchinitfu (only) and  an ideal or a 2-component row vector formed by an ideal and a list of R1 zeros or ones representing a module, initializes data for computing in the ray class group  corresponding to this module. In particular, the fifth component is the ray class group structure."},
+-{"buchreal",97,(void*)buchreal,4,"GD0,G,D0.1,G,D0.1,G,D5,G,p","buchreal(D,...)=compute the structure of the class group and the regulator of the real quadratic field of discriminant D>0 in the wide sense. See manual for the other parameters (which can be omitted)."},
+-{"bytesize",10,(void*)gsizebyte,2,"lG","bytesize(x)=number of bytes occupied by the complete tree of the object x."},
+-{"ceil",1,(void*)gceil,2,"G","ceil(x)=ceiling of x=smallest integer>=x."},
+-{"centerlift",1,(void*)centerlift,2,"G","centerlift(x)=centered lift of x. Same as lift except for integermods."},
+-{"cf",1,(void*)gcf,4,"Gp","cf(x)=continued fraction expansion of x (x rational,real or rational function)."},
+-{"cf2",2,(void*)gcf2,4,"GGp","cf2(b,x)=continued fraction expansion of x (x rational,real or rational function), where b is the vector of numerators of the continued fraction."},
+-{"changevar",0,(void*)suppressed,11,"GG","changevar(x,y)=THIS FUNCTION HAS BEEN SUPPRESSED."},
+-{"char",14,(void*)caradj,8,"GnD&","char(x,y)=det(y*I-x)=characteristic polynomial of the matrix x using the comatrix."},
+-{"char1",14,(void*)caract,8,"Gn","char1(x,y)=det(y*I-x)=characteristic polynomial of the matrix x using Lagrange interpolation."},
+-{"char2",14,(void*)carhess,8,"Gn","char2(x,y)=characteristic polynomial of the matrix x expressed with variable y, using the Hessenberg form. Can be much faster or much slower than char, depending on the base ring."},
+-{"chell",2,(void*)ellchangecurve,5,"GG","chell(x,y)=change data on elliptic curve according to y=[u,r,s,t]."},
+-{"chinese",2,(void*)chinese,4,"GG","chinese(x,y)=x,y being integers modulo mx and my,finds z such that z is congruent to x mod mx and y mod my."},
+-{"chptell",2,(void*)ellchangepoint,5,"GG","chptell(x,y)=change data on point or vector of points x on an elliptic curve according to y=[u,r,s,t]."},
+-{"classno",1,(void*)classno,4,"G","classno(x)=class number of discriminant x."},
+-{"classno2",1,(void*)classno2,4,"G","classno2(x)=class number of discriminant x."},
+-{"coeff",21,(void*)truecoeff,2,"GL","coeff(x,s)=coefficient of degree s of x, or the s-th component for vectors or matrices (for which it is simpler to use x[])."},
+-{"compimag",2,(void*)qficomp,4,"GG","compimag(x,y)=Gaussian composition of the binary quadratic forms x and y of negative discriminant."},
+-{"compo",21,(void*)compo,2,"GL","compo(x,s)=the s'th component of the internal representation of x. For vectors or matrices, it is simpler to use x[]."},
+-{"compositum",2,(void*)compositum,6,"GG","compositum(pol1,pol2)=vector of all possible compositums of the number fields defined by the polynomials pol1 and pol2."},
+-{"compositum2",2,(void*)compositum2,6,"GG","compositum2(pol1,pol2)=vector of all possible compositums of the number fields defined by the polynomials pol1 and pol2, with roots of pol1 and pol2 expressed on the compositum polynomials."},
+-{"comprealraw",2,(void*)qfrcompraw,4,"GG","comprealraw(x,y)=Gaussian composition without reduction of the binary quadratic forms x and y of positive discriminant."},
+-{"concat",2,(void*)concat,8,"GG","concat(x,y)=concatenation of x and y."},
+-{"conductor",99,(void*)bnrconductor0,6,"GDGDGD1,L,","conductor(bnr,subgroup)=conductor of the subfield of the ray class field bnr given by buchrayinit, defined by the HNF matrix subgroup."},
+-{"conductorofchar",2,(void*)bnrconductorofchar,6,"GG","conductorofchar(bnr,chi)=conductor of the character chi on the ray class group bnr."},
+-{"conj",1,(void*)gconj,2,"G","conj(x)=the algebraic conjugate of x."},
+-{"conjvec",1,(void*)conjvec,2,"Gp","conjvec(x)=conjugate vector of the algebraic number x."},
+-{"content",1,(void*)content,4,"G","content(x)=gcd of all the components of x, when this makes sense."},
+-{"convol",2,(void*)convol,7,"GG","convol(x,y)=convolution (or Hadamard product) of two power series."},
+-{"core",1,(void*)core,4,"G","core(n)=unique (positive of negative) squarefree integer d dividing n such that n/d is a square."},
+-{"core2",1,(void*)core2,4,"G","core2(n)=(long)gen_2-component row vector [d,f], where d is the unique squarefree integer dividing n such that n/d=f^2 is a square."},
+-{"coredisc",1,(void*)coredisc,4,"G","coredisc(n)=discriminant of the quadratic field Q(sqrt(n))."},
+-{"coredisc2",1,(void*)coredisc2,4,"G","coredisc2(n)=(long)gen_2-component row vector [d,f], where d is the discriminant of the quadratic field Q(sqrt(n)) and n=df^2. f may be a half integer."},
+-{"cos",1,(void*)gcos,3,"Gp","cos(x)=cosine of x."},
+-{"cosh",1,(void*)gch,3,"Gp","cosh(x)=hyperbolic cosine of x."},
+-{"cvtoi",13,(void*)gcvtoi,2,"Gf","cvtoi(x)=truncation of x, without taking into account loss of integer part precision."},
+-{"cyclo",11,(void*)polcyclo,7,"LDn","cyclo(n)=n-th cyclotomic polynomial."},
+-{"decodefactor",1,(void*)factorback,4,"G","decodefactor(fa)=given a factorisation fa, gives the factored object back."},
+-{"decodemodule",2,(void*)decodemodule,6,"GG","decodemodule(nf,fa)=given a coded module fa as in discrayabslist, gives the true module."},
+-{"degree",10,(void*)degree,2,"lG","degree(x)=degree of the polynomial or rational function x. -1 if equal 0, 0 if non-zero scalar."},
+-{"denom",1,(void*)denom,2,"G","denom(x)=denominator of x (or lowest common denominator in case of an array)."},
+-{"deplin",1,(void*)deplin,8,"Gp","deplin(x)=finds a linear dependence between the columns of the matrix x."},
+-{"deriv",14,(void*)deriv,7,"Gn","deriv(x,y)=derivative of x with respect to the main variable of y."},
+-{"det",1,(void*)det,8,"G","det(x)=determinant of the matrix x."},
+-{"det2",1,(void*)det2,8,"G","det2(x)=determinant of the matrix x (better for integer entries)."},
+-{"detint",1,(void*)detint,8,"G","detint(x)=some multiple of the determinant of the lattice generated by the columns of x (0 if not of maximal rank). Useful with hermitemod."},
+-{"diagonal",1,(void*)diagonal,8,"G","diagonal(x)=creates the diagonal matrix whose diagonal entries are the entries of the vector x."},
+-{"dilog",1,(void*)dilog,3,"Gp","dilog(x)=dilogarithm of x."},
+-{"dirdiv",2,(void*)dirdiv,7,"GG","dirdiv(x,y)=division of the Dirichlet series x by the Dir. series y."},
+-{"direuler",83,(void*)direuler0,7,"V=GGEDG","direuler(p=a,b,expr)=Dirichlet Euler product of expression expr from p=a to p=b, limited to b terms. Expr should be a polynomial or rational function in p and X, and X is understood to mean p^(-s)."},
+-{"dirmul",2,(void*)dirmul,7,"GG","dirmul(x,y)=multiplication of the Dirichlet series x by the Dir. series y."},
+-{"dirzetak",2,(void*)dirzetak,6,"GG","dirzetak(nf,b)=Dirichlet series of the Dedekind zeta function of the number field nf up to the bound b-1."},
+-{"disc",1,(void*)poldisc0,7,"GDn","disc(x)=discriminant of the polynomial x."},
+-{"discf",1,(void*)nfdisc0,6,"GD0,L,DG","discf(x)=discriminant of the number field defined by the polynomial x using round 4."},
+-{"discf2",1,(void*)nfdisc0,6,"GD2,L,DG","discf2(x)=discriminant of the number field defined by the polynomial x using round 2."},
+-{"discrayabs",62,(void*)bnrdisc0,6,"GD0,G,D0,G,D0,L,","discrayabs(bnr,subgroup)=absolute [N,R1,disc] of the subfield of the ray class field bnr given by buchrayinit, defined by the HNF matrix subgroup."},
+-{"discrayabscond",62,(void*)bnrdisc0,6,"GD0,G,D0,G,D2,L,","discrayabscond(bnr,subgroup)=absolute [N,R1,disc] of the subfield of the ray class field bnr given by buchrayinit, defined by the HNF matrix subgroup. Result is zero if fmodule is not the conductor."},
+-{"discrayabslist",2,(void*)discrayabslist,6,"GG","discrayabslist(bnf,listes)=if listes is a 2-component vector as output by ideallistunit or similar, gives list of corresponding discrayabscond."},
+-{"discrayabslistarch",32,(void*)discrayabslistarch,6,"GGL","discrayabslistarch(bnf,arch,bound)=gives list of discrayabscond of all modules up to norm bound with archimedean places arch, in a longvector format."},
+-{"discrayabslistarchall",32,(void*)discrayabslistarch,6,"GL","discrayabslistarchall(bnf,bound)=gives list of discrayabscond of all modules up to norm bound with all possible archimedean places arch in reverse lexicographic order, in a longvector format."},
+-{"discrayabslistlong",21,(void*)discrayabslistlong,6,"GL","discrayabslistlong(bnf,bound)=gives list of discrayabscond of all modules up to norm bound without archimedean places, in a longvector format."},
+-{"discrayrel",62,(void*)bnrdisc0,6,"GD0,G,D0,G,D1,L,","discrayrel(bnr,subgroup)=relative [N,R1,rnfdisc] of the subfield of the ray class field bnr given by buchrayinit, defined by the HNF matrix subgroup."},
+-{"discrayrelcond",62,(void*)bnrdisc0,6,"GD0,G,D0,G,D3,L,","discrayrelcond(bnr,subgroup)=relative [N,R1,rnfdisc] of the subfield of the ray class field bnr given by buchrayinit, defined by the HNF matrix subgroup. Result is zero if module is not the conductor."},
+-{"divisors",1,(void*)divisors,4,"G","divisors(x)=gives a vector formed by the divisors of x in increasing order."},
+-{"divres",2,(void*)gdiventres,1,"GG","divres(x,y)=euclidean division of x by y giving as a 2-dimensional column vector the quotient and the remainder."},
+-{"divsum",22,(void*)divsum,9,"GVE","divsum(n,X,expr)=sum of expression expr, X running over the divisors of n."},
+-{"eigen",1,(void*)eigen,8,"Gp","eigen(x)=eigenvectors of the matrix x given as columns of a matrix."},
+-{"eint1",1,(void*)eint1,3,"Gp","eint1(x)=exponential integral E1(x)."},
+-{"erfc",1,(void*)gerfc,3,"Gp","erfc(x)=complementary error function."},
+-{"eta",1,(void*)eta,3,"Gp","eta(x)=eta function without the q^(1/24)."},
+-{"euler",0,(void*)mpeuler,3,"p","euler=euler()=euler's constant with current precision."},
+-{"eval",1,(void*)geval_gp,7,"GC","eval(x)=evaluation of x, replacing variables by their value."},
+-{"exp",1,(void*)gexp,3,"Gp","exp(x)=exponential of x."},
+-{"extract",2,(void*)extract0,8,"GGDG","extract(x,y)=extraction of the components of the vector x according to the vector or mask y, from left to right (1, 2, 4, 8, ...for the first, second, third, fourth,...component)."},
+-{"fact",11,(void*)mpfactr,4,"Lp","fact(x)=factorial of x (x C-integer), the result being given as a real number."},
+-{"factcantor",2,(void*)factcantor,4,"GG","factcantor(x,p)=factorization mod p of the polynomial x using Cantor-Zassenhaus."},
+-{"factfq",3,(void*)factorff,4,"GGG","factfq(x,p,a)=factorization of the polynomial x in the finite field F_p[X]/a(X)F_p[X]."},
+-{"factmod",2,(void*)factmod,4,"GG","factmod(x,p)=factorization mod p of the polynomial x using Berlekamp."},
+-{"factor",1,(void*)factor,4,"G","factor(x)=factorization of x."},
+-{"factoredbasis",28,(void*)factoredbase,6,"GG","factoredbasis(x,p)=integral basis of the maximal order defined by the polynomial x, where p is the matrix of the factorization of the discriminant of x."},
+-{"factoreddiscf",2,(void*)factoreddiscf,6,"GG","factoreddiscf(x,p)=discriminant of the maximal order defined by the polynomial x, where p is the matrix of the factorization of the discriminant of x."},
+-{"factoredpolred",2,(void*)factoredpolred,6,"GG","factoredpolred(x,p)=reduction of the polynomial x, where p is the matrix of the factorization of the discriminant of x (gives minimal polynomials only)."},
+-{"factoredpolred2",2,(void*)factoredpolred2,6,"GG","factoredpolred2(x,p)=reduction of the polynomial x, where p is the matrix of the factorization of the discriminant of x (gives elements and minimal polynomials)."},
+-{"factornf",2,(void*)polfnf,6,"GG","factornf(x,t)=factorization of the polynomial x over the number field defined by the polynomial t."},
+-{"factorpadic",32,(void*)factorpadic,7,"GGL","factorpadic(x,p,r)=p-adic factorization of the polynomial x to precision r, using the round 4 algorithm."},
+-{"factorpadic2",32,(void*)factorpadic0,7,"GGLD1,L,","factorpadic2(x,p,r)=p-adic factorization of the polynomial x to precision r, using Buchmann-Lenstra."},
+-{"factpol",33,(void*)_factpol,7,"GLL","factpol(x,l,hint)=factorization over Z of the polynomial x up to degree l (complete if l=0) using Hensel lift, knowing that the degree of each factor is a multiple of hint."},
+-{"factpol2",0,(void*)suppressed,6,"GL","factpol2(x,l)=factorization over Z of the polynomial x up to degree l (complete if l=0) using root finding."},
+-{"fibo",11,(void*)fibo,4,"L","fibo(x)=fibonacci number of index x (x C-integer)."},
+-{"floor",1,(void*)gfloor,2,"G","floor(x)=floor of x=largest integer<=x."},
+-{"for",83,(void*)forpari,11,"vV=GGI","for(X=a,b,seq)=the sequence is evaluated, X going from a up to b."},
+-{"fordiv",84,(void*)fordiv,11,"vGVI","fordiv(n,X,seq)=the sequence is evaluated, X running over the divisors of n."},
+-{"forprime",83,(void*)forprime,11,"vV=GGI","forprime(X=a,b,seq)=the sequence is evaluated, X running over the primes between a and b."},
+-{"forstep",86,(void*)forstep,11,"vV=GGGI","forstep(X=a,b,s,seq)=the sequence is evaluated, X going from a to b in steps of s."},
+-{"forvec",87,(void*)forvec,11,"vV=GID0,L,","forvec(x=v,seq)=v being a vector of two-component vectors of length n, the sequence is evaluated with x[i] going from v[i][1] to v[i][2] for i=n,..,1."},
+-{"fpn",21,(void*)ffinit,2,"GLDn","fpn(p,n)=monic irreducible polynomial of degree n over F_p[x]."},
+-{"frac",1,(void*)gfrac,2,"G","frac(x)=fractional part of x=x-floor(x)."},
+-{"galois",1,(void*)polgalois,6,"Gp","galois(x)=Galois group of the polynomial x (see manual for group coding)."},
+-{"galoisapply",3,(void*)galoisapply,6,"GGG","galoisapply(nf,aut,x)=Apply the Galois automorphism sigma (polynomial or polymod) to the object x (element or ideal) in the number field nf."},
+-{"galoisconj",1,(void*)galoisconj,6,"GDG","galoisconj(nf)=list of conjugates of a root of the polynomial x=nf[1] in the same number field, using p-adics, LLL on integral basis (not always complete)."},
+-{"galoisconj1",0,(void*)suppressed,6,"G","galoisconj1(nf)=list of conjugates of a root of the polynomial x=nf[1] in the same number field nf, using complex numbers, LLL on integral basis (not always complete)."},
+-{"galoisconjforce",0,(void*)suppressed,6,"G","galoisconjforce(nf)=list of conjugates of a root of the polynomial x=nf[1] in the Galois number field nf, using p-adics, LLL on integral basis. Guaranteed to be complete if the field is Galois, otherwise there is an infinite loop."},
+-{"gamh",1,(void*)ggamd,3,"Gp","gamh(x)=gamma of x+1/2 (x integer)."},
+-{"gamma",1,(void*)ggamma,3,"Gp","gamma(x)=gamma function at x."},
+-{"gauss",2,(void*)gauss,8,"GG","gauss(a,b)=gaussian solution of ax=b (a matrix,b vector)."},
+-{"gaussmodulo",3,(void*)gaussmodulo,8,"GGG","gaussmodulo(M,D,Y)=(long)gen_1 solution of system of congruences MX=Y mod D."},
+-{"gaussmodulo2",3,(void*)gaussmodulo2,8,"GGG","gaussmodulo2(M,D,Y)=all solutions of system of congruences MX=Y mod D."},
+-{"gcd",2,(void*)ggcd,4,"GG","gcd(x,y)=greatest common divisor of x and y."},
+-{"getheap",0,(void*)getheap,2,"","getheap()=2-component vector giving the current number of objects in the heap and the space they occupy."},
+-{"getrand",0,(void*)getrand,2,"","getrand()=current value of random number seed."},
+-{"getstack",0,(void*)getstack,2,"l","getstack()=current value of stack pointer avma."},
+-{"gettime",0,(void*)gettime,2,"l","gettime()=time (in milliseconds) since last call to gettime."},
+-{"globalred",1,(void*)ellglobalred,5,"G","globalred(e)=e being an elliptic curve, returns [N,[u,r,s,t],c], where N is the conductor of e, [u,r,s,t] leads to the standard model for e, and c is the product of the local Tamagawa numbers c_p."},
+-{"goto",0,(void*)suppressed,11,"s*","goto(n)=THIS FUNCTION HAS BEEN SUPPRESSED."},
+-{"hclassno",1,(void*)hclassno,4,"G","hclassno(x)=Hurwitz-Kronecker class number of x>0."},
+-{"hell",2,(void*)ghell,5,"GGp","hell(e,x)=canonical height of point x on elliptic curve E defined by the vector e computed using theta-functions."},
+-{"hell2",2,(void*)ghell2,5,"GGp","hell2(e,x)=canonical height of point x on elliptic curve E defined by the vector e computed using Tate's method."},
+-{"hermite",1,(void*)ZM_hnf,8,"G","hermite(x)=(upper triangular) Hermite normal form of x, basis for the lattice formed by the columns of x, using a naive algorithm."},
+-{"hermite2",1,(void*)hnfall,8,"G","hermite2(x)=2-component vector [H,U] such that H is an (upper triangular) Hermite normal form of x, basis for the lattice formed by the columns of x, and U is a unimodular matrix such that xU=H, using Batut's algorithm."},
+-{"hermitehavas",0,(void*)suppressed,8,"G","hermitehavas(x)=3-component vector [H,U,P] such that H is an (upper triangular) Hermite normal form of x with extra zero columns, U is a unimodular matrix and P is a permutation of the rows such that P applied to xU gives H, using Havas's algorithm."},
+-{"hermitemod",2,(void*)hnfmod,8,"GG","hermitemod(x,d)=(upper triangular) Hermite normal form of x, basis for the lattice formed by the columns of x, where d is the non-zero determinant of this lattice."},
+-{"hermitemodid",2,(void*)hnfmodid,8,"GG","hermitemodid(x,d)=(upper triangular) Hermite normal form of x concatenated with d times the identity matrix."},
+-{"hermiteperm",1,(void*)hnfperm,8,"G","hermiteperm(x)=3-component vector [H,U,P] such that H is an (upper triangular) Hermite normal form of x with extra zero columns, U is a unimodular matrix and P is a permutation of the rows such that P applied to xU gives H, using Batut's algorithm."},
+-{"hess",1,(void*)hess,8,"G","hess(x)=Hessenberg form of x."},
+-{"hilb",30,(void*) hilbert,4,"lGGG","hilb(x,y,p)=Hilbert symbol at p of x,y (integers or fractions)."},
+-{"hilbert",11,(void*)mathilbert,8,"L","hilbert(n)=Hilbert matrix of order n (n C-integer)."},
+-{"hilbp",20,(void*) hilbert,4,"lGGDG","hilbp(x,y)=Hilbert symbol of x,y (where x or y is integermod or p-adic)."},
+-{"hvector",22,(void*)vecteur,9,"GVE","hvector(n,X,expr)=row vector with n components of expression expr, the variable X ranging from 1 to n."},
+-{"hyperu",3,(void*)hyperu,3,"GGGp","hyperu(a,b,x)=U-confluent hypergeometric function."},
+-{"i",0,(void*)gen_I,2,"","i=i()=square root of -1."},
+-{"idealadd",3,(void*)idealadd,6,"GGG","idealadd(nf,x,y)=sum of two ideals x and y in the number field defined by nf."},
+-{"idealaddmultone",2,(void*)idealaddmultoone,6,"GG","idealaddone(nf,x,y)=when the sum of two ideals x and y in the number field K defined by nf is equal to Z_K, gives a two-component vector [a,b] such that a is in x, b is in y and a+b=1."},
+-{"idealaddone",3,(void*)idealaddtoone,6,"GGG","idealaddmultone(nf,list)=when the sum of the ideals in the number field K defined by nf and given in the vector list is equal to Z_K, gives a vector of elements of the corresponding ideals who sum to 1."},
+-{"idealappr",2,(void*)idealappr,6,"GGp","idealappr(nf,x)=x being a fractional ideal, gives an element b such that v_p(b)=v_p(x) for all prime ideals p dividing x, and v_p(b)>=0 for all other p."},
+-{"idealapprfact",2,(void*)idealapprfact,6,"GG","idealapprfact(nf,x)=x being a prime ideal factorization with possibly zero or negative exponents, gives an element b such that v_p(b)=v_p(x) for all prime ideals p dividing x, and v_p(b)>=0 for all other p."},
+-{"idealchinese",3,(void*)idealchinese,6,"GGG","idealchinese(nf,x,y)=x being a prime ideal factorization and y a vector of elements, gives an element b such that v_p(b-y_p)>=v_p(x) for all prime ideals p dividing x, and v_p(b)>=0 for all other p."},
+-{"idealcoprime",3,(void*)idealcoprime,6,"GGG","idealcoprime(nf,x,y)=gives an element b in nf such that b.x is an integral ideal coprime to the integral ideal y."},
+-{"idealdiv",3,(void*)idealdiv,6,"GGG","idealdiv(nf,x,y)=quotient x/y of two ideals x and y in HNF in the number field nf."},
+-{"idealdivexact",3,(void*)idealdivexact,6,"GGG","idealdivexact(nf,x,y)=quotient x/y of two ideals x and y in HNF in the number field nf when the quotient is known to be an integral ideal."},
+-{"idealfactor",2,(void*)idealfactor,6,"GG","idealfactor(nf,x)=factorization of the ideal x given in HNF into prime ideals in the number field nf."},
+-{"idealhermite",2,(void*)idealhnf,6,"GG","idealhermite(nf,x)=hermite normal form of the ideal x in the number field nf, whatever form x may have."},
+-{"idealhermite2",3,(void*)idealhnf0,6,"GGG","idealhermite2(nf,a,b)=hermite normal form of the ideal aZ_K+bZ_K in the number field K defined by nf, where a and b are elements."},
+-{"idealintersect",3,(void*)idealintersect,6,"GGG","idealintersect(nf,x,y)=intersection of two ideals x and y in HNF in the number field defined by nf."},
+-{"idealinv",2,(void*)idealinv,6,"GG","idealinv(nf,x)=inverse of the ideal x in the number field nf not using the different."},
+-{"idealinv2",2,(void*)idealinv,6,"GG","idealinv2(nf,x)=inverse of the ideal x in the number field nf using the different."},
+-{"ideallist",21,(void*)ideallist,6,"GL","ideallist(nf,bound)=vector of vectors of all ideals of norm<=bound in nf."},
+-{"ideallistarch",3,(void*)ideallistarch,6,"GGG","ideallistarch(nf,list,arch)=vector of vectors of all zidealstarinits of all modules in list with archimedean arch added, without generators."},
+-{"ideallistarchgen",3,(void*)ideallistarch,6,"GGG","ideallistarchgen(nf,list,arch)=vector of vectors of all zidealstarinits of all modules in list with archimedean arch added, with generators."},
+-{"ideallistunit",21,(void*)ideallist0,6,"GLD2,L,","ideallistunit(bnf,bound)=2-component vector [L,U] where L is as ideallistzstar, and U is a vector of vector of zinternallogs of the units, without generators."},
+-{"ideallistunitarch",3,(void*)ideallistarch,6,"GGG","ideallistunitarch(bnf,lists,arch)=adds the archimedean arch to the lists output by ideallistunit."},
+-{"ideallistunitarchgen",3,(void*)ideallistarch,6,"GGG","ideallistunitarchgen(bnf,lists,arch)=adds the archimedean arch to the lists output by ideallistunitgen."},
+-{"ideallistunitgen",21,(void*)ideallist0,6,"GLD3,L,","ideallistunitgen(bnf,bound)=2-component vector [L,U] where L is as ideallistzstar, and U is a vector of vector of zinternallogs of the units, with generators."},
+-{"ideallistzstar",21,(void*)ideallist0,6,"GLD0,L,","ideallistzstar(nf,bound)=vector of vectors of all zidealstarinits of all ideals of norm<=bound, without generators."},
+-{"ideallistzstargen",21,(void*)ideallist0,6,"GLD1,L,","ideallistzstargen(nf,bound)=vector of vectors of all zidealstarinits of all ideals of norm<=bound, with generators."},
+-{"ideallllred",3,(void*)idealred0,6,"GGGp","ideallllred(nf,x,vdir)=LLL reduction of the ideal x in the number field nf along direction vdir, in HNF."},
+-{"idealmul",3,(void*)idealmul,6,"GGG","idealmul(nf,x,y)=product of the two ideals x and y in the number field nf."},
+-{"idealmulred",3,(void*)idealmulred,6,"GGGp","idealmulred(nf,x,y)=reduced product of the two ideals x and y in the number field nf."},
+-{"idealnorm",2,(void*)idealnorm,6,"GG","idealnorm(nf,x)=norm of the ideal x in the number field nf."},
+-{"idealpow",3,(void*)idealpow,6,"GGG","idealpow(nf,x,n)=n-th power of the ideal x in HNF in the number field nf."},
+-{"idealpowred",3,(void*)idealpowred,6,"GGGp","idealpowred(nf,x,n)=reduced n-th power of the ideal x in HNF in the number field nf."},
+-{"idealtwoelt",2,(void*)idealtwoelt,6,"GG","idealtwoelt(nf,x)=(long)gen_2-element representation of an ideal x in the number field nf."},
+-{"idealtwoelt2",3,(void*)idealtwoelt2,6,"GGG","idealtwoelt2(nf,x,a)=(long)gen_2-element representation of an ideal x in the number field nf, with the first element equal to a."},
+-{"idealval",30,(void*)idealval,6,"lGGG","idealval(nf,x,p)=valuation at p given in primedec format of the ideal x in the number field nf."},
+-{"idmat",11,(void*)matid,8,"L","idmat(n)=identity matrix of order n (n C-integer)."},
+-{"if",0,(void*)ifpari,11,"GDEDE","if(a,seq1,seq2): if a is nonzero, seq1 is evaluated, otherwise seq2. seq1 and seq2 are optional, and if seq2 is omitted, the preceding comma can be omitted also."},
+-{"imag",1,(void*)gimag,2,"G","imag(x)=imaginary part of x."},
+-{"image",1,(void*)image,8,"G","image(x)=basis of the image of the matrix x."},
+-{"image2",1,(void*)image2,8,"G","image2(x)=basis of the image of the matrix x."},
+-{"imagecompl",1,(void*)imagecompl,8,"G","imagecompl(x)=vector of column indices not corresponding to the indices given by the function image."},
+-{"incgam",2,(void*)incgam,3,"GGp","incgam(s,x)=incomplete gamma function."},
+-{"incgam1",2,(void*)suppressed,3,"GGp","incgam1(s,x)=incomplete gamma function (for debugging only)."},
+-{"incgam2",2,(void*)suppressed,3,"GGp","incgam2(s,x)=incomplete gamma function (for debugging only)."},
+-{"incgam3",2,(void*)incgamc,3,"GGp","incgam3(s,x)=complementary incomplete gamma function."},
+-{"incgam4",3,(void*)incgam0,3,"GGGp","incgam4(s,x,y)=incomplete gamma function where y=gamma(s) is precomputed."},
+-{"indexrank",1,(void*)indexrank,8,"G","indexrank(x)=gives two extraction vectors (rows and columns) for the matrix x such that the exracted matrix is square of maximal rank."},
+-{"indsort",1,(void*)indexsort,8,"G","indsort(x)=indirect sorting of the vector x."},
+-{"initalg",1,(void*)nfinit,6,"Gp","initalg(x)=x being a nonconstant irreducible polynomial, gives the vector: [x,[r1,r2],nfdisc,index,[M,MC,T2,T,different] (see manual),r1+r2 first roots, integral basis, matrix of power basis in terms of integral basis, multiplication table of basis]."},
+-{"initalgred",1,(void*)nfinitred,6,"Gp","initalgred(x)=x being a nonconstant irreducible polynomial, finds (using polred) a simpler polynomial pol defining the same number field, and gives the vector: [pol,[r1,r2],nfdisc,index,[M,MC,T2,T,different] (see manual), r1+r2 first roots, integral basis, matrix of power basis in terms of integral basis, multiplication table of basis]."},
+-{"initalgred2",1,(void*)nfinitred2,6,"Gp","initalgred2(P)=P being a nonconstant irreducible polynomial, gives a two-element vector [nf,mod(a,pol)], where nf is as output by nfinitred and mod(a,pol) is a polymod equal to mod(x,P) and pol=nf[1]."},
+-{"initell",1,(void*)ellinit,5,"Gp","initell(x)=x being the vector [a1,a2,a3,a4,a6], gives the vector: [a1,a2,a3,a4,a6,b2,b4,b6,b8,c4,c6,delta,j,[e1,e2,e3],w1,w2,eta1,eta2,q,area]."},
+-{"initzeta",1,(void*)initzeta,6,"Gp","initzeta(x)=compute number field information necessary to use zetak, where x is an irreducible polynomial."},
+-{"integ",14,(void*)integ,7,"Gn","integ(x,y)=formal integration of x with respect to the main variable of y."},
+-{"intersect",2,(void*)intersect,8,"GG","intersect(x,y)=intersection of the vector spaces whose bases are the columns of x and y."},
+-{"intgen",99,(void*)intnumromb0,9,"V=GGED1,L,p","intgen(X=a,b,s)=general numerical integration of s from a to b with respect to X, to be used after removing singularities."},
+-{"intinf",99,(void*)intnumromb0,9,"V=GGED2,L,p","intinf(X=a,b,s)=numerical integration of s from a to b with respect to X, where a or b can be plus or minus infinity (1.0e4000), but of same sign."},
+-{"intnum",99,(void*)intnumromb0,9,"V=GGED0,L,p","intnum(X=a,b,s)=numerical integration of s from a to b with respect to X."},
+-{"intopen",99,(void*)intnumromb0,9,"V=GGED3,L,p","intopen(X=a,b,s)=numerical integration of s from a to b with respect to X, where s has only limits at a or b."},
+-{"inverseimage",2,(void*)inverseimage,8,"GG","inverseimage(x,y)=an element of the inverse image of the vector y by the matrix x if one exists, the empty vector otherwise."},
+-{"isdiagonal",10,(void*)isdiagonal,8,"lG","isdiagonal(x)=true(1) if x is a diagonal matrix, false(0) otherwise."},
+-{"isfund",1,(void*)gisfundamental,4,"G","isfund(x)=true(1) if x is a fundamental discriminant (including 1), false(0) if not."},
+-{"isideal",20,(void*)isideal,6,"lGG","isideal(nf,x)=true(1) if x is an ideal in the number field nf, false(0) if not."},
+-{"isincl",2,(void*)nfisincl,6,"GG","isincl(x,y)=tests whether the number field defined by the polynomial x is isomorphic to a subfield of the one defined by y; 0 if not, otherwise all the isomorphisms."},
+-{"isinclfast",2,(void*)nfisincl,6,"GG","isinclfast(nf1,nf2)=tests whether the number nf1 is isomorphic to a subfield of nf2 or not. If it gives a non-zero result, this proves that this is the case. However if it gives zero, nf1 may still be isomorphic to a subfield of nf2 so you have to use the much slower isincl to be sure."},
+-{"isirreducible",1,(void*)gisirreducible,7,"G","isirreducible(x)=true(1) if x is an irreducible non-constant polynomial, false(0) if x is reducible or constant."},
+-{"isisom",2,(void*)nfisisom,6,"GG","isisom(x,y)=tests whether the number field defined by the polynomial x is isomorphic to the one defined by y; 0 if not, otherwise all the isomorphisms."},
+-{"isisomfast",2,(void*)nfisisom,6,"GG","isisomfast(nf1,nf2)=tests whether the number fields nf1 and nf2 are isomorphic or not. If it gives a non-zero result, this proves that they are isomorphic. However if it gives zero, nf1 and nf2 may still be isomorphic so you have to use the much slower isisom to be sure."},
+-{"isoncurve",20,(void*)oncurve,5,"iGG","isoncurve(e,x)=true(1) if x is on elliptic curve e, false(0) if not."},
+-{"isprime",1,(void*)gisprime,4,"GD0,L,","isprime(x)=true(1) if x is a strong pseudoprime for 10 random bases, false(0) if not."},
+-{"isprincipal",2,(void*)isprincipal,6,"GG","isprincipal(bnf,x)=bnf being output by buchinit, gives the vector of exponents on the class group generators of x. In particular x is principal if and only if the result is the zero vector."},
+-{"isprincipalforce",2,(void*)isprincipalforce,6,"GG","isprincipalforce(bnf,x)=same as isprincipal, except that the precision is doubled until the result is obtained."},
+-{"isprincipalgen",2,(void*)isprincipalgen,6,"GG","isprincipalgen(bnf,x)=bnf being output by buchinit, gives [v,alpha,bitaccuracy], where v is the vector of exponents on the class group generators and alpha is the generator of the resulting principal ideal. In particular x is principal if and only if v is the zero vector."},
+-{"isprincipalgenforce",2,(void*)isprincipalgenforce,6,"GG","isprincipalgenforce(bnf,x)=same as isprincipalgen, except that the precision is doubled until the result is obtained."},
+-{"isprincipalray",2,(void*)isprincipalray,6,"GG","isprincipalray(bnf,x)=bnf being output by buchrayinit, gives the vector of exponents on the ray class group generators of x. In particular x is principal if and only if the result is the zero vector."},
+-{"isprincipalraygen",2,(void*)isprincipalraygen,6,"GG","isprincipalraygen(bnf,x)=bnf being output by buchrayinit, gives [v,alpha,bitaccuracy], where v is the vector of exponents on the class group generators and alpha is the generator of the resulting principal ideal. In particular x is principal if and only if v is the zero vector."},
+-{"ispsp",1,(void*)gispseudoprime,4,"GD1,L,","ispsp(x)=true(1) if x is a strong pseudoprime, false(0) if not."},
+-{"isqrt",1,(void*)sqrtint,4,"G","isqrt(x)=integer square root of x (x integer)."},
+-{"isset",10,(void*)setisset,8,"lG","isset(x)=true(1) if x is a set (row vector with strictly increasing entries), false(0) if not."},
+-{"issqfree",1,(void*)gissquarefree,4,"G","issqfree(x)=true(1) if x is squarefree, false(0) if not."},
+-{"issquare",1,(void*)gissquare,4,"G","issquare(x)=true(1) if x is a square, false(0) if not."},
+-{"isunit",2,(void*)bnfisunit,6,"GG","isunit(bnf,x)=bnf being output by buchinit, gives the vector of exponents of x on the fundamental units and the roots of unity if x is a unit, the empty vector otherwise."},
+-{"jacobi",1,(void*)jacobi,8,"Gp","jacobi(x)=eigenvalues and orthogonal matrix of eigenvectors of the real symmetric matrix x."},
+-{"jbesselh",2,(void*)jbesselh,3,"GGp","jbesselh(n,x)=J-bessel function of index n+1/2 and argument x, where n is a non-negative integer."},
+-{"jell",1,(void*)jell,3,"Gp","jell(x)=elliptic j invariant of x."},
+-{"karamul",0,(void*)suppressed,7,"GGL","karamul(x,y,k)=THIS FUNCTION HAS BEEN SUPPRESSED."},
+-{"kbessel",2,(void*)kbessel,3,"GGp","kbessel(nu,x)=K-bessel function of index nu and argument x (x positive real of type real, nu of any scalar type)."},
+-{"kbessel2",2,(void*)kbessel,3,"GGp","kbessel2(nu,x)=K-bessel function of index nu and argument x (x positive real of type real, nu of any scalar type)."},
+-{"ker",1,(void*)ker,8,"G","ker(x)=basis of the kernel of the matrix x."},
+-{"keri",1,(void*)keri,8,"G","keri(x)=basis of the kernel of the matrix x with integer entries."},
+-{"kerint",1,(void*)matkerint0,8,"GD0,L,","kerint(x)=LLL-reduced Z-basis of the kernel of the matrix x with integral entries using a modified LLL."},
+-{"kerint1",1,(void*)matkerint0,8,"GD1,L,","kerint1(x)=LLL-reduced Z-basis of the kernel of the matrix x with rational entries using matrixqz3 and the HNF."},
+-{"kerint2",1,(void*)suppressed,8,"G","kerint2(x)=LLL-reduced Z-basis of the kernel of the matrix x with integral entries using a modified LLL."},
+-{"kro",2,(void*)gkronecker,4,"GG","kro(x,y)=kronecker symbol (x/y)."},
+-{"label",0,(void*)suppressed,11,"s*","label(n)=THIS FUNCTION HAS BEEN SUPPRESSED."},
+-{"lambdak",2,(void*)glambdak,6,"GGp","lambdak(nfz,s)=Dedekind lambda function of the number field nfz at s, where nfz is the vector computed by initzeta (NOT by nfinit)."},
+-{"laplace",1,(void*)laplace,7,"G","laplace(x)=replaces the power series sum of a_n*x^n/n! by sum of a_n*x^n."},
+-{"lcm",2,(void*)glcm,4,"GG","lcm(x,y)=least common multiple of x and y=x*y/gcd(x,y)."},
+-{"legendre",11,(void*)pollegendre,7,"LDn","legendre(n)=legendre polynomial of degree n (n C-integer)."},
+-{"length",1,(void*)glength,2,"lG","length(x)=number of non code words in x."},
+-{"lex",20,(void*)lexcmp,2,"iGG","lex(x,y)=compare x and y lexicographically (1 if x>y, 0 if x=y, -1 if x<y)."},
+-{"lexsort",1,(void*)lexsort,8,"G","lexsort(x)=sort the elements of the vector x in ascending lexicographic order."},
+-{"lift",1,(void*)lift,2,"G","lift(x)=lifts every element of Z/nZ to Z or Z[x]/PZ[x] to Z[x]."},
+-{"lindep",1,(void*)lindep,8,"G","lindep(x)=Z-linear dependencies between components of x (Hastad et al)."},
+-{"lindep2",23,(void*)lindep2,8,"GL","lindep2(x,dec)=Z-linear dependencies between components of x using LLL, where dec should be about one half the number of decimal digits of precision."},
+-{"lll",1,(void*)lll,8,"Gp","lll(x)=lll reduction of the vectors forming the matrix x (gives the unimodular transformation matrix)."},
+-{"lll1",1,(void*)suppressed,8,"Gp","lll1(x)=old version of lll reduction of the vectors forming the matrix x (gives the unimodular transformation matrix)."},
+-{"lllgen",1,(void*)lllgen,8,"Gp","lllgen(x)=lll reduction of the vectors forming the matrix x with polynomial coefficients (gives the unimodular transformation matrix)."},
+-{"lllgram",1,(void*)lllgram,8,"Gp","lllgram(x)=lll reduction of the lattice whose gram matrix is x (gives the unimodular transformation matrix)."},
+-{"lllgram1",1,(void*)suppressed,8,"Gp","lllgram1(x)=old version of lll reduction of the lattice whose gram matrix is x (gives the unimodular transformation matrix)."},
+-{"lllgramgen",1,(void*)lllgramgen,8,"G","lllgramgen(x)=lll reduction of the lattice whose gram matrix is x with polynomial coefficients (gives the unimodular transformation matrix)."},
+-{"lllgramint",1,(void*)lllgramint,8,"G","lllgramint(x)=lll reduction of the lattice whose gram matrix is the integral matrix x (gives the unimodular transformation matrix)."},
+-{"lllgramkerim",1,(void*)lllgramkerim,8,"G","lllgramkerim(x)=kernel and lll reduction of the lattice whose gram matrix is the integral matrix x."},
+-{"lllgramkerimgen",1,(void*)lllgramkerimgen,8,"G","lllgramkerimgen(x)=kernel and lll reduction of the lattice whose gram matrix is the matrix x with polynomial coefficients."},
+-{"lllint",1,(void*)lllint,8,"G","lllint(x)=lll reduction of the vectors forming the matrix x when the gram matrix is integral (gives the unimodular transformation matrix)."},
+-{"lllintpartial",1,(void*)lllintpartial,8,"G","lllintpartial(x)=partial (hence faster) lll reduction of the vectors forming the matrix x when the gram matrix is integral (gives the unimodular transformation matrix)."},
+-{"lllkerim",1,(void*)lllkerim,8,"G","lllkerim(x)=kernel and lll reduction of the vectors forming the integral matrix x."},
+-{"lllkerimgen",1,(void*)lllkerimgen,8,"G","lllkerimgen(x)=kernel and lll reduction of the vectors forming the matrix x with polynomial coefficients."},
+-{"lllrat",1,(void*)suppressed,8,"G","lllrat(x)=lll reduction of the vectors forming the matrix x, computations done with rational numbers (gives the unimodular transformation matrix)."},
+-{"ln",1,(void*)glog,3,"Gp","ln(x)=log(x)=natural logarithm of x."},
+-{"lngamma",1,(void*)glngamma,3,"Gp","lngamma(x)=logarithm of the gamma function of x."},
+-{"localred",2,(void*)elllocalred,5,"GG","localred(e,p)=e being an ellliptic curve, returns [f,kod,[u,r,s,t],c], where f is the conductor's exponent, kod is the kodaira type for e at p, [u,r,s,t] is the change of variable needed to make e minimal at p, and c is the local Tamagawa number c_p."},
+-{"log",1,(void*)glog,3,"Gp","log(x)=ln(x)=natural logarithm of x."},
+-{"logagm",1,(void*)glog,3,"Gp","logagm(x)=natural logarithm of x, computed using agm (faster than log for more than a few hundred decimal digits)."},
+-{"lseriesell",4,(void*)lseriesell0,5,"GGGGp","lseriesell(e,s,N,A)=L-series at s of the elliptic curve e, where |N| is the conductor, sign(N) the sign of the functional equation, and A a cut-off point close to 1."},
+-{"makebigbnf",1,(void*)bnfinit0,6,"GD0,L,DGp","makebigbnf(sbnf)=transforms small sbnf as output by smallbuchinit into a true big bnf."},
+-{"mat",1,(void*)gtomat,8,"G","mat(x)=transforms any GEN x into a matrix."},
+-{"matextract",3,(void*)extract0,8,"GGG","matextract(x,y,z)=extraction of the components of the matrix x according to the vector or masks y (for the rows) and z (for the columns) from left to right (1,2,4,8,...for the first, second, third, fourth, ...rows or columns)."},
+-{"mathell",2,(void*)mathell,5,"GGp","mathell(e,x)=gives the height matrix for vector of points x on elliptic curve e using theta functions."},
+-{"matrix",49,(void*)matrice,9,"GGVVE","matrix(m,n,X,Y,expr)=mXn matrix of expression expr, the row variable X going  from 1 to m and the column variable Y going from 1 to n."},
+-{"matrixqz",2,(void*)QM_minors_coprime,8,"GG","matrixqz(x,p)=transforms the rational or integral mxn (m>=n) matrix x into an integral matrix with gcd of maximal determinants equal to 1 if p is equal to 0, not divisible by p otherwise."},
+-{"matrixqz2",1,(void*)QM_ImZ_hnf,8,"G","matrixqz2(x)=finds a basis of the intersection with Z^n of the lattice spanned by the columns of x."},
+-{"matrixqz3",1,(void*)QM_ImQ_hnf,8,"G","matrixqz3(x)=finds a basis of the intersection with Z^n of the Q-vector space spanned by the columns of x."},
+-{"matsize",1,(void*)matsize,2,"G","matsize(x)=number of rows and columns of the vector/matrix x as a 2-vector."},
+-{"max",2,(void*)gmax,1,"GG","max(x,y)=maximum of x and y."},
+-{"min",2,(void*)gmin,1,"GG","min(x,y)=minimum of x and y."},
+-{"minideal",3,(void*)idealmin,6,"GGG","idealmin(nf,ix,vdir)=minimum of the ideal ix in the direction vdir in the number field nf."},
+-{"minim",33,(void*)minim,8,"GGG","minim(x,bound,maxnum)=number of vectors of square norm <= bound, maximum norm and list of vectors for the integral and definite quadratic form x; minimal non-zero vectors if bound=0."},
+-{"minim2",23,(void*)minim2,8,"GG","minim2(x,bound)=looks for vectors of square norm <= bound, return the first one and its norm."},
+-{"mod",25,(void*)gmodulo,2,"GG","mod(x,y)=creates the integer x modulo y on the PARI stack."},
+-{"modp",25,(void*)gmodulo,2,"GG","modp(x,y)=creates the integer x modulo y as a permanent object (on the heap)."},
+-{"modreverse",1,(void*)modreverse,6,"G","modreverse(x)=reverse polymod of the polymod x, if it exists."},
+-{"modulargcd",2,(void*)QX_gcd,2,"GG","modulargcd(x,y)=gcd of the polynomials x and y using the modular method."},
+-{"mu",1,(void*)gmoebius,4,"G","mu(x)=Moebius function of x."},
+-{"newtonpoly",2,(void*)newtonpoly,6,"GG","newtonpoly(x,p)=Newton polygon of polynomial x with respect to the prime p."},
+-{"nextprime",1,(void*)nextprime,4,"G","nextprime(x)=smallest prime number>=x."},
+-{"nfdetint",2,(void*)nfdetint,6,"GG","nfdetint(nf,x)=multiple of the ideal determinant of the pseudo generating set x."},
+-{"nfdiv",3,(void*)nfdiv,6,"GGG","nfdiv(nf,a,b)=element a/b in nf."},
+-{"nfdiveuc",3,(void*)nfdiveuc,6,"GGG","nfdiveuc(nf,a,b)=gives algebraic integer q such that a-bq is small."},
+-{"nfdivres",3,(void*)nfdivrem,6,"GGG","nfdivres(nf,a,b)=gives [q,r] such that r=a-bq is small."},
+-{"nfhermite",2,(void*)nfhnf,6,"GG","nfhermite(nf,x)=if x=[A,I], gives a pseudo-basis of the module sum A_jI_j."},
+-{"nfhermitemod",3,(void*)nfhnfmod,6,"GGG","nfhermitemod(nf,x,detx)=if x=[A,I], and detx is a multiple of the ideal determinant of x, gives a pseudo-basis of the module sum A_jI_j."},
+-{"nfmod",3,(void*)nfmod,6,"GGG","nfmod(nf,a,b)=gives r such that r=a-bq is small with q algebraic integer."},
+-{"nfmul",3,(void*)nfmul,6,"GGG","nfmul(nf,a,b)=element a.b in nf."},
+-{"nfpow",3,(void*)nfpow,6,"GGG","nfpow(nf,a,k)=element a^k in nf."},
+-{"nfreduce",3,(void*)nfreduce,6,"GGG","nfreduce(nf,a,id)=gives r such that a-r is the ideal id and r is small."},
+-{"nfsmith",2,(void*)nfsnf,6,"GG","nfsmith(nf,x)=if x=[A,I,J], outputs [c_1,...c_n] Smith normal form of x."},
+-{"nfval",30,(void*)nfval,6,"lGGG","nfval(nf,a,pr)=valuation of element a at the prime pr."},
+-{"norm",1,(void*)gnorm,2,"G","norm(x)=norm of x."},
+-{"norml2",1,(void*)gnorml2,2,"G","norml2(x)=square of the L2-norm of the vector x."},
+-{"nucomp",3,(void*)nucomp,4,"GGG","nucomp(x,y,l)=composite of primitive positive definite quadratic forms x and y using nucomp and nudupl, where l=[|D/4|^(1/4)] is precomputed."},
+-{"numdiv",1,(void*)numbdiv,4,"G","numdiv(x)=number of divisors of x."},
+-{"numer",1,(void*)numer,2,"G","numer(x)=numerator of x."},
+-{"nupow",2,(void*)nupow,4,"GG","nupow(x,n)=n-th power of primitive positive definite quadratic form x using nucomp and nudupl."},
+-{"o",0,(void*)ggrando,7,"GD1,L,","o(a^b): p-adic or power series zero with precision given by b."},
+-{"omega",1,(void*)gomega,4,"G","omega(x)=number of unrepeated prime divisors of x."},
+-{"ordell",2,(void*)ellordinate,5,"GGp","ordell(e,x)=y-coordinates corresponding to x-ordinate x on elliptic curve e."},
+-{"order",1,(void*)order,4,"G","order(x)=order of the integermod x in (Z/nZ)*."},
+-{"orderell",2,(void*)orderell,5,"GG","orderell(e,p)=order of the point p on the elliptic curve e over Q, 0 if non-torsion."},
+-{"ordred",1,(void*)ordred,6,"Gp","ordred(x)=reduction of the polynomial x, staying in the same order."},
+-{"padicprec",20,(void*)padicprec,2,"lGG","padicprec(x,p)=absolute p-adic precision of object x."},
+-{"pascal",99,(void*)matqpascal,8,"LDG","pascal(n)=pascal triangle of order n (n C-integer)."},
+-{"perf",10,(void*)perf,8,"G","perf(a)=rank of matrix of xx~ for x minimal vectors of a gram matrix a."},
+-{"permutation",24,(void*)numtoperm,2,"LG","permutation(n,k)=permutation number k (mod n!) of n letters (n C-integer)."},
+-{"permutation2num",1,(void*)permtonum,2,"G","permutation2num(vect)=ordinal (between 1 and n!) of permutation vect."},
+-{"pf",2,(void*)primeform,4,"GGp","pf(x,p)=returns the prime form whose first coefficient is p, of discriminant x."},
+-{"phi",1,(void*)geulerphi,4,"G","phi(x)=Euler's totient function of x."},
+-{"pi",0,(void*)mppi,3,"p","pi=pi()=the constant pi, with current precision."},
+-{"pnqn",1,(void*)pnqn,4,"G","pnqn(x)=[p_n,p_{n-1};q_n,q_{n-1}] corresponding to the continued fraction x."},
+-{"pointell",2,(void*)pointell,5,"GGp","pointell(e,z)=coordinates of point on the curve e corresponding to the complex number z."},
+-{"polint",31,(void*)polint,7,"GGGD&","polint(xa,ya,x)=polynomial interpolation at x according to data vectors xa, ya."},
+-{"polred",1,(void*)polred,6,"G","polred(x)=reduction of the polynomial x (gives minimal polynomials only)."},
+-{"polred2",1,(void*)polred2,6,"G","polred2(x)=reduction of the polynomial x (gives elements and minimal polynomials)."},
+-{"polredabs",1,(void*)polredabs,6,"G","polredabs(x)=a smallest generating polynomial of the number field for the T2 norm on the roots, with smallest index for the minimal T2 norm."},
+-{"polredabs2",1,(void*)polredabs2,6,"G","polredabs2(x)=gives [pol,a] where pol is as in polredabs, and alpha is the element whose characteristic polynomial is pol."},
+-{"polredabsall",1,(void*)polredabsall,6,"G","polredabsall(x)=complete list of the smallest generating polynomials of the number field for the T2 norm on the roots."},
+-{"polredabsfast",0,(void*)suppressed,6,"G","polredabsfast(x)=a smallest generating polynomial of the number field for the T2 norm on the roots."},
+-{"polredabsnored",1,(void*)polredabs,6,"G","polredabsnored(x)=a smallest generating polynomial of the number field for the T2 norm on the roots without initial polred."},
+-{"polsym",21,(void*)polsym,7,"GL","polsym(x,n)=vector of symmetric powers of the roots of x up to n."},
+-{"polvar",1,(void*)gpolvar,2,"G","polvar(x)=main variable of object x. Gives p for p-adic x, error for scalars."},
+-{"poly",14,(void*)gtopoly,2,"Gn","poly(x,v)=convert x (usually a vector or a power series) into a polynomial with variable v, starting with the leading coefficient."},
+-{"polylog",24,(void*)gpolylog,3,"LGp","polylog(m,x)=m-th polylogarithm of x."},
+-{"polylogd",24,(void*)polylogd,3,"LGp","polylogd(m,x)=D_m~-modified m-th polylog of x."},
+-{"polylogdold",24,(void*)polylogdold,3,"LGp","polylogdold(m,x)=D_m-modified m-th polylog of x."},
+-{"polylogp",24,(void*)polylogp,3,"LGp","polylogp(m,x)=P_m-modified m-th polylog of x."},
+-{"polyrev",14,(void*)gtopolyrev,2,"Gn","polyrev(x,v)=convert x (usually a vector or a power series) into a polynomial with variable v, starting with the constant term."},
+-{"polzag",21,(void*)polzag,9,"LL","polzag(n,m)=Zagier's polynomials of index n,m."},
+-{"powell",3,(void*)powell,5,"GGGp","powell(e,x,n)=n times the point x on elliptic curve e (n in Z)."},
+-{"powrealraw",23,(void*)qfrpowraw,4,"GL","powrealraw(x,n)=n-th power without reduction of the binary quadratic form x of positive discriminant."},
+-{"prec",21,(void*)gprec,2,"GL","prec(x,n)=change the precision of x to be n (n C-integer)."},
+-{"precision",1,(void*)precision0,2,"GD0,L,","precision(x)=real precision of object x."},
+-{"prime",11,(void*)prime,4,"L","prime(n)=returns the n-th prime (n C-integer)."},
+-{"primedec",2,(void*)idealprimedec,6,"GG","primedec(nf,p)=prime ideal decomposition of the prime number p in the number field nf as a vector of 5 component vectors [p,a,e,f,b] representing the prime ideals pZ_K+a.Z_K, e,f as usual, a as vector of components on the  integral basis, b Lenstra's constant."},
+-{"primes",11,(void*)primes,4,"L","primes(n)=returns the vector of the first n primes (n C-integer)."},
+-{"primroot",1,(void*)znprimroot0,4,"G","primroot(n)=returns a primitive root of n when it exists."},
+-{"principalideal",2,(void*)principalideal,6,"GG","principalideal(nf,x)=returns the principal ideal generated by the algebraic number x in the number field nf."},
+-{"principalidele",2,(void*)suppressed,6,"GG","principalidele(nf,x)=returns the principal idele generated by the algebraic number x in the number field nf."},
+-{"prod",48,(void*)prod0,9,"GV=GGE","prod(x,X=a,b,expr)=x times the product (X runs from a to b) of expression."},
+-{"prodeuler",37,(void*)prodeuler0,9,"V=GGEp","prodeuler(X=a,b,expr)=Euler product (X runs over the primes between a and b) of real or complex expression."},
+-{"prodinf",27,(void*)prodinf0,9,"V=GED0,L,p","prodinf(X=a,expr)=infinite product (X goes from a to infinity) of real or complex expression."},
+-{"prodinf1",27,(void*)prodinf0,9,"V=GED1,L,p","prodinf1(X=a,expr)=infinite product (X goes from a to infinity) of real or complex 1+expression."},
+-{"psi",1,(void*)gpsi,3,"Gp","psi(x)=psi-function at x."},
+-{"qfi",3,(void*)qfi,4,"GGG","qfi(a,b,c)=binary quadratic form a*x^2+b*x*y+c*y^2 with b^2-4*a*c<0."},
+-{"qfr",4,(void*)qfr,4,"GGGG","qfr(a,b,c,d)=binary quadratic form a*x^2+b*x*y+c*y^2 with b^2-4*a*c>0 and distance d."},
+-{"quaddisc",1,(void*)quaddisc,4,"G","quaddisc(x)=discriminant of the quadratic field Q(sqrt(x))."},
+-{"quadgen",1,(void*)quadgen,2,"G","quadgen(x)=standard generator of quadratic order of discriminant x."},
+-{"quadpoly",1,(void*)quadpoly,2,"G","quadpoly(x)=quadratic polynomial corresponding to the discriminant x."},
+-{"random",0,(void*)genrand,2,"DG","random()=random integer between 0 and 2^31-1."},
+-{"rank",10,(void*)rank,8,"lG","rank(x)=rank of the matrix x."},
+-{"rayclassno",2,(void*)bnrclassno,6,"GG","rayclassno(bnf,x)=ray class number of the module x for the big number field bnf. Faster than buchray if only the ray class number is wanted."},
+-{"rayclassnolist",2,(void*)bnrclassnolist,6,"GG","rayclassnolist(bnf,liste)=if listes is as output by idealisunit or similar, gives list of corresponding ray class numbers."},
+-{"real",1,(void*)greal,2,"G","real(x)=real part of x."},
+-{"recip",1,(void*)polrecip,7,"G","recip(x)=reciprocal polynomial of x."},
+-{"redimag",1,(void*)redimag,4,"G","redimag(x)=reduction of the binary quadratic form x with D<0."},
+-{"redreal",1,(void*)redreal,4,"G","redreal(x)=reduction of the binary quadratic form x with D>0."},
+-{"redrealnod",2,(void*)redrealnod,4,"GG","redrealnod(x,sq)=reduction of the binary quadratic form x with D>0 without distance function where sq=[sqrt D]."},
+-{"reduceddisc",1,(void*)reduceddiscsmith,7,"G","reduceddisc(f)=vector of elementary divisors of Z[a]/f'(a)Z[a], where a is a root of the polynomial f."},
+-{"regula",1,(void*)quadregulator,4,"Gp","regula(x)=regulator of the real quadratic field of discriminant x."},
+-{"reorder",0,(void*)suppressed,11,"G","reorder(x)=THIS FUNCTION HAS BEEN SUPPRESSED."},
+-{"resultant",2,(void*)resultant_all,7,"GGD&","resultant(x,y)=resultant of the polynomials x and y with exact entries."},
+-{"resultant2",2,(void*)resultant2,7,"GG","resultant2(x,y)=resultant of the polynomials x and y."},
+-{"reverse",1,(void*)recip,7,"G","reverse(x)=reversion of the power series x."},
+-{"rhoreal",1,(void*)rhoreal,4,"G","rhoreal(x)=single reduction step of the binary quadratic form x of positive discriminant."},
+-{"rhorealnod",2,(void*)rhorealnod,4,"GG","rhorealnod(x,sq)=single reduction step of the binary quadratic form x with D>0 without distance function where sq=[sqrt D]."},
+-{"rndtoi",13,(void*)grndtoi,2,"Gf","rndtoi(x)=take the nearest integer to all the coefficients of x, without taking into account loss of integer part precision."},
+-{"rnfbasis",2,(void*)rnfbasis,6,"GG","rnfbasis(bnf,order)=given an order as output by rnfpseudobasis or rnfsteinitz, gives either a basis of the order if it is free, or an n+1-element generating set."},
+-{"rnfdiscf",2,(void*)rnfdiscf,6,"GG","rnfdiscf(nf,pol)=given a pol with coefficients in nf, gives a 2-component vector [D,d], where D is the relative ideal discriminant, and d is the relative discriminant in nf^*/nf*^2."},
+-{"rnfequation",2,(void*)rnfequation,6,"GG","rnfequation(nf,pol)=given a pol with coefficients in nf, gives the absolute equation of the number field defined by pol."},
+-{"rnfequation2",2,(void*)rnfequation2,6,"GG","rnfequation2(nf,pol)=given a pol with coefficients in nf, gives [apol,th], where apol is the absolute equation of the number field defined by pol and th expresses the root of nf[1] in terms of the root of apol."},
+-{"rnfhermitebasis",2,(void*)rnfhnfbasis,6,"GG","rnfhermitebasis(bnf,order)=given an order as output by rnfpseudobasis, gives either a true HNF basis of the order if it exists, zero otherwise."},
+-{"rnfisfree",20,(void*)rnfisfree,6,"lGG","rnfisfree(bnf,order)=given an order as output by rnfpseudobasis or rnfsteinitz, outputs true (1) or false (0) according to whether the order is free or not."},
+-{"rnflllgram",3,(void*)rnflllgram,6,"GGG","rnflllgram(nf,pol,order)=given a pol with coefficients in nf and an order as output by rnfpseudobasis or similar, gives [[neworder],U], where neworder is a reduced order and U is the unimodular transformation matrix."},
+-{"rnfpolred",2,(void*)rnfpolred,6,"GG","rnfpolred(nf,pol)=given a pol with coefficients in nf, finds a list of polynomials defining some subfields, hopefully simpler."},
+-{"rnfpseudobasis",2,(void*)rnfpseudobasis,6,"GG","rnfpseudobasis(nf,pol)=given a pol with coefficients in nf, gives a 4-component vector [A,I,D,d] where [A,I] is a pseudo basis of the maximal order in HNF on the power basis, D is the relative ideal discriminant, and d is the relative discriminant in nf^*/nf*^2."},
+-{"rnfsteinitz",2,(void*)rnfsteinitz,6,"GG","rnfsteinitz(nf,order)=given an order as output by rnfpseudobasis, gives [A,I,..] where (A,I) is a pseudo basis where all the ideals except perhaps the last are trivial."},
+-{"rootmod",2,(void*)rootmod,7,"GG","rootmod(x,p)=roots mod p of the polynomial x."},
+-{"rootmod2",2,(void*)rootmod2,7,"GG","rootmod2(x,p)=roots mod p of the polynomial x, when p is small."},
+-{"rootpadic",32,(void*)rootpadic,7,"GGL","rootpadic(x,p,r)=p-adic roots of the polynomial x to precision r."},
+-{"roots",1,(void*)roots,7,"Gp","roots(x)=roots of the polynomial x using Schonhage's method modified by Gourdon."},
+-{"rootsof1",1,(void*)rootsof1,6,"G","rootsof1(nf)=number of roots of unity and primitive root of unity in the number field nf."},
+-{"rootsold",1,(void*)roots0,7,"GD1,L,p","rootsold(x)=roots of the polynomial x using a modified Newton's method."},
+-{"round",1,(void*)ground,2,"G","round(x)=take the nearest integer to all the coefficients of x."},
+-{"rounderror",10,(void*)rounderror,2,"lG","rounderror(x)=maximum error found in rounding x."},
+-{"series",14,(void*)gtoser,2,"Gn","series(x,v)=convert x (usually a vector) into a power series with variable v, starting with the constant coefficient."},
+-{"set",1,(void*)gtoset,8,"G","set(x)=convert x into a set, i.e. a row vector with strictly increasing coefficients."},
+-{"setintersect",2,(void*)setintersect,8,"GG","setintersect(x,y)=intersection of the sets x and y."},
+-{"setminus",2,(void*)setminus,8,"GG","setminus(x,y)=set of elements of x not belonging to y."},
+-{"setrand",11,(void*)setrand,2,"vG","setrand(n)=reset the seed of the random number generator to n."},
+-{"setsearch",20,(void*)setsearch,8,"lGGD0,L,","setsearch(x,y)=looks if y belongs to the set x. Returns 0 if it is not, otherwise returns the index j such that y==x[j]."},
+-{"setunion",2,(void*)setunion,8,"GG","setunion(x,y)=union of the sets x and y."},
+-{"shift",21,(void*)gshift,1,"GL","shift(x,n)=shift x left n bits if n>=0, right -n bits if n<0."},
+-{"shiftmul",21,(void*)gmul2n,1,"GL","shiftmul(x,n)=multiply x by 2^n (n>=0 or n<0)."},
+-{"sigma",1,(void*)sumdiv,4,"G","sigma(x)=sum of the divisors of x."},
+-{"sigmak",24,(void*)sigmak0,4,"LG","sigmak(k,x)=sum of the k-th powers of the divisors of x (k C-integer)."},
+-{"sign",10,(void*)gsigne,1,"iG","sign(x)=sign of x, of type integer, real or fraction."},
+-{"signat",1,(void*)qfsign,8,"G","signat(x)=signature of the symmetric matrix x."},
+-{"signunit",1,(void*)signunits,6,"G","signunit(bnf)=matrix of signs of the real embeddings of the system of fundamental units found by buchinit."},
+-{"simplefactmod",2,(void*)simplefactmod,4,"GG","simplefactmod(x,p)=same as factmod except that only the degrees of the irreducible factors are given."},
+-{"simplify",1,(void*)simplify,2,"G","simplify(x)=simplify the object x as much as possible."},
+-{"sin",1,(void*)gsin,3,"Gp","sin(x)=sine of x."},
+-{"sinh",1,(void*)gsh,3,"Gp","sinh(x)=hyperbolic sine of x."},
+-{"size",10,(void*)sizedigit,2,"lG","size(x)=maximum number of decimal digits minus one of (the coefficients of) x."},
+-{"smallbasis",13,(void*)nfbasis0,6,"GD1,L,DG","smallbasis(x)=integral basis of the field Q[a], where a is a root of the polynomial x where one assumes that no square of a prime>primelimit divides the discriminant of x."},
+-{"smallbuchinit",93,(void*)smallbuchinit,6,BUCH_PROTO,"smallbuchinit(pol)=small buchinit, which can be converted to a big one using makebigbnf."},
+-{"smalldiscf",1,(void*)nfdisc0,6,"GD1,L,DG","smalldiscf(x)=discriminant of the number field defined by the polynomial x where one assumes that no square of a prime>primelimit divides the discriminant of x."},
+-{"smallfact",1,(void*)boundfact,4,"GD0,L,","smallfact(x)=partial factorization of the integer x (using only the stored primes)."},
+-{"smallinitell",1,(void*)smallellinit,5,"Gp","smallinitell(x)=x being the vector [a1,a2,a3,a4,a6], gives the vector: [a1,a2,a3,a4,a6,b2,b4,b6,b8,c4,c6,delta,j]."},
+-{"smallpolred",1,(void*)smallpolred,6,"G","smallpolred(x)=partial reduction of the polynomial x (gives minimal polynomials only)."},
+-{"smallpolred2",1,(void*)smallpolred2,6,"G","smallpolred2(x)=partial reduction of the polynomial x (gives elements and minimal polynomials)."},
+-{"smith",1,(void*)smith,8,"G","smith(x)=Smith normal form (i.e. elementary divisors) of the matrix x, expressed as a vector."},
+-{"smith2",1,(void*)smithall,8,"G","smith2(x)=gives a three element vector [u,v,d] where u and v are square unimodular matrices such that d=u*x*v=diagonal(smith(x))."},
+-{"smithclean",1,(void*)smithclean,8,"G","smithclean(z)=if z=[u,v,d] as output by smith2, removes from u,v,d the rows and columns corresponding to entries equal to 1 in d."},
+-{"smithpol",1,(void*)gsmith,8,"G","smithpol(x)=Smith normal form (i.e. elementary divisors) of the matrix x with polynomial coefficients, expressed as a vector."},
+-{"solve",37,(void*)zbrent0,9,"V=GGEp","solve(X=a,b,expr)=real root of expression expr (X between a and b), where expr(a)*expr(b)<=0."},
+-{"sort",1,(void*)sort,8,"G","sort(x)=sort in ascending order of the vector x."},
+-{"sqr",1,(void*)gsqr,3,"G","sqr(x)=square of x. NOT identical to x*x."},
+-{"sqred",1,(void*)qfgaussred,8,"G","sqred(x)=square reduction of the (symmetric) matrix x ( returns a square matrix whose i-th diagonal term is the coefficient of the i-th square in which the coefficient of the i-th variable is 1)."},
+-{"sqrt",1,(void*)gsqrt,3,"Gp","sqrt(x)=square root of x."},
+-{"srgcd",2,(void*)RgX_gcd,7,"GG","srgcd(x,y)=polynomial gcd of x and y using the subresultant algorithm."},
+-{"sturm",10,(void*)sturm0,7,"lG","sturm(x)=number of real roots of the polynomial x."},
+-{"sturmpart",30,(void*)sturmpart,7,"lGGG","sturmpart(x,a,b)=number of real roots of the polynomial x in the interval (a,b]."},
+-{"subcyclo",2,(void*)polsubcyclo,6,"LLDn","subcyclo(p,d)=finds an equation for the d-th degree subfield of Q(zeta_p), where p must be a prime power."},
+-{"subell",3,(void*)subell,5,"GGGp","subell(e,z1,z2)=difference of the points z1 and z2 on elliptic curve e."},
+-{"subst",26,(void*)gsubst,7,"GnG","subst(x,y,z)=in expression x, replace the variable y by the expression z."},
+-{"sum",48,(void*)sum0,9,"GV=GGE","sum(x,X=a,b,expr)=x plus the sum (X goes from a to b) of expression expr."},
+-{"sumalt",27,(void*)sumalt0,9,"V=GED0,L,p","sumalt(X=a,expr)=Villegas-Zagier's acceleration of alternating series expr, X starting at a."},
+-{"sumalt2",27,(void*)sumalt0,9,"V=GED1,L,p","sumalt2(X=a,expr)=Cohen-Villegas-Zagier's acceleration of alternating series expr, X starting at a."},
+-{"suminf",27,(void*)suminf0,9,"V=GEp","suminf(X=a,expr)=infinite sum (X goes from a to infinity) of real or complex expression expr."},
+-{"sumpos",27,(void*)sumpos0,9,"V=GED0,L,p","sumpos(X=a,expr)=sum of positive series expr, the formal variable X starting at a."},
+-{"sumpos2",27,(void*)sumpos0,9,"V=GED1,L,p","sumpos2(X=a,expr)=sum of positive series expr, the formal variable X starting at a, using Zagier's polynomials."},
+-{"supplement",1,(void*)suppl,8,"G","supplement(x)=supplement the columns of the matrix x to an invertible matrix."},
+-{"sylvestermatrix",2,(void*)sylvestermatrix,7,"GG","sylvestermatrix(x,y)=forms the sylvester matrix associated to the two polynomials x and y. Warning: the polynomial coefficients are in columns, not in rows."},
+-{"tan",1,(void*)gtan,3,"Gp","tan(x)=tangent of x."},
+-{"tanh",1,(void*)gth,3,"Gp","tanh(x)=hyperbolic tangent of x."},
+-{"taniyama",1,(void*)elltaniyama,5,"GP","taniyama(e)=modular parametrization of elliptic curve e."},
+-{"taylor",12,(void*)tayl,7,"GnP","taylor(x,y)=taylor expansion of x with respect to the main variable of y."},
+-{"tchebi",11,(void*)polchebyshev,7,"LD1,L,Dn","tchebi(n)=Tchebitcheff polynomial of degree n (n C-integer)."},
+-{"teich",1,(void*)teich,3,"Gp","teich(x)=teichmuller character of p-adic number x."},
+-{"theta",2,(void*)theta,3,"GGp","theta(q,z)=Jacobi sine theta-function."},
+-{"thetanullk",21,(void*)thetanullk,3,"GLp","thetanullk(q,k)=k'th derivative at z=0 of theta(q,z)."},
+-{"threetotwo",0,(void*)suppressed,6,"GGGG","threetotwo(nf,a,b,c)=returns a 3-component vector [d,e,U] such that U is a unimodular 3x3 matrix with algebraic integer coefficients such that [a,b,c]*U=[0,d,e]."},
+-{"threetotwo2",0,(void*)suppressed,6,"GGGG","threetotwo2(nf,a,b,c)=returns a 3-component vector [d,e,U] such that U is a unimodular 3x3 matrix with algebraic integer coefficients such that [a,b,c]*U=[0,d,e]."},
+-{"torsell",1,(void*)elltors,5,"Gp","torsell(e)=torsion subgroup of elliptic curve e: order, structure, generators."},
+-{"trace",1,(void*)gtrace,8,"G","trace(x)=trace of x."},
+-{"trans",1,(void*)gtrans,8,"G","trans(x)=x~=transpose of x."},
+-{"trunc",1,(void*)gtrunc,2,"G","trunc(x)=truncation of x;when x is a power series,take away the O(X^)."},
+-{"tschirnhaus",1,(void*)tschirnhaus,6,"G","tschirnhaus(x)=random Tschirnhausen transformation of the polynomial x."},
+-{"twototwo",0,(void*)suppressed,6,"GGG","twototwo(nf,a,b)=returns a 3-component vector [d,e,U] such that U is a unimodular 2x2 matrix with algebraic integer coefficients such that [a,b]*U=[d,e] and d,e are hopefully smaller."},
+-{"unit",1,(void*)quadunit,4,"G","unit(x)=fundamental unit of the quadratic field of discriminant x where x must be positive."},
+-{"until",0,(void*)untilpari,11,"vEI","until(a,seq): evaluate the expression sequence seq until a is nonzero."},
+-{"valuation",20,(void*)ggval,2,"lGG","valuation(x,p)=valuation of x with respect to p."},
+-{"vec",1,(void*)gtovec,2,"G","vec(x)=transforms the object x into a vector. Used mainly if x is a polynomial or a power series."},
+-{"vecindexsort",2,(void*)indexsort,8,"G","vecindexsort(x): indirect sorting of the vector x."},
+-{"veclexsort",2,(void*)lexsort,8,"G","veclexsort(x): sort the elements of the vector x in ascending lexicographic order."},
+-{"vecmax",1,(void*)vecmax,2,"G","vecmax(x)=maximum of the elements of the vector/matrix x."},
+-{"vecmin",1,(void*)vecmin,2,"G","vecmin(x)=minimum of the elements of the vector/matrix x."},
+-{"vecsort",2,(void*)vecsort0,8,"GGD0,L,","vecsort(x,k)=sorts the vector of vector (or matrix) x according to the value of its k-th component."},
+-{"vector",22,(void*)vecteur,9,"GVE","vector(n,X,expr)=row vector with n components of expression expr (X ranges from 1 to n)."},
+-{"vvector",22,(void*)vvecteur,9,"GVE","vvector(n,X,expr)=column vector with n components of expression expr (X ranges from 1 to n)."},
+-{"weipell",1,(void*)weipell,5,"GP","weipell(e)=formal expansion in x=z of Weierstrass P function."},
+-{"wf",1,(void*)weberf,3,"Gp","weberf(x)=Weber's f function of x (j=(f^24-16)^3/f^24)."},
+-{"wf2",1,(void*)weberf2,3,"Gp","weberf2(x)=Weber's f2 function of x (j=(f2^24+16)^3/f2^24)."},
+-{"while",0,(void*)whilepari,11,"vEI","while(a,seq): while a is nonzero evaluate the expression sequence seq. Otherwise 0."},
+-{"zell",2,(void*)zell,5,"GGp","zell(e,z)=In the complex case, lattice point corresponding to the point z on the elliptic curve e."},
+-{"zeta",1,(void*)gzeta,3,"Gp","zeta(s)=Riemann zeta function at s."},
+-{"zetak",2,(void*)gzetak,6,"GGp","zetak(nfz,s)=Dedekind zeta function of the number field nfz at s, where nfz is the vector computed by initzeta (NOT by nfinit)."},
+-{"zideallog",3,(void*)ideallog,6,"GGG","zideallog(nf,x,bid)=if bid is a big ideal as given by zidealstarinit or zidealstarinitgen , gives the vector of exponents on the generators bid[2][3] (even if these generators have not been computed)."},
+-{"zidealstar",2,(void*)idealstar0,6,"GGD0,L,","zidealstar(nf,I)=3-component vector v, giving the structure of (Z_K/I)^*. v[1] is  the order (i.e. phi(I)), v[2] is a vector of cyclic components, and v[3]  is a vector giving the corresponding generators."},
+-{"zidealstarinit",2,(void*)idealstar0,6,"GGD1,L,","zidealstarinit(nf,I)=6-component vector [I,v,fa,f2,U,V] where v is as in zidealstar without the generators, fa is the prime ideal factorisation of I and f2, U and V are technical but essential to work in (Z_K/I)^*."},
+-{"zidealstarinitgen",2,(void*)idealstar0,6,"GGD2,L,","zidealstarinitgen(nf,I)=6-component vector [I,v,fa,f2,U,V] where v is as in zidealstar fa is the prime ideal factorisation of I and f2, U and V are technical but essential to work in (Z_K/I)^*."},
+-{"znstar",1,(void*)znstar,4,"G","znstar(n)=3-component vector v, giving the structure of (Z/nZ)^*. v[1] is  the order (i.e. phi(n)), v[2] is a vector of cyclic components, and v[3]  is a vector giving the corresponding generators."},
++{"!_",0,(void*)gnot,13,"G","!_",NULL,0,NULL},
++{"#_",0,(void*)glength,13,"lG","length(x): number of non code words in x, number of characters for a string.",NULL,0,NULL},
++{"%",0,(void*)pari_get_hist,1,"D0,L,","last history item",NULL,0,NULL},
++{"+_",0,NULL,13,NULL,"+_",NULL,0,NULL},
++{"-_",0,(void*)gneg,13,"G","-_",NULL,0,NULL},
++{"_!",0,(void*)mpfact,13,"L","_!",NULL,0,NULL},
++{"_!=_",0,(void*)gne,13,"GG","_!=_",NULL,0,NULL},
++{"_%=_",0,(void*)gmode,13,"&G","_%=_",NULL,0,NULL},
++{"_%_",0,(void*)gmod,13,"GG","_%_",NULL,0,NULL},
++{"_&&_",0,(void*)andpari,13,"GE","_&&_",NULL,0,NULL},
++{"_'",0,(void*)deriv,13,"GDn","_'",NULL,0,NULL},
++{"_*=_",0,(void*)gmule,13,"&G","x*=y: shortcut for x=x*y.",NULL,0,NULL},
++{"_*_",0,(void*)gmul,13,"GG","_*_",NULL,0,NULL},
++{"_++",0,(void*)gadd1e,13,"&","x++",NULL,0,NULL},
++{"_+=_",0,(void*)gadde,13,"&G","x+=y: shortcut for x=x+y.",NULL,0,NULL},
++{"_+_",0,(void*)gadd,13,"GG","x+y: sum of x and y.",NULL,0,NULL},
++{"_--",0,(void*)gsub1e,13,"&","x--",NULL,0,NULL},
++{"_-=_",0,(void*)gsube,13,"&G","x-=y",NULL,0,NULL},
++{"_-_",0,(void*)gsub,13,"GG","x-y: difference of x and y.",NULL,0,NULL},
++{"_.a1",0,(void*)member_a1,14,"G","_.a1",NULL,0,NULL},
++{"_.a2",0,(void*)member_a2,14,"G","_.a2",NULL,0,NULL},
++{"_.a3",0,(void*)member_a3,14,"G","_.a3",NULL,0,NULL},
++{"_.a4",0,(void*)member_a4,14,"G","_.a4",NULL,0,NULL},
++{"_.a6",0,(void*)member_a6,14,"G","_.a6",NULL,0,NULL},
++{"_.area",0,(void*)member_area,14,"G","_.area",NULL,0,NULL},
++{"_.b2",0,(void*)member_b2,14,"G","_.b2",NULL,0,NULL},
++{"_.b4",0,(void*)member_b4,14,"G","_.b4",NULL,0,NULL},
++{"_.b6",0,(void*)member_b6,14,"G","_.b6",NULL,0,NULL},
++{"_.b8",0,(void*)member_b8,14,"G","_.b8",NULL,0,NULL},
++{"_.bid",0,(void*)member_bid,14,"G","_.bid",NULL,0,NULL},
++{"_.bnf",0,(void*)member_bnf,14,"G","_.bnf",NULL,0,NULL},
++{"_.c4",0,(void*)member_c4,14,"G","_.c4",NULL,0,NULL},
++{"_.c6",0,(void*)member_c6,14,"G","_.c6",NULL,0,NULL},
++{"_.clgp",0,(void*)member_clgp,14,"G","_.clgp",NULL,0,NULL},
++{"_.codiff",0,(void*)member_codiff,14,"G","_.codiff",NULL,0,NULL},
++{"_.cyc",0,(void*)member_cyc,14,"G","_.cyc",NULL,0,NULL},
++{"_.diff",0,(void*)member_diff,14,"G","_.diff",NULL,0,NULL},
++{"_.disc",0,(void*)member_disc,14,"G","_.disc",NULL,0,NULL},
++{"_.e",0,(void*)member_e,14,"G","_.e",NULL,0,NULL},
++{"_.eta",0,(void*)member_eta,14,"G","_.eta",NULL,0,NULL},
++{"_.f",0,(void*)member_f,14,"G","_.f",NULL,0,NULL},
++{"_.fu",0,(void*)member_fu,14,"G","_.fu",NULL,0,NULL},
++{"_.futu",0,(void*)member_futu,14,"G","_.futu",NULL,0,NULL},
++{"_.gen",0,(void*)member_gen,14,"G","_.gen",NULL,0,NULL},
++{"_.group",0,(void*)member_group,14,"G","_.group",NULL,0,NULL},
++{"_.index",0,(void*)member_index,14,"G","_.index",NULL,0,NULL},
++{"_.j",0,(void*)member_j,14,"G","_.j",NULL,0,NULL},
++{"_.mod",0,(void*)member_mod,14,"G","_.mod",NULL,0,NULL},
++{"_.nf",0,(void*)member_nf,14,"G","_.nf",NULL,0,NULL},
++{"_.no",0,(void*)member_no,14,"G","_.no",NULL,0,NULL},
++{"_.omega",0,(void*)member_omega,14,"G","_.omega",NULL,0,NULL},
++{"_.orders",0,(void*)member_orders,14,"G","_.orders",NULL,0,NULL},
++{"_.p",0,(void*)member_p,14,"G","_.p",NULL,0,NULL},
++{"_.pol",0,(void*)member_pol,14,"G","_.pol",NULL,0,NULL},
++{"_.r1",0,(void*)member_r1,14,"G","_.r1",NULL,0,NULL},
++{"_.r2",0,(void*)member_r2,14,"G","_.r2",NULL,0,NULL},
++{"_.reg",0,(void*)member_reg,14,"G","_.reg",NULL,0,NULL},
++{"_.roots",0,(void*)member_roots,14,"G","_.roots",NULL,0,NULL},
++{"_.sign",0,(void*)member_sign,14,"G","_.sign",NULL,0,NULL},
++{"_.t2",0,(void*)member_t2,14,"G","_.t2",NULL,0,NULL},
++{"_.tate",0,(void*)member_tate,14,"G","_.tate",NULL,0,NULL},
++{"_.tu",0,(void*)member_tu,14,"G","_.tu",NULL,0,NULL},
++{"_.tufu",0,(void*)member_tufu,14,"G","_.tufu",NULL,0,NULL},
++{"_.w",0,(void*)member_w,14,"G","_.w",NULL,0,NULL},
++{"_.zk",0,(void*)member_zk,14,"G","_.zk",NULL,0,NULL},
++{"_.zkst",0,(void*)member_zkst,14,"G","_.zkst",NULL,0,NULL},
++{"_/=_",0,(void*)gdive,13,"&G","x/=y",NULL,0,NULL},
++{"_/_",0,(void*)gdiv,13,"GG","_/_",NULL,0,NULL},
++{"_<<=_",0,(void*)gshiftle,13,"&L","x<<=y",NULL,0,NULL},
++{"_<<_",0,(void*)gshift,13,"GL","x<<y",NULL,0,NULL},
++{"_<=_",0,(void*)gle,13,"GG","_<=_",NULL,0,NULL},
++{"_<_",0,(void*)glt,13,"GG","_<_",NULL,0,NULL},
++{"_==_",0,(void*)geq,13,"GG","_==_",NULL,0,NULL},
++{"_=_",0,(void*)gstore,13,"&G","x=y: store value y in variable x.",NULL,0,NULL},
++{"_>=_",0,(void*)gge,13,"GG","_>=_",NULL,0,NULL},
++{"_>>=_",0,(void*)gshiftre,13,"&L","_>>=_",NULL,0,NULL},
++{"_>>_",0,(void*)gshift_right,13,"GL","x>>y",NULL,0,NULL},
++{"_>_",0,(void*)ggt,13,"GG","_>_",NULL,0,NULL},
++{"_\\/=_",0,(void*)gdivrounde,13,"&G","x\\\\/=y",NULL,0,NULL},
++{"_\\/_",0,(void*)gdivround,13,"GG","x\\\\/y: rounded Euclidean quotient of x and y.",NULL,0,NULL},
++{"_\\=_",0,(void*)gdivente,13,"&G","x\\\\=y",NULL,0,NULL},
++{"_\\_",0,(void*)gdivent,13,"GG","x\\\\y: Euclidean quotient of x and y.",NULL,0,NULL},
++{"_^_",0,(void*)gpow,13,"GGp","_^_",NULL,0,NULL},
++{"_^s",0,(void*)gpowgs,13,"GL","_^s",NULL,0,NULL},
++{"__",0,NULL,13,NULL,"__",NULL,0,NULL},
++{"_void_if",0,(void*)ifpari_void,11,"vGDIDI","internal variant of if() that does not return a value.",NULL,0,NULL},
++{"_||_",0,(void*)orpari,13,"GE","x||y",NULL,0,NULL},
++{"_~",0,(void*)gtrans,13,"G","_~",NULL,0,NULL},
++{"O",0,(void*)ggrando,7,"GD1,L,","O(a^b): p-adic or power series zero with precision given by b.",NULL,0,NULL},
++{"O(_^_)",0,(void*)ggrando,7,"GD1,L,","O(a^b): p-adic or power series zero with precision given by b.",NULL,0,NULL},
++{"abs",1,(void*)gabs,3,"Gp","abs(x)=absolute value (or modulus) of x.",NULL,0,NULL},
++{"acos",1,(void*)gacos,3,"Gp","acos(x)=inverse cosine of x.",NULL,0,NULL},
++{"acosh",1,(void*)gach,3,"Gp","acosh(x)=inverse hyperbolic cosine of x.",NULL,0,NULL},
++{"addell",3,(void*)addell,5,"GGG","addell(e,z1,z2)=sum of the points z1 and z2 on elliptic curve e.",NULL,0,NULL},
++{"addprimes",1,(void*)addprimes,4,"G","addprimes(x)=add primes in the vector x (with at most 20 components) to the prime table.",NULL,0,NULL},
++{"adj",1,(void*)adj,8,"G","adj(x)=adjoint matrix of x.",NULL,0,NULL},
++{"agm",2,(void*)agm,3,"GGp","agm(x,y)=arithmetic-geometric mean of x and y.",NULL,0,NULL},
++{"akell",2,(void*)akell,5,"GG","akell(e,n)=computes the n-th Fourier coefficient of the L-function of the elliptic curve e.",NULL,0,NULL},
++{"algdep",23,(void*)algdep,8,"GL","algdep(x,n)=algebraic relations up to degree n of x.",NULL,0,NULL},
++{"algdep2",33,(void*)algdep0,8,"GLL","algdep2(x,n,dec)=algebraic relations up to degree n of x where dec is as in  lindep2.",NULL,0,NULL},
++{"algtobasis",2,(void*)algtobasis,6,"GG","algtobasis(nf,x)=transforms the algebraic number x into a column vector on the integral basis nf[7].",NULL,0,NULL},
++{"anell",23,(void*)anell,5,"GL","anell(e,n)=computes the first n Fourier coefficients of the L-function of the elliptic curve e (n<32768).",NULL,0,NULL},
++{"apell",2,(void*)ellap,5,"GG","apell(e,p)=computes a_p for the elliptic curve e using Shanks-Mestre's method.",NULL,0,NULL},
++{"apell2",2,(void*)ellap,5,"GG","apell2(e,p)=apell(e,p).",NULL,0,NULL},
++{"apprpadic",2,(void*)padicappr,7,"GG","apprpadic(x,a)=p-adic roots of the polynomial x congruent to a mod p.",NULL,0,NULL},
++{"arg",1,(void*)garg,3,"Gp","arg(x)=argument of x,such that -pi<arg(x)<=pi.",NULL,0,NULL},
++{"asin",1,(void*)gasin,3,"Gp","asin(x)=inverse sine of x.",NULL,0,NULL},
++{"asinh",1,(void*)gash,3,"Gp","asinh(x)=inverse hyperbolic sine of x.",NULL,0,NULL},
++{"assmat",1,(void*)matcompanion,8,"G","matcompanion(x)=associated matrix to polynomial x.",NULL,0,NULL},
++{"atan",1,(void*)gatan,3,"Gp","atan(x)=inverse tangent of x.",NULL,0,NULL},
++{"atanh",1,(void*)gath,3,"Gp","atanh(x)=inverse hyperbolic tangent of x.",NULL,0,NULL},
++{"basis",13,(void*)nfbasis0,6,"GD0,L,DG","basis(x)=integral basis of the field Q[a], where a is a root of the polynomial x, using the round 4 algorithm.",NULL,0,NULL},
++{"basis2",13,(void*)nfbasis0,6,"GD2,L,DG","basis2(x)=integral basis of the field Q[a], where a is a root of the polynomial x, using the round 2 algorithm.",NULL,0,NULL},
++{"basistoalg",2,(void*)basistoalg,6,"GG","basistoalg(nf,x)=transforms the vertical vector x on the integral basis into an algebraic number.",NULL,0,NULL},
++{"bernreal",11,(void*)bernreal,3,"Lp","bernreal(x)=Bernoulli number B_x, as a real number with the current precision.",NULL,0,NULL},
++{"bernvec",11,(void*)bernvec,3,"L","bernvec(x)=Vector of rational Bernoulli numbers B_0, B_2,... up to B_(2x).",NULL,0,NULL},
++{"bestappr",2,(void*)bestappr,4,"GGp","bestappr(x,k)=gives the best approximation to the real x with denominator less or equal to k.",NULL,0,NULL},
++{"bezout",2,(void*)vecbezout,4,"GG","bezout(x,y)=gives a 3-dimensional row vector [u,v,d] such that d=gcd(x,y) and u*x+v*y=d.",NULL,0,NULL},
++{"bezoutres",2,(void*)vecbezoutres,4,"GG","bezoutres(x,y)=gives a 3-dimensional row vector [u,v,d] such that d=resultant(x,y) and u*x+v*y=d, where x and y are polynomials.",NULL,0,NULL},
++{"bigomega",1,(void*)gbigomega,4,"G","bigomega(x)=number of repeated prime divisors of x.",NULL,0,NULL},
++{"bilhell",3,(void*)bilhell,5,"GGGp","bilhell(e,z1,z2)=canonical bilinear form for the points z1,z2 on the elliptic curve e. Either z1 or z2 can also be a vector/matrix of points.",NULL,0,NULL},
++{"bin",21,(void*)binomial,4,"GL","bin(x,y)=binomial coefficient x*(x-1)...*(x-y+1)/y! defined for y in Z and any x.",NULL,0,NULL},
++{"binary",1,(void*)binaire,2,"G","binary(x)=gives the vector formed by the binary digits of x (x C-integer).",NULL,0,NULL},
++{"bittest",2,(void*)gbittest,2,"GL","bittest(x,n)=gives bit number n (coefficient of 2^n) of the integer x.",NULL,0,NULL},
++{"boundcf",21,(void*)gboundcf,4,"GL","boundcf(x,lmax)=continued fraction expansion of x with at most lmax terms.",NULL,0,NULL},
++{"boundfact",21,(void*)boundfact,4,"GL","boundfact(x,lim)=partial factorization of the integer x (using primes up to lim).",NULL,0,NULL},
++{"buchcertify",10,(void*)bnfcertify,6,"lG","buchcertify(bnf)=certify the correctness (i.e. remove the GRH) of the bnf data output by buchinit or buchinitfu.",NULL,0,NULL},
++{"buchfu",1,(void*)buchfu,6,"Gp","buchfu(bnf)=compute the fundamental units of the number field bnf output by buchinit.",NULL,0,NULL},
++{"buchgen",99,(void*)buchgenfu,6,BUCH_PROTO,"buchgen(P,...)=compute the structure of the class group and the regulator for the number field defined by the polynomial P. See manual for the other parameters (which can be omitted).",NULL,0,NULL},
++{"buchgenforcefu",99,(void*)buchgenforcefu,6,BUCH_PROTO,"buchgenforcefu(P,...)=compute the structure of the class group, the regulator a primitive root of unity and a system of fundamental units for the number field defined by the polynomial P, and insist until the units are obtained. See manual for the other parameters (which can be omitted).",NULL,0,NULL},
++{"buchgenfu",99,(void*)buchgenfu,6,BUCH_PROTO,"buchgenfu(P,...)=compute the structure of the class group, the regulator a primitive root of unity and a system of fundamental units (if they are not too large) for the number field defined by the polynomial P. See manual for the other parameters (which can be omitted).",NULL,0,NULL},
++{"buchimag",99,(void*)buchimag,4,"GD0.1,G,D0.1,G,D5,G,","buchimag(D,...)=compute the structure of the class group of the complex quadratic field of discriminant D<0. See manual for the other parameters (which can be omitted).",NULL,0,NULL},
++{"buchinit",99,(void*)buchinitfu,6,BUCH_PROTO,"buchinit(P,...)=compute the necessary data for future use in ideal and unit group computations. See manual for details.",NULL,0,NULL},
++{"buchinitforcefu",99,(void*)buchinitforcefu,6,BUCH_PROTO,"buchinitforcefu(P,...)=compute the necessary data for future use in ideal and unit group computations, and insist on having fundamental units. See manual for details.",NULL,0,NULL},
++{"buchinitfu",99,(void*)buchinitfu,6,BUCH_PROTO,"buchinitfu(P,...)=compute the necessary data for future use in ideal and unit group computations, including fundamental units if they are not too large. See manual for details.",NULL,0,NULL},
++{"buchnarrow",1,(void*)buchnarrow,6,"Gp","buchnarrow(bnf)=given a big number field as output by buchinitxx, gives as a 3-component vector the structure of the narrow class group.",NULL,0,NULL},
++{"buchray",2,(void*)buchray,6,"GGp","buchray(bnf,ideal)=given a big number field as output by buchinitfu (only) and  an ideal or a 2-component row vector formed by an ideal and a list of R1 zeros or ones representing a module, finds the ray class group structure corresponding to this module.",NULL,0,NULL},
++{"buchrayinit",2,(void*)buchrayinit,6,"GGp","buchrayinit(bnf,ideal)=same as buchrayinitgen, except that the generators are not explicitly computed.",NULL,0,NULL},
++{"buchrayinitgen",2,(void*)buchrayinitgen,6,"GGp","buchrayinitgen(bnf,ideal)=given a big number field as output by buchinitfu (only) and  an ideal or a 2-component row vector formed by an ideal and a list of R1 zeros or ones representing a module, initializes data for computing in the ray class group  corresponding to this module. In particular, the fifth component is the ray class group structure.",NULL,0,NULL},
++{"buchreal",97,(void*)buchreal,4,"GD0,G,D0.1,G,D0.1,G,D5,G,p","buchreal(D,...)=compute the structure of the class group and the regulator of the real quadratic field of discriminant D>0 in the wide sense. See manual for the other parameters (which can be omitted).",NULL,0,NULL},
++{"bytesize",10,(void*)gsizebyte,2,"lG","bytesize(x)=number of bytes occupied by the complete tree of the object x.",NULL,0,NULL},
++{"ceil",1,(void*)gceil,2,"G","ceil(x)=ceiling of x=smallest integer>=x.",NULL,0,NULL},
++{"centerlift",1,(void*)centerlift,2,"G","centerlift(x)=centered lift of x. Same as lift except for integermods.",NULL,0,NULL},
++{"cf",1,(void*)gcf,4,"Gp","cf(x)=continued fraction expansion of x (x rational,real or rational function).",NULL,0,NULL},
++{"cf2",2,(void*)gcf2,4,"GGp","cf2(b,x)=continued fraction expansion of x (x rational,real or rational function), where b is the vector of numerators of the continued fraction.",NULL,0,NULL},
++{"changevar",0,(void*)suppressed,11,"GG","changevar(x,y)=THIS FUNCTION HAS BEEN SUPPRESSED.",NULL,0,NULL},
++{"char",14,(void*)caradj,8,"GnD&","char(x,y)=det(y*I-x)=characteristic polynomial of the matrix x using the comatrix.",NULL,0,NULL},
++{"char1",14,(void*)caract,8,"Gn","char1(x,y)=det(y*I-x)=characteristic polynomial of the matrix x using Lagrange interpolation.",NULL,0,NULL},
++{"char2",14,(void*)carhess,8,"Gn","char2(x,y)=characteristic polynomial of the matrix x expressed with variable y, using the Hessenberg form. Can be much faster or much slower than char, depending on the base ring.",NULL,0,NULL},
++{"chell",2,(void*)ellchangecurve,5,"GG","chell(x,y)=change data on elliptic curve according to y=[u,r,s,t].",NULL,0,NULL},
++{"chinese",2,(void*)chinese,4,"GG","chinese(x,y)=x,y being integers modulo mx and my,finds z such that z is congruent to x mod mx and y mod my.",NULL,0,NULL},
++{"chptell",2,(void*)ellchangepoint,5,"GG","chptell(x,y)=change data on point or vector of points x on an elliptic curve according to y=[u,r,s,t].",NULL,0,NULL},
++{"classno",1,(void*)classno,4,"G","classno(x)=class number of discriminant x.",NULL,0,NULL},
++{"classno2",1,(void*)classno2,4,"G","classno2(x)=class number of discriminant x.",NULL,0,NULL},
++{"coeff",21,(void*)truecoeff,2,"GL","coeff(x,s)=coefficient of degree s of x, or the s-th component for vectors or matrices (for which it is simpler to use x[]).",NULL,0,NULL},
++{"compimag",2,(void*)qficomp,4,"GG","compimag(x,y)=Gaussian composition of the binary quadratic forms x and y of negative discriminant.",NULL,0,NULL},
++{"compo",21,(void*)compo,2,"GL","compo(x,s)=the s'th component of the internal representation of x. For vectors or matrices, it is simpler to use x[].",NULL,0,NULL},
++{"compositum",2,(void*)compositum,6,"GG","compositum(pol1,pol2)=vector of all possible compositums of the number fields defined by the polynomials pol1 and pol2.",NULL,0,NULL},
++{"compositum2",2,(void*)compositum2,6,"GG","compositum2(pol1,pol2)=vector of all possible compositums of the number fields defined by the polynomials pol1 and pol2, with roots of pol1 and pol2 expressed on the compositum polynomials.",NULL,0,NULL},
++{"comprealraw",2,(void*)qfrcompraw,4,"GG","comprealraw(x,y)=Gaussian composition without reduction of the binary quadratic forms x and y of positive discriminant.",NULL,0,NULL},
++{"concat",2,(void*)concat,8,"GG","concat(x,y)=concatenation of x and y.",NULL,0,NULL},
++{"conductor",99,(void*)bnrconductor0,6,"GDGDGD1,L,","conductor(bnr,subgroup)=conductor of the subfield of the ray class field bnr given by buchrayinit, defined by the HNF matrix subgroup.",NULL,0,NULL},
++{"conductorofchar",2,(void*)bnrconductorofchar,6,"GG","conductorofchar(bnr,chi)=conductor of the character chi on the ray class group bnr.",NULL,0,NULL},
++{"conj",1,(void*)gconj,2,"G","conj(x)=the algebraic conjugate of x.",NULL,0,NULL},
++{"conjvec",1,(void*)conjvec,2,"Gp","conjvec(x)=conjugate vector of the algebraic number x.",NULL,0,NULL},
++{"content",1,(void*)content,4,"G","content(x)=gcd of all the components of x, when this makes sense.",NULL,0,NULL},
++{"convol",2,(void*)convol,7,"GG","convol(x,y)=convolution (or Hadamard product) of two power series.",NULL,0,NULL},
++{"core",1,(void*)core,4,"G","core(n)=unique (positive of negative) squarefree integer d dividing n such that n/d is a square.",NULL,0,NULL},
++{"core2",1,(void*)core2,4,"G","core2(n)=(long)gen_2-component row vector [d,f], where d is the unique squarefree integer dividing n such that n/d=f^2 is a square.",NULL,0,NULL},
++{"coredisc",1,(void*)coredisc,4,"G","coredisc(n)=discriminant of the quadratic field Q(sqrt(n)).",NULL,0,NULL},
++{"coredisc2",1,(void*)coredisc2,4,"G","coredisc2(n)=(long)gen_2-component row vector [d,f], where d is the discriminant of the quadratic field Q(sqrt(n)) and n=df^2. f may be a half integer.",NULL,0,NULL},
++{"cos",1,(void*)gcos,3,"Gp","cos(x)=cosine of x.",NULL,0,NULL},
++{"cosh",1,(void*)gch,3,"Gp","cosh(x)=hyperbolic cosine of x.",NULL,0,NULL},
++{"cvtoi",13,(void*)gcvtoi,2,"Gf","cvtoi(x)=truncation of x, without taking into account loss of integer part precision.",NULL,0,NULL},
++{"cyclo",11,(void*)polcyclo,7,"LDn","cyclo(n)=n-th cyclotomic polynomial.",NULL,0,NULL},
++{"decodefactor",1,(void*)factorback,4,"G","decodefactor(fa)=given a factorisation fa, gives the factored object back.",NULL,0,NULL},
++{"decodemodule",2,(void*)decodemodule,6,"GG","decodemodule(nf,fa)=given a coded module fa as in discrayabslist, gives the true module.",NULL,0,NULL},
++{"degree",10,(void*)degree,2,"lG","degree(x)=degree of the polynomial or rational function x. -1 if equal 0, 0 if non-zero scalar.",NULL,0,NULL},
++{"denom",1,(void*)denom,2,"G","denom(x)=denominator of x (or lowest common denominator in case of an array).",NULL,0,NULL},
++{"deplin",1,(void*)deplin,8,"Gp","deplin(x)=finds a linear dependence between the columns of the matrix x.",NULL,0,NULL},
++{"deriv",14,(void*)deriv,7,"Gn","deriv(x,y)=derivative of x with respect to the main variable of y.",NULL,0,NULL},
++{"det",1,(void*)det,8,"G","det(x)=determinant of the matrix x.",NULL,0,NULL},
++{"det2",1,(void*)det2,8,"G","det2(x)=determinant of the matrix x (better for integer entries).",NULL,0,NULL},
++{"detint",1,(void*)detint,8,"G","detint(x)=some multiple of the determinant of the lattice generated by the columns of x (0 if not of maximal rank). Useful with hermitemod.",NULL,0,NULL},
++{"diagonal",1,(void*)diagonal,8,"G","diagonal(x)=creates the diagonal matrix whose diagonal entries are the entries of the vector x.",NULL,0,NULL},
++{"dilog",1,(void*)dilog,3,"Gp","dilog(x)=dilogarithm of x.",NULL,0,NULL},
++{"dirdiv",2,(void*)dirdiv,7,"GG","dirdiv(x,y)=division of the Dirichlet series x by the Dir. series y.",NULL,0,NULL},
++{"direuler",83,(void*)direuler0,7,"V=GGEDG","direuler(p=a,b,expr)=Dirichlet Euler product of expression expr from p=a to p=b, limited to b terms. Expr should be a polynomial or rational function in p and X, and X is understood to mean p^(-s).",NULL,0,NULL},
++{"dirmul",2,(void*)dirmul,7,"GG","dirmul(x,y)=multiplication of the Dirichlet series x by the Dir. series y.",NULL,0,NULL},
++{"dirzetak",2,(void*)dirzetak,6,"GG","dirzetak(nf,b)=Dirichlet series of the Dedekind zeta function of the number field nf up to the bound b-1.",NULL,0,NULL},
++{"disc",1,(void*)poldisc0,7,"GDn","disc(x)=discriminant of the polynomial x.",NULL,0,NULL},
++{"discf",1,(void*)nfdisc0,6,"GD0,L,DG","discf(x)=discriminant of the number field defined by the polynomial x using round 4.",NULL,0,NULL},
++{"discf2",1,(void*)nfdisc0,6,"GD2,L,DG","discf2(x)=discriminant of the number field defined by the polynomial x using round 2.",NULL,0,NULL},
++{"discrayabs",62,(void*)bnrdisc0,6,"GD0,G,D0,G,D0,L,","discrayabs(bnr,subgroup)=absolute [N,R1,disc] of the subfield of the ray class field bnr given by buchrayinit, defined by the HNF matrix subgroup.",NULL,0,NULL},
++{"discrayabscond",62,(void*)bnrdisc0,6,"GD0,G,D0,G,D2,L,","discrayabscond(bnr,subgroup)=absolute [N,R1,disc] of the subfield of the ray class field bnr given by buchrayinit, defined by the HNF matrix subgroup. Result is zero if fmodule is not the conductor.",NULL,0,NULL},
++{"discrayabslist",2,(void*)discrayabslist,6,"GG","discrayabslist(bnf,listes)=if listes is a 2-component vector as output by ideallistunit or similar, gives list of corresponding discrayabscond.",NULL,0,NULL},
++{"discrayabslistarch",32,(void*)discrayabslistarch,6,"GGL","discrayabslistarch(bnf,arch,bound)=gives list of discrayabscond of all modules up to norm bound with archimedean places arch, in a longvector format.",NULL,0,NULL},
++{"discrayabslistarchall",32,(void*)discrayabslistarch,6,"GL","discrayabslistarchall(bnf,bound)=gives list of discrayabscond of all modules up to norm bound with all possible archimedean places arch in reverse lexicographic order, in a longvector format.",NULL,0,NULL},
++{"discrayabslistlong",21,(void*)discrayabslistlong,6,"GL","discrayabslistlong(bnf,bound)=gives list of discrayabscond of all modules up to norm bound without archimedean places, in a longvector format.",NULL,0,NULL},
++{"discrayrel",62,(void*)bnrdisc0,6,"GD0,G,D0,G,D1,L,","discrayrel(bnr,subgroup)=relative [N,R1,rnfdisc] of the subfield of the ray class field bnr given by buchrayinit, defined by the HNF matrix subgroup.",NULL,0,NULL},
++{"discrayrelcond",62,(void*)bnrdisc0,6,"GD0,G,D0,G,D3,L,","discrayrelcond(bnr,subgroup)=relative [N,R1,rnfdisc] of the subfield of the ray class field bnr given by buchrayinit, defined by the HNF matrix subgroup. Result is zero if module is not the conductor.",NULL,0,NULL},
++{"divisors",1,(void*)divisors,4,"G","divisors(x)=gives a vector formed by the divisors of x in increasing order.",NULL,0,NULL},
++{"divres",2,(void*)gdiventres,1,"GG","divres(x,y)=euclidean division of x by y giving as a 2-dimensional column vector the quotient and the remainder.",NULL,0,NULL},
++{"divsum",22,(void*)divsum,9,"GVE","divsum(n,X,expr)=sum of expression expr, X running over the divisors of n.",NULL,0,NULL},
++{"eigen",1,(void*)eigen,8,"Gp","eigen(x)=eigenvectors of the matrix x given as columns of a matrix.",NULL,0,NULL},
++{"eint1",1,(void*)eint1,3,"Gp","eint1(x)=exponential integral E1(x).",NULL,0,NULL},
++{"erfc",1,(void*)gerfc,3,"Gp","erfc(x)=complementary error function.",NULL,0,NULL},
++{"eta",1,(void*)eta,3,"Gp","eta(x)=eta function without the q^(1/24).",NULL,0,NULL},
++{"euler",0,(void*)mpeuler,3,"p","euler=euler()=euler's constant with current precision.",NULL,0,NULL},
++{"eval",1,(void*)geval_gp,7,"GC","eval(x)=evaluation of x, replacing variables by their value.",NULL,0,NULL},
++{"exp",1,(void*)gexp,3,"Gp","exp(x)=exponential of x.",NULL,0,NULL},
++{"extract",2,(void*)extract0,8,"GGDG","extract(x,y)=extraction of the components of the vector x according to the vector or mask y, from left to right (1, 2, 4, 8, ...for the first, second, third, fourth,...component).",NULL,0,NULL},
++{"fact",11,(void*)mpfactr,4,"Lp","fact(x)=factorial of x (x C-integer), the result being given as a real number.",NULL,0,NULL},
++{"factcantor",2,(void*)factcantor,4,"GG","factcantor(x,p)=factorization mod p of the polynomial x using Cantor-Zassenhaus.",NULL,0,NULL},
++{"factfq",3,(void*)factorff,4,"GGG","factfq(x,p,a)=factorization of the polynomial x in the finite field F_p[X]/a(X)F_p[X].",NULL,0,NULL},
++{"factmod",2,(void*)factmod,4,"GG","factmod(x,p)=factorization mod p of the polynomial x using Berlekamp.",NULL,0,NULL},
++{"factor",1,(void*)factor,4,"G","factor(x)=factorization of x.",NULL,0,NULL},
++{"factoredbasis",28,(void*)factoredbase,6,"GG","factoredbasis(x,p)=integral basis of the maximal order defined by the polynomial x, where p is the matrix of the factorization of the discriminant of x.",NULL,0,NULL},
++{"factoreddiscf",2,(void*)factoreddiscf,6,"GG","factoreddiscf(x,p)=discriminant of the maximal order defined by the polynomial x, where p is the matrix of the factorization of the discriminant of x.",NULL,0,NULL},
++{"factoredpolred",2,(void*)factoredpolred,6,"GG","factoredpolred(x,p)=reduction of the polynomial x, where p is the matrix of the factorization of the discriminant of x (gives minimal polynomials only).",NULL,0,NULL},
++{"factoredpolred2",2,(void*)factoredpolred2,6,"GG","factoredpolred2(x,p)=reduction of the polynomial x, where p is the matrix of the factorization of the discriminant of x (gives elements and minimal polynomials).",NULL,0,NULL},
++{"factornf",2,(void*)polfnf,6,"GG","factornf(x,t)=factorization of the polynomial x over the number field defined by the polynomial t.",NULL,0,NULL},
++{"factorpadic",32,(void*)factorpadic,7,"GGL","factorpadic(x,p,r)=p-adic factorization of the polynomial x to precision r, using the round 4 algorithm.",NULL,0,NULL},
++{"factorpadic2",32,(void*)factorpadic0,7,"GGLD1,L,","factorpadic2(x,p,r)=p-adic factorization of the polynomial x to precision r, using Buchmann-Lenstra.",NULL,0,NULL},
++{"factpol",33,(void*)_factpol,7,"GLL","factpol(x,l,hint)=factorization over Z of the polynomial x up to degree l (complete if l=0) using Hensel lift, knowing that the degree of each factor is a multiple of hint.",NULL,0,NULL},
++{"factpol2",0,(void*)suppressed,6,"GL","factpol2(x,l)=factorization over Z of the polynomial x up to degree l (complete if l=0) using root finding.",NULL,0,NULL},
++{"fibo",11,(void*)fibo,4,"L","fibo(x)=fibonacci number of index x (x C-integer).",NULL,0,NULL},
++{"floor",1,(void*)gfloor,2,"G","floor(x)=floor of x=largest integer<=x.",NULL,0,NULL},
++{"for",83,(void*)forpari,11,"vV=GGI","for(X=a,b,seq)=the sequence is evaluated, X going from a up to b.",NULL,0,NULL},
++{"fordiv",84,(void*)fordiv,11,"vGVI","fordiv(n,X,seq)=the sequence is evaluated, X running over the divisors of n.",NULL,0,NULL},
++{"forprime",83,(void*)forprime,11,"vV=GGI","forprime(X=a,b,seq)=the sequence is evaluated, X running over the primes between a and b.",NULL,0,NULL},
++{"forstep",86,(void*)forstep,11,"vV=GGGI","forstep(X=a,b,s,seq)=the sequence is evaluated, X going from a to b in steps of s.",NULL,0,NULL},
++{"forvec",87,(void*)forvec,11,"vV=GID0,L,","forvec(x=v,seq)=v being a vector of two-component vectors of length n, the sequence is evaluated with x[i] going from v[i][1] to v[i][2] for i=n,..,1.",NULL,0,NULL},
++{"fpn",21,(void*)ffinit,2,"GLDn","fpn(p,n)=monic irreducible polynomial of degree n over F_p[x].",NULL,0,NULL},
++{"frac",1,(void*)gfrac,2,"G","frac(x)=fractional part of x=x-floor(x).",NULL,0,NULL},
++{"galois",1,(void*)polgalois,6,"Gp","galois(x)=Galois group of the polynomial x (see manual for group coding).",NULL,0,NULL},
++{"galoisapply",3,(void*)galoisapply,6,"GGG","galoisapply(nf,aut,x)=Apply the Galois automorphism sigma (polynomial or polymod) to the object x (element or ideal) in the number field nf.",NULL,0,NULL},
++{"galoisconj",1,(void*)galoisconj,6,"GDG","galoisconj(nf)=list of conjugates of a root of the polynomial x=nf[1] in the same number field, using p-adics, LLL on integral basis (not always complete).",NULL,0,NULL},
++{"galoisconj1",0,(void*)suppressed,6,"G","galoisconj1(nf)=list of conjugates of a root of the polynomial x=nf[1] in the same number field nf, using complex numbers, LLL on integral basis (not always complete).",NULL,0,NULL},
++{"galoisconjforce",0,(void*)suppressed,6,"G","galoisconjforce(nf)=list of conjugates of a root of the polynomial x=nf[1] in the Galois number field nf, using p-adics, LLL on integral basis. Guaranteed to be complete if the field is Galois, otherwise there is an infinite loop.",NULL,0,NULL},
++{"gamh",1,(void*)ggamd,3,"Gp","gamh(x)=gamma of x+1/2 (x integer).",NULL,0,NULL},
++{"gamma",1,(void*)ggamma,3,"Gp","gamma(x)=gamma function at x.",NULL,0,NULL},
++{"gauss",2,(void*)gauss,8,"GG","gauss(a,b)=gaussian solution of ax=b (a matrix,b vector).",NULL,0,NULL},
++{"gaussmodulo",3,(void*)gaussmodulo,8,"GGG","gaussmodulo(M,D,Y)=(long)gen_1 solution of system of congruences MX=Y mod D.",NULL,0,NULL},
++{"gaussmodulo2",3,(void*)gaussmodulo2,8,"GGG","gaussmodulo2(M,D,Y)=all solutions of system of congruences MX=Y mod D.",NULL,0,NULL},
++{"gcd",2,(void*)ggcd,4,"GG","gcd(x,y)=greatest common divisor of x and y.",NULL,0,NULL},
++{"getheap",0,(void*)getheap,2,"","getheap()=2-component vector giving the current number of objects in the heap and the space they occupy.",NULL,0,NULL},
++{"getrand",0,(void*)getrand,2,"","getrand()=current value of random number seed.",NULL,0,NULL},
++{"getstack",0,(void*)getstack,2,"l","getstack()=current value of stack pointer avma.",NULL,0,NULL},
++{"gettime",0,(void*)gettime,2,"l","gettime()=time (in milliseconds) since last call to gettime.",NULL,0,NULL},
++{"globalred",1,(void*)ellglobalred,5,"G","globalred(e)=e being an elliptic curve, returns [N,[u,r,s,t],c], where N is the conductor of e, [u,r,s,t] leads to the standard model for e, and c is the product of the local Tamagawa numbers c_p.",NULL,0,NULL},
++{"goto",0,(void*)suppressed,11,"s*","goto(n)=THIS FUNCTION HAS BEEN SUPPRESSED.",NULL,0,NULL},
++{"hclassno",1,(void*)hclassno,4,"G","hclassno(x)=Hurwitz-Kronecker class number of x>0.",NULL,0,NULL},
++{"hell",2,(void*)ghell,5,"GGp","hell(e,x)=canonical height of point x on elliptic curve E defined by the vector e computed using theta-functions.",NULL,0,NULL},
++{"hell2",2,(void*)ghell2,5,"GGp","hell2(e,x)=canonical height of point x on elliptic curve E defined by the vector e computed using Tate's method.",NULL,0,NULL},
++{"hermite",1,(void*)ZM_hnf,8,"G","hermite(x)=(upper triangular) Hermite normal form of x, basis for the lattice formed by the columns of x, using a naive algorithm.",NULL,0,NULL},
++{"hermite2",1,(void*)hnfall,8,"G","hermite2(x)=2-component vector [H,U] such that H is an (upper triangular) Hermite normal form of x, basis for the lattice formed by the columns of x, and U is a unimodular matrix such that xU=H, using Batut's algorithm.",NULL,0,NULL},
++{"hermitehavas",0,(void*)suppressed,8,"G","hermitehavas(x)=3-component vector [H,U,P] such that H is an (upper triangular) Hermite normal form of x with extra zero columns, U is a unimodular matrix and P is a permutation of the rows such that P applied to xU gives H, using Havas's algorithm.",NULL,0,NULL},
++{"hermitemod",2,(void*)hnfmod,8,"GG","hermitemod(x,d)=(upper triangular) Hermite normal form of x, basis for the lattice formed by the columns of x, where d is the non-zero determinant of this lattice.",NULL,0,NULL},
++{"hermitemodid",2,(void*)hnfmodid,8,"GG","hermitemodid(x,d)=(upper triangular) Hermite normal form of x concatenated with d times the identity matrix.",NULL,0,NULL},
++{"hermiteperm",1,(void*)hnfperm,8,"G","hermiteperm(x)=3-component vector [H,U,P] such that H is an (upper triangular) Hermite normal form of x with extra zero columns, U is a unimodular matrix and P is a permutation of the rows such that P applied to xU gives H, using Batut's algorithm.",NULL,0,NULL},
++{"hess",1,(void*)hess,8,"G","hess(x)=Hessenberg form of x.",NULL,0,NULL},
++{"hilb",30,(void*) hilbert,4,"lGGG","hilb(x,y,p)=Hilbert symbol at p of x,y (integers or fractions).",NULL,0,NULL},
++{"hilbert",11,(void*)mathilbert,8,"L","hilbert(n)=Hilbert matrix of order n (n C-integer).",NULL,0,NULL},
++{"hilbp",20,(void*) hilbert,4,"lGGDG","hilbp(x,y)=Hilbert symbol of x,y (where x or y is integermod or p-adic).",NULL,0,NULL},
++{"hvector",22,(void*)vecteur,9,"GVE","hvector(n,X,expr)=row vector with n components of expression expr, the variable X ranging from 1 to n.",NULL,0,NULL},
++{"hyperu",3,(void*)hyperu,3,"GGGp","hyperu(a,b,x)=U-confluent hypergeometric function.",NULL,0,NULL},
++{"i",0,(void*)gen_I,2,"","i=i()=square root of -1.",NULL,0,NULL},
++{"idealadd",3,(void*)idealadd,6,"GGG","idealadd(nf,x,y)=sum of two ideals x and y in the number field defined by nf.",NULL,0,NULL},
++{"idealaddmultone",2,(void*)idealaddmultoone,6,"GG","idealaddone(nf,x,y)=when the sum of two ideals x and y in the number field K defined by nf is equal to Z_K, gives a two-component vector [a,b] such that a is in x, b is in y and a+b=1.",NULL,0,NULL},
++{"idealaddone",3,(void*)idealaddtoone,6,"GGG","idealaddmultone(nf,list)=when the sum of the ideals in the number field K defined by nf and given in the vector list is equal to Z_K, gives a vector of elements of the corresponding ideals who sum to 1.",NULL,0,NULL},
++{"idealappr",2,(void*)idealappr,6,"GGp","idealappr(nf,x)=x being a fractional ideal, gives an element b such that v_p(b)=v_p(x) for all prime ideals p dividing x, and v_p(b)>=0 for all other p.",NULL,0,NULL},
++{"idealapprfact",2,(void*)idealapprfact,6,"GG","idealapprfact(nf,x)=x being a prime ideal factorization with possibly zero or negative exponents, gives an element b such that v_p(b)=v_p(x) for all prime ideals p dividing x, and v_p(b)>=0 for all other p.",NULL,0,NULL},
++{"idealchinese",3,(void*)idealchinese,6,"GGG","idealchinese(nf,x,y)=x being a prime ideal factorization and y a vector of elements, gives an element b such that v_p(b-y_p)>=v_p(x) for all prime ideals p dividing x, and v_p(b)>=0 for all other p.",NULL,0,NULL},
++{"idealcoprime",3,(void*)idealcoprime,6,"GGG","idealcoprime(nf,x,y)=gives an element b in nf such that b.x is an integral ideal coprime to the integral ideal y.",NULL,0,NULL},
++{"idealdiv",3,(void*)idealdiv,6,"GGG","idealdiv(nf,x,y)=quotient x/y of two ideals x and y in HNF in the number field nf.",NULL,0,NULL},
++{"idealdivexact",3,(void*)idealdivexact,6,"GGG","idealdivexact(nf,x,y)=quotient x/y of two ideals x and y in HNF in the number field nf when the quotient is known to be an integral ideal.",NULL,0,NULL},
++{"idealfactor",2,(void*)idealfactor,6,"GG","idealfactor(nf,x)=factorization of the ideal x given in HNF into prime ideals in the number field nf.",NULL,0,NULL},
++{"idealhermite",2,(void*)idealhnf,6,"GG","idealhermite(nf,x)=hermite normal form of the ideal x in the number field nf, whatever form x may have.",NULL,0,NULL},
++{"idealhermite2",3,(void*)idealhnf0,6,"GGG","idealhermite2(nf,a,b)=hermite normal form of the ideal aZ_K+bZ_K in the number field K defined by nf, where a and b are elements.",NULL,0,NULL},
++{"idealintersect",3,(void*)idealintersect,6,"GGG","idealintersect(nf,x,y)=intersection of two ideals x and y in HNF in the number field defined by nf.",NULL,0,NULL},
++{"idealinv",2,(void*)idealinv,6,"GG","idealinv(nf,x)=inverse of the ideal x in the number field nf not using the different.",NULL,0,NULL},
++{"idealinv2",2,(void*)idealinv,6,"GG","idealinv2(nf,x)=inverse of the ideal x in the number field nf using the different.",NULL,0,NULL},
++{"ideallist",21,(void*)ideallist,6,"GL","ideallist(nf,bound)=vector of vectors of all ideals of norm<=bound in nf.",NULL,0,NULL},
++{"ideallistarch",3,(void*)ideallistarch,6,"GGG","ideallistarch(nf,list,arch)=vector of vectors of all zidealstarinits of all modules in list with archimedean arch added, without generators.",NULL,0,NULL},
++{"ideallistarchgen",3,(void*)ideallistarch,6,"GGG","ideallistarchgen(nf,list,arch)=vector of vectors of all zidealstarinits of all modules in list with archimedean arch added, with generators.",NULL,0,NULL},
++{"ideallistunit",21,(void*)ideallist0,6,"GLD2,L,","ideallistunit(bnf,bound)=2-component vector [L,U] where L is as ideallistzstar, and U is a vector of vector of zinternallogs of the units, without generators.",NULL,0,NULL},
++{"ideallistunitarch",3,(void*)ideallistarch,6,"GGG","ideallistunitarch(bnf,lists,arch)=adds the archimedean arch to the lists output by ideallistunit.",NULL,0,NULL},
++{"ideallistunitarchgen",3,(void*)ideallistarch,6,"GGG","ideallistunitarchgen(bnf,lists,arch)=adds the archimedean arch to the lists output by ideallistunitgen.",NULL,0,NULL},
++{"ideallistunitgen",21,(void*)ideallist0,6,"GLD3,L,","ideallistunitgen(bnf,bound)=2-component vector [L,U] where L is as ideallistzstar, and U is a vector of vector of zinternallogs of the units, with generators.",NULL,0,NULL},
++{"ideallistzstar",21,(void*)ideallist0,6,"GLD0,L,","ideallistzstar(nf,bound)=vector of vectors of all zidealstarinits of all ideals of norm<=bound, without generators.",NULL,0,NULL},
++{"ideallistzstargen",21,(void*)ideallist0,6,"GLD1,L,","ideallistzstargen(nf,bound)=vector of vectors of all zidealstarinits of all ideals of norm<=bound, with generators.",NULL,0,NULL},
++{"ideallllred",3,(void*)idealred0,6,"GGGp","ideallllred(nf,x,vdir)=LLL reduction of the ideal x in the number field nf along direction vdir, in HNF.",NULL,0,NULL},
++{"idealmul",3,(void*)idealmul,6,"GGG","idealmul(nf,x,y)=product of the two ideals x and y in the number field nf.",NULL,0,NULL},
++{"idealmulred",3,(void*)idealmulred,6,"GGGp","idealmulred(nf,x,y)=reduced product of the two ideals x and y in the number field nf.",NULL,0,NULL},
++{"idealnorm",2,(void*)idealnorm,6,"GG","idealnorm(nf,x)=norm of the ideal x in the number field nf.",NULL,0,NULL},
++{"idealpow",3,(void*)idealpow,6,"GGG","idealpow(nf,x,n)=n-th power of the ideal x in HNF in the number field nf.",NULL,0,NULL},
++{"idealpowred",3,(void*)idealpowred,6,"GGGp","idealpowred(nf,x,n)=reduced n-th power of the ideal x in HNF in the number field nf.",NULL,0,NULL},
++{"idealtwoelt",2,(void*)idealtwoelt,6,"GG","idealtwoelt(nf,x)=(long)gen_2-element representation of an ideal x in the number field nf.",NULL,0,NULL},
++{"idealtwoelt2",3,(void*)idealtwoelt2,6,"GGG","idealtwoelt2(nf,x,a)=(long)gen_2-element representation of an ideal x in the number field nf, with the first element equal to a.",NULL,0,NULL},
++{"idealval",30,(void*)idealval,6,"lGGG","idealval(nf,x,p)=valuation at p given in primedec format of the ideal x in the number field nf.",NULL,0,NULL},
++{"idmat",11,(void*)matid,8,"L","idmat(n)=identity matrix of order n (n C-integer).",NULL,0,NULL},
++{"if",0,(void*)ifpari,11,"GDEDE","if(a,seq1,seq2): if a is nonzero, seq1 is evaluated, otherwise seq2. seq1 and seq2 are optional, and if seq2 is omitted, the preceding comma can be omitted also.",NULL,0,NULL},
++{"imag",1,(void*)gimag,2,"G","imag(x)=imaginary part of x.",NULL,0,NULL},
++{"image",1,(void*)image,8,"G","image(x)=basis of the image of the matrix x.",NULL,0,NULL},
++{"image2",1,(void*)image2,8,"G","image2(x)=basis of the image of the matrix x.",NULL,0,NULL},
++{"imagecompl",1,(void*)imagecompl,8,"G","imagecompl(x)=vector of column indices not corresponding to the indices given by the function image.",NULL,0,NULL},
++{"incgam",2,(void*)incgam,3,"GGp","incgam(s,x)=incomplete gamma function.",NULL,0,NULL},
++{"incgam1",2,(void*)suppressed,3,"GGp","incgam1(s,x)=incomplete gamma function (for debugging only).",NULL,0,NULL},
++{"incgam2",2,(void*)suppressed,3,"GGp","incgam2(s,x)=incomplete gamma function (for debugging only).",NULL,0,NULL},
++{"incgam3",2,(void*)incgamc,3,"GGp","incgam3(s,x)=complementary incomplete gamma function.",NULL,0,NULL},
++{"incgam4",3,(void*)incgam0,3,"GGGp","incgam4(s,x,y)=incomplete gamma function where y=gamma(s) is precomputed.",NULL,0,NULL},
++{"indexrank",1,(void*)indexrank,8,"G","indexrank(x)=gives two extraction vectors (rows and columns) for the matrix x such that the exracted matrix is square of maximal rank.",NULL,0,NULL},
++{"indsort",1,(void*)indexsort,8,"G","indsort(x)=indirect sorting of the vector x.",NULL,0,NULL},
++{"initalg",1,(void*)nfinit,6,"Gp","initalg(x)=x being a nonconstant irreducible polynomial, gives the vector: [x,[r1,r2],nfdisc,index,[M,MC,T2,T,different] (see manual),r1+r2 first roots, integral basis, matrix of power basis in terms of integral basis, multiplication table of basis].",NULL,0,NULL},
++{"initalgred",1,(void*)nfinitred,6,"Gp","initalgred(x)=x being a nonconstant irreducible polynomial, finds (using polred) a simpler polynomial pol defining the same number field, and gives the vector: [pol,[r1,r2],nfdisc,index,[M,MC,T2,T,different] (see manual), r1+r2 first roots, integral basis, matrix of power basis in terms of integral basis, multiplication table of basis].",NULL,0,NULL},
++{"initalgred2",1,(void*)nfinitred2,6,"Gp","initalgred2(P)=P being a nonconstant irreducible polynomial, gives a two-element vector [nf,mod(a,pol)], where nf is as output by nfinitred and mod(a,pol) is a polymod equal to mod(x,P) and pol=nf[1].",NULL,0,NULL},
++{"initell",1,(void*)ellinit,5,"Gp","initell(x)=x being the vector [a1,a2,a3,a4,a6], gives the vector: [a1,a2,a3,a4,a6,b2,b4,b6,b8,c4,c6,delta,j,[e1,e2,e3],w1,w2,eta1,eta2,q,area].",NULL,0,NULL},
++{"initzeta",1,(void*)initzeta,6,"Gp","initzeta(x)=compute number field information necessary to use zetak, where x is an irreducible polynomial.",NULL,0,NULL},
++{"integ",14,(void*)integ,7,"Gn","integ(x,y)=formal integration of x with respect to the main variable of y.",NULL,0,NULL},
++{"intersect",2,(void*)intersect,8,"GG","intersect(x,y)=intersection of the vector spaces whose bases are the columns of x and y.",NULL,0,NULL},
++{"intgen",99,(void*)intnumromb0,9,"V=GGED1,L,p","intgen(X=a,b,s)=general numerical integration of s from a to b with respect to X, to be used after removing singularities.",NULL,0,NULL},
++{"intinf",99,(void*)intnumromb0,9,"V=GGED2,L,p","intinf(X=a,b,s)=numerical integration of s from a to b with respect to X, where a or b can be plus or minus infinity (1.0e4000), but of same sign.",NULL,0,NULL},
++{"intnum",99,(void*)intnumromb0,9,"V=GGED0,L,p","intnum(X=a,b,s)=numerical integration of s from a to b with respect to X.",NULL,0,NULL},
++{"intopen",99,(void*)intnumromb0,9,"V=GGED3,L,p","intopen(X=a,b,s)=numerical integration of s from a to b with respect to X, where s has only limits at a or b.",NULL,0,NULL},
++{"inverseimage",2,(void*)inverseimage,8,"GG","inverseimage(x,y)=an element of the inverse image of the vector y by the matrix x if one exists, the empty vector otherwise.",NULL,0,NULL},
++{"isdiagonal",10,(void*)isdiagonal,8,"lG","isdiagonal(x)=true(1) if x is a diagonal matrix, false(0) otherwise.",NULL,0,NULL},
++{"isfund",1,(void*)gisfundamental,4,"G","isfund(x)=true(1) if x is a fundamental discriminant (including 1), false(0) if not.",NULL,0,NULL},
++{"isideal",20,(void*)isideal,6,"lGG","isideal(nf,x)=true(1) if x is an ideal in the number field nf, false(0) if not.",NULL,0,NULL},
++{"isincl",2,(void*)nfisincl,6,"GG","isincl(x,y)=tests whether the number field defined by the polynomial x is isomorphic to a subfield of the one defined by y; 0 if not, otherwise all the isomorphisms.",NULL,0,NULL},
++{"isinclfast",2,(void*)nfisincl,6,"GG","isinclfast(nf1,nf2)=tests whether the number nf1 is isomorphic to a subfield of nf2 or not. If it gives a non-zero result, this proves that this is the case. However if it gives zero, nf1 may still be isomorphic to a subfield of nf2 so you have to use the much slower isincl to be sure.",NULL,0,NULL},
++{"isirreducible",1,(void*)gisirreducible,7,"G","isirreducible(x)=true(1) if x is an irreducible non-constant polynomial, false(0) if x is reducible or constant.",NULL,0,NULL},
++{"isisom",2,(void*)nfisisom,6,"GG","isisom(x,y)=tests whether the number field defined by the polynomial x is isomorphic to the one defined by y; 0 if not, otherwise all the isomorphisms.",NULL,0,NULL},
++{"isisomfast",2,(void*)nfisisom,6,"GG","isisomfast(nf1,nf2)=tests whether the number fields nf1 and nf2 are isomorphic or not. If it gives a non-zero result, this proves that they are isomorphic. However if it gives zero, nf1 and nf2 may still be isomorphic so you have to use the much slower isisom to be sure.",NULL,0,NULL},
++{"isoncurve",20,(void*)oncurve,5,"iGG","isoncurve(e,x)=true(1) if x is on elliptic curve e, false(0) if not.",NULL,0,NULL},
++{"isprime",1,(void*)gisprime,4,"GD0,L,","isprime(x)=true(1) if x is a strong pseudoprime for 10 random bases, false(0) if not.",NULL,0,NULL},
++{"isprincipal",2,(void*)isprincipal,6,"GG","isprincipal(bnf,x)=bnf being output by buchinit, gives the vector of exponents on the class group generators of x. In particular x is principal if and only if the result is the zero vector.",NULL,0,NULL},
++{"isprincipalforce",2,(void*)isprincipalforce,6,"GG","isprincipalforce(bnf,x)=same as isprincipal, except that the precision is doubled until the result is obtained.",NULL,0,NULL},
++{"isprincipalgen",2,(void*)isprincipalgen,6,"GG","isprincipalgen(bnf,x)=bnf being output by buchinit, gives [v,alpha,bitaccuracy], where v is the vector of exponents on the class group generators and alpha is the generator of the resulting principal ideal. In particular x is principal if and only if v is the zero vector.",NULL,0,NULL},
++{"isprincipalgenforce",2,(void*)isprincipalgenforce,6,"GG","isprincipalgenforce(bnf,x)=same as isprincipalgen, except that the precision is doubled until the result is obtained.",NULL,0,NULL},
++{"isprincipalray",2,(void*)isprincipalray,6,"GG","isprincipalray(bnf,x)=bnf being output by buchrayinit, gives the vector of exponents on the ray class group generators of x. In particular x is principal if and only if the result is the zero vector.",NULL,0,NULL},
++{"isprincipalraygen",2,(void*)isprincipalraygen,6,"GG","isprincipalraygen(bnf,x)=bnf being output by buchrayinit, gives [v,alpha,bitaccuracy], where v is the vector of exponents on the class group generators and alpha is the generator of the resulting principal ideal. In particular x is principal if and only if v is the zero vector.",NULL,0,NULL},
++{"ispsp",1,(void*)gispseudoprime,4,"GD1,L,","ispsp(x)=true(1) if x is a strong pseudoprime, false(0) if not.",NULL,0,NULL},
++{"isqrt",1,(void*)sqrtint,4,"G","isqrt(x)=integer square root of x (x integer).",NULL,0,NULL},
++{"isset",10,(void*)setisset,8,"lG","isset(x)=true(1) if x is a set (row vector with strictly increasing entries), false(0) if not.",NULL,0,NULL},
++{"issqfree",1,(void*)gissquarefree,4,"G","issqfree(x)=true(1) if x is squarefree, false(0) if not.",NULL,0,NULL},
++{"issquare",1,(void*)gissquare,4,"G","issquare(x)=true(1) if x is a square, false(0) if not.",NULL,0,NULL},
++{"isunit",2,(void*)bnfisunit,6,"GG","isunit(bnf,x)=bnf being output by buchinit, gives the vector of exponents of x on the fundamental units and the roots of unity if x is a unit, the empty vector otherwise.",NULL,0,NULL},
++{"jacobi",1,(void*)jacobi,8,"Gp","jacobi(x)=eigenvalues and orthogonal matrix of eigenvectors of the real symmetric matrix x.",NULL,0,NULL},
++{"jbesselh",2,(void*)jbesselh,3,"GGp","jbesselh(n,x)=J-bessel function of index n+1/2 and argument x, where n is a non-negative integer.",NULL,0,NULL},
++{"jell",1,(void*)jell,3,"Gp","jell(x)=elliptic j invariant of x.",NULL,0,NULL},
++{"karamul",0,(void*)suppressed,7,"GGL","karamul(x,y,k)=THIS FUNCTION HAS BEEN SUPPRESSED.",NULL,0,NULL},
++{"kbessel",2,(void*)kbessel,3,"GGp","kbessel(nu,x)=K-bessel function of index nu and argument x (x positive real of type real, nu of any scalar type).",NULL,0,NULL},
++{"kbessel2",2,(void*)kbessel,3,"GGp","kbessel2(nu,x)=K-bessel function of index nu and argument x (x positive real of type real, nu of any scalar type).",NULL,0,NULL},
++{"ker",1,(void*)ker,8,"G","ker(x)=basis of the kernel of the matrix x.",NULL,0,NULL},
++{"keri",1,(void*)keri,8,"G","keri(x)=basis of the kernel of the matrix x with integer entries.",NULL,0,NULL},
++{"kerint",1,(void*)matkerint0,8,"GD0,L,","kerint(x)=LLL-reduced Z-basis of the kernel of the matrix x with integral entries using a modified LLL.",NULL,0,NULL},
++{"kerint1",1,(void*)matkerint0,8,"GD1,L,","kerint1(x)=LLL-reduced Z-basis of the kernel of the matrix x with rational entries using matrixqz3 and the HNF.",NULL,0,NULL},
++{"kerint2",1,(void*)suppressed,8,"G","kerint2(x)=LLL-reduced Z-basis of the kernel of the matrix x with integral entries using a modified LLL.",NULL,0,NULL},
++{"kro",2,(void*)gkronecker,4,"GG","kro(x,y)=kronecker symbol (x/y).",NULL,0,NULL},
++{"label",0,(void*)suppressed,11,"s*","label(n)=THIS FUNCTION HAS BEEN SUPPRESSED.",NULL,0,NULL},
++{"lambdak",2,(void*)glambdak,6,"GGp","lambdak(nfz,s)=Dedekind lambda function of the number field nfz at s, where nfz is the vector computed by initzeta (NOT by nfinit).",NULL,0,NULL},
++{"laplace",1,(void*)laplace,7,"G","laplace(x)=replaces the power series sum of a_n*x^n/n! by sum of a_n*x^n.",NULL,0,NULL},
++{"lcm",2,(void*)glcm,4,"GG","lcm(x,y)=least common multiple of x and y=x*y/gcd(x,y).",NULL,0,NULL},
++{"legendre",11,(void*)pollegendre,7,"LDn","legendre(n)=legendre polynomial of degree n (n C-integer).",NULL,0,NULL},
++{"length",1,(void*)glength,2,"lG","length(x)=number of non code words in x.",NULL,0,NULL},
++{"lex",20,(void*)lexcmp,2,"iGG","lex(x,y)=compare x and y lexicographically (1 if x>y, 0 if x=y, -1 if x<y).",NULL,0,NULL},
++{"lexsort",1,(void*)lexsort,8,"G","lexsort(x)=sort the elements of the vector x in ascending lexicographic order.",NULL,0,NULL},
++{"lift",1,(void*)lift,2,"G","lift(x)=lifts every element of Z/nZ to Z or Z[x]/PZ[x] to Z[x].",NULL,0,NULL},
++{"lindep",1,(void*)lindep,8,"G","lindep(x)=Z-linear dependencies between components of x (Hastad et al).",NULL,0,NULL},
++{"lindep2",23,(void*)lindep2,8,"GL","lindep2(x,dec)=Z-linear dependencies between components of x using LLL, where dec should be about one half the number of decimal digits of precision.",NULL,0,NULL},
++{"lll",1,(void*)lll,8,"Gp","lll(x)=lll reduction of the vectors forming the matrix x (gives the unimodular transformation matrix).",NULL,0,NULL},
++{"lll1",1,(void*)suppressed,8,"Gp","lll1(x)=old version of lll reduction of the vectors forming the matrix x (gives the unimodular transformation matrix).",NULL,0,NULL},
++{"lllgen",1,(void*)lllgen,8,"Gp","lllgen(x)=lll reduction of the vectors forming the matrix x with polynomial coefficients (gives the unimodular transformation matrix).",NULL,0,NULL},
++{"lllgram",1,(void*)lllgram,8,"Gp","lllgram(x)=lll reduction of the lattice whose gram matrix is x (gives the unimodular transformation matrix).",NULL,0,NULL},
++{"lllgram1",1,(void*)suppressed,8,"Gp","lllgram1(x)=old version of lll reduction of the lattice whose gram matrix is x (gives the unimodular transformation matrix).",NULL,0,NULL},
++{"lllgramgen",1,(void*)lllgramgen,8,"G","lllgramgen(x)=lll reduction of the lattice whose gram matrix is x with polynomial coefficients (gives the unimodular transformation matrix).",NULL,0,NULL},
++{"lllgramint",1,(void*)lllgramint,8,"G","lllgramint(x)=lll reduction of the lattice whose gram matrix is the integral matrix x (gives the unimodular transformation matrix).",NULL,0,NULL},
++{"lllgramkerim",1,(void*)lllgramkerim,8,"G","lllgramkerim(x)=kernel and lll reduction of the lattice whose gram matrix is the integral matrix x.",NULL,0,NULL},
++{"lllgramkerimgen",1,(void*)lllgramkerimgen,8,"G","lllgramkerimgen(x)=kernel and lll reduction of the lattice whose gram matrix is the matrix x with polynomial coefficients.",NULL,0,NULL},
++{"lllint",1,(void*)lllint,8,"G","lllint(x)=lll reduction of the vectors forming the matrix x when the gram matrix is integral (gives the unimodular transformation matrix).",NULL,0,NULL},
++{"lllintpartial",1,(void*)lllintpartial,8,"G","lllintpartial(x)=partial (hence faster) lll reduction of the vectors forming the matrix x when the gram matrix is integral (gives the unimodular transformation matrix).",NULL,0,NULL},
++{"lllkerim",1,(void*)lllkerim,8,"G","lllkerim(x)=kernel and lll reduction of the vectors forming the integral matrix x.",NULL,0,NULL},
++{"lllkerimgen",1,(void*)lllkerimgen,8,"G","lllkerimgen(x)=kernel and lll reduction of the vectors forming the matrix x with polynomial coefficients.",NULL,0,NULL},
++{"lllrat",1,(void*)suppressed,8,"G","lllrat(x)=lll reduction of the vectors forming the matrix x, computations done with rational numbers (gives the unimodular transformation matrix).",NULL,0,NULL},
++{"ln",1,(void*)glog,3,"Gp","ln(x)=log(x)=natural logarithm of x.",NULL,0,NULL},
++{"lngamma",1,(void*)glngamma,3,"Gp","lngamma(x)=logarithm of the gamma function of x.",NULL,0,NULL},
++{"localred",2,(void*)elllocalred,5,"GG","localred(e,p)=e being an ellliptic curve, returns [f,kod,[u,r,s,t],c], where f is the conductor's exponent, kod is the kodaira type for e at p, [u,r,s,t] is the change of variable needed to make e minimal at p, and c is the local Tamagawa number c_p.",NULL,0,NULL},
++{"log",1,(void*)glog,3,"Gp","log(x)=ln(x)=natural logarithm of x.",NULL,0,NULL},
++{"logagm",1,(void*)glog,3,"Gp","logagm(x)=natural logarithm of x, computed using agm (faster than log for more than a few hundred decimal digits).",NULL,0,NULL},
++{"lseriesell",4,(void*)lseriesell0,5,"GGGGp","lseriesell(e,s,N,A)=L-series at s of the elliptic curve e, where |N| is the conductor, sign(N) the sign of the functional equation, and A a cut-off point close to 1.",NULL,0,NULL},
++{"makebigbnf",1,(void*)bnfinit0,6,"GD0,L,DGp","makebigbnf(sbnf)=transforms small sbnf as output by smallbuchinit into a true big bnf.",NULL,0,NULL},
++{"mat",1,(void*)gtomat,8,"G","mat(x)=transforms any GEN x into a matrix.",NULL,0,NULL},
++{"matextract",3,(void*)extract0,8,"GGG","matextract(x,y,z)=extraction of the components of the matrix x according to the vector or masks y (for the rows) and z (for the columns) from left to right (1,2,4,8,...for the first, second, third, fourth, ...rows or columns).",NULL,0,NULL},
++{"mathell",2,(void*)mathell,5,"GGp","mathell(e,x)=gives the height matrix for vector of points x on elliptic curve e using theta functions.",NULL,0,NULL},
++{"matrix",49,(void*)matrice,9,"GGVVE","matrix(m,n,X,Y,expr)=mXn matrix of expression expr, the row variable X going  from 1 to m and the column variable Y going from 1 to n.",NULL,0,NULL},
++{"matrixqz",2,(void*)QM_minors_coprime,8,"GG","matrixqz(x,p)=transforms the rational or integral mxn (m>=n) matrix x into an integral matrix with gcd of maximal determinants equal to 1 if p is equal to 0, not divisible by p otherwise.",NULL,0,NULL},
++{"matrixqz2",1,(void*)QM_ImZ_hnf,8,"G","matrixqz2(x)=finds a basis of the intersection with Z^n of the lattice spanned by the columns of x.",NULL,0,NULL},
++{"matrixqz3",1,(void*)QM_ImQ_hnf,8,"G","matrixqz3(x)=finds a basis of the intersection with Z^n of the Q-vector space spanned by the columns of x.",NULL,0,NULL},
++{"matsize",1,(void*)matsize,2,"G","matsize(x)=number of rows and columns of the vector/matrix x as a 2-vector.",NULL,0,NULL},
++{"max",2,(void*)gmax,1,"GG","max(x,y)=maximum of x and y.",NULL,0,NULL},
++{"min",2,(void*)gmin,1,"GG","min(x,y)=minimum of x and y.",NULL,0,NULL},
++{"minideal",3,(void*)idealmin,6,"GGG","idealmin(nf,ix,vdir)=minimum of the ideal ix in the direction vdir in the number field nf.",NULL,0,NULL},
++{"minim",33,(void*)minim,8,"GGG","minim(x,bound,maxnum)=number of vectors of square norm <= bound, maximum norm and list of vectors for the integral and definite quadratic form x; minimal non-zero vectors if bound=0.",NULL,0,NULL},
++{"minim2",23,(void*)minim2,8,"GG","minim2(x,bound)=looks for vectors of square norm <= bound, return the first one and its norm.",NULL,0,NULL},
++{"mod",25,(void*)gmodulo,2,"GG","mod(x,y)=creates the integer x modulo y on the PARI stack.",NULL,0,NULL},
++{"modp",25,(void*)gmodulo,2,"GG","modp(x,y)=creates the integer x modulo y as a permanent object (on the heap).",NULL,0,NULL},
++{"modreverse",1,(void*)modreverse,6,"G","modreverse(x)=reverse polymod of the polymod x, if it exists.",NULL,0,NULL},
++{"modulargcd",2,(void*)QX_gcd,2,"GG","modulargcd(x,y)=gcd of the polynomials x and y using the modular method.",NULL,0,NULL},
++{"mu",1,(void*)gmoebius,4,"G","mu(x)=Moebius function of x.",NULL,0,NULL},
++{"newtonpoly",2,(void*)newtonpoly,6,"GG","newtonpoly(x,p)=Newton polygon of polynomial x with respect to the prime p.",NULL,0,NULL},
++{"nextprime",1,(void*)nextprime,4,"G","nextprime(x)=smallest prime number>=x.",NULL,0,NULL},
++{"nfdetint",2,(void*)nfdetint,6,"GG","nfdetint(nf,x)=multiple of the ideal determinant of the pseudo generating set x.",NULL,0,NULL},
++{"nfdiv",3,(void*)nfdiv,6,"GGG","nfdiv(nf,a,b)=element a/b in nf.",NULL,0,NULL},
++{"nfdiveuc",3,(void*)nfdiveuc,6,"GGG","nfdiveuc(nf,a,b)=gives algebraic integer q such that a-bq is small.",NULL,0,NULL},
++{"nfdivres",3,(void*)nfdivrem,6,"GGG","nfdivres(nf,a,b)=gives [q,r] such that r=a-bq is small.",NULL,0,NULL},
++{"nfhermite",2,(void*)nfhnf,6,"GG","nfhermite(nf,x)=if x=[A,I], gives a pseudo-basis of the module sum A_jI_j.",NULL,0,NULL},
++{"nfhermitemod",3,(void*)nfhnfmod,6,"GGG","nfhermitemod(nf,x,detx)=if x=[A,I], and detx is a multiple of the ideal determinant of x, gives a pseudo-basis of the module sum A_jI_j.",NULL,0,NULL},
++{"nfmod",3,(void*)nfmod,6,"GGG","nfmod(nf,a,b)=gives r such that r=a-bq is small with q algebraic integer.",NULL,0,NULL},
++{"nfmul",3,(void*)nfmul,6,"GGG","nfmul(nf,a,b)=element a.b in nf.",NULL,0,NULL},
++{"nfpow",3,(void*)nfpow,6,"GGG","nfpow(nf,a,k)=element a^k in nf.",NULL,0,NULL},
++{"nfreduce",3,(void*)nfreduce,6,"GGG","nfreduce(nf,a,id)=gives r such that a-r is the ideal id and r is small.",NULL,0,NULL},
++{"nfsmith",2,(void*)nfsnf,6,"GG","nfsmith(nf,x)=if x=[A,I,J], outputs [c_1,...c_n] Smith normal form of x.",NULL,0,NULL},
++{"nfval",30,(void*)nfval,6,"lGGG","nfval(nf,a,pr)=valuation of element a at the prime pr.",NULL,0,NULL},
++{"norm",1,(void*)gnorm,2,"G","norm(x)=norm of x.",NULL,0,NULL},
++{"norml2",1,(void*)gnorml2,2,"G","norml2(x)=square of the L2-norm of the vector x.",NULL,0,NULL},
++{"nucomp",3,(void*)nucomp,4,"GGG","nucomp(x,y,l)=composite of primitive positive definite quadratic forms x and y using nucomp and nudupl, where l=[|D/4|^(1/4)] is precomputed.",NULL,0,NULL},
++{"numdiv",1,(void*)numbdiv,4,"G","numdiv(x)=number of divisors of x.",NULL,0,NULL},
++{"numer",1,(void*)numer,2,"G","numer(x)=numerator of x.",NULL,0,NULL},
++{"nupow",2,(void*)nupow,4,"GG","nupow(x,n)=n-th power of primitive positive definite quadratic form x using nucomp and nudupl.",NULL,0,NULL},
++{"o",0,(void*)ggrando,7,"GD1,L,","o(a^b): p-adic or power series zero with precision given by b.",NULL,0,NULL},
++{"omega",1,(void*)gomega,4,"G","omega(x)=number of unrepeated prime divisors of x.",NULL,0,NULL},
++{"ordell",2,(void*)ellordinate,5,"GGp","ordell(e,x)=y-coordinates corresponding to x-ordinate x on elliptic curve e.",NULL,0,NULL},
++{"order",1,(void*)order,4,"G","order(x)=order of the integermod x in (Z/nZ)*.",NULL,0,NULL},
++{"orderell",2,(void*)orderell,5,"GG","orderell(e,p)=order of the point p on the elliptic curve e over Q, 0 if non-torsion.",NULL,0,NULL},
++{"ordred",1,(void*)ordred,6,"Gp","ordred(x)=reduction of the polynomial x, staying in the same order.",NULL,0,NULL},
++{"padicprec",20,(void*)padicprec,2,"lGG","padicprec(x,p)=absolute p-adic precision of object x.",NULL,0,NULL},
++{"pascal",99,(void*)matqpascal,8,"LDG","pascal(n)=pascal triangle of order n (n C-integer).",NULL,0,NULL},
++{"perf",10,(void*)perf,8,"G","perf(a)=rank of matrix of xx~ for x minimal vectors of a gram matrix a.",NULL,0,NULL},
++{"permutation",24,(void*)numtoperm,2,"LG","permutation(n,k)=permutation number k (mod n!) of n letters (n C-integer).",NULL,0,NULL},
++{"permutation2num",1,(void*)permtonum,2,"G","permutation2num(vect)=ordinal (between 1 and n!) of permutation vect.",NULL,0,NULL},
++{"pf",2,(void*)primeform,4,"GGp","pf(x,p)=returns the prime form whose first coefficient is p, of discriminant x.",NULL,0,NULL},
++{"phi",1,(void*)geulerphi,4,"G","phi(x)=Euler's totient function of x.",NULL,0,NULL},
++{"pi",0,(void*)mppi,3,"p","pi=pi()=the constant pi, with current precision.",NULL,0,NULL},
++{"pnqn",1,(void*)pnqn,4,"G","pnqn(x)=[p_n,p_{n-1};q_n,q_{n-1}] corresponding to the continued fraction x.",NULL,0,NULL},
++{"pointell",2,(void*)pointell,5,"GGp","pointell(e,z)=coordinates of point on the curve e corresponding to the complex number z.",NULL,0,NULL},
++{"polint",31,(void*)polint,7,"GGGD&","polint(xa,ya,x)=polynomial interpolation at x according to data vectors xa, ya.",NULL,0,NULL},
++{"polred",1,(void*)polred,6,"G","polred(x)=reduction of the polynomial x (gives minimal polynomials only).",NULL,0,NULL},
++{"polred2",1,(void*)polred2,6,"G","polred2(x)=reduction of the polynomial x (gives elements and minimal polynomials).",NULL,0,NULL},
++{"polredabs",1,(void*)polredabs,6,"G","polredabs(x)=a smallest generating polynomial of the number field for the T2 norm on the roots, with smallest index for the minimal T2 norm.",NULL,0,NULL},
++{"polredabs2",1,(void*)polredabs2,6,"G","polredabs2(x)=gives [pol,a] where pol is as in polredabs, and alpha is the element whose characteristic polynomial is pol.",NULL,0,NULL},
++{"polredabsall",1,(void*)polredabsall,6,"G","polredabsall(x)=complete list of the smallest generating polynomials of the number field for the T2 norm on the roots.",NULL,0,NULL},
++{"polredabsfast",0,(void*)suppressed,6,"G","polredabsfast(x)=a smallest generating polynomial of the number field for the T2 norm on the roots.",NULL,0,NULL},
++{"polredabsnored",1,(void*)polredabs,6,"G","polredabsnored(x)=a smallest generating polynomial of the number field for the T2 norm on the roots without initial polred.",NULL,0,NULL},
++{"polsym",21,(void*)polsym,7,"GL","polsym(x,n)=vector of symmetric powers of the roots of x up to n.",NULL,0,NULL},
++{"polvar",1,(void*)gpolvar,2,"G","polvar(x)=main variable of object x. Gives p for p-adic x, error for scalars.",NULL,0,NULL},
++{"poly",14,(void*)gtopoly,2,"Gn","poly(x,v)=convert x (usually a vector or a power series) into a polynomial with variable v, starting with the leading coefficient.",NULL,0,NULL},
++{"polylog",24,(void*)gpolylog,3,"LGp","polylog(m,x)=m-th polylogarithm of x.",NULL,0,NULL},
++{"polylogd",24,(void*)polylogd,3,"LGp","polylogd(m,x)=D_m~-modified m-th polylog of x.",NULL,0,NULL},
++{"polylogdold",24,(void*)polylogdold,3,"LGp","polylogdold(m,x)=D_m-modified m-th polylog of x.",NULL,0,NULL},
++{"polylogp",24,(void*)polylogp,3,"LGp","polylogp(m,x)=P_m-modified m-th polylog of x.",NULL,0,NULL},
++{"polyrev",14,(void*)gtopolyrev,2,"Gn","polyrev(x,v)=convert x (usually a vector or a power series) into a polynomial with variable v, starting with the constant term.",NULL,0,NULL},
++{"polzag",21,(void*)polzag,9,"LL","polzag(n,m)=Zagier's polynomials of index n,m.",NULL,0,NULL},
++{"powell",3,(void*)powell,5,"GGGp","powell(e,x,n)=n times the point x on elliptic curve e (n in Z).",NULL,0,NULL},
++{"powrealraw",23,(void*)qfrpowraw,4,"GL","powrealraw(x,n)=n-th power without reduction of the binary quadratic form x of positive discriminant.",NULL,0,NULL},
++{"prec",21,(void*)gprec,2,"GL","prec(x,n)=change the precision of x to be n (n C-integer).",NULL,0,NULL},
++{"precision",1,(void*)precision0,2,"GD0,L,","precision(x)=real precision of object x.",NULL,0,NULL},
++{"prime",11,(void*)prime,4,"L","prime(n)=returns the n-th prime (n C-integer).",NULL,0,NULL},
++{"primedec",2,(void*)idealprimedec,6,"GG","primedec(nf,p)=prime ideal decomposition of the prime number p in the number field nf as a vector of 5 component vectors [p,a,e,f,b] representing the prime ideals pZ_K+a.Z_K, e,f as usual, a as vector of components on the  integral basis, b Lenstra's constant.",NULL,0,NULL},
++{"primes",11,(void*)primes,4,"L","primes(n)=returns the vector of the first n primes (n C-integer).",NULL,0,NULL},
++{"primroot",1,(void*)znprimroot0,4,"G","primroot(n)=returns a primitive root of n when it exists.",NULL,0,NULL},
++{"principalideal",2,(void*)principalideal,6,"GG","principalideal(nf,x)=returns the principal ideal generated by the algebraic number x in the number field nf.",NULL,0,NULL},
++{"principalidele",2,(void*)suppressed,6,"GG","principalidele(nf,x)=returns the principal idele generated by the algebraic number x in the number field nf.",NULL,0,NULL},
++{"prod",48,(void*)prod0,9,"GV=GGE","prod(x,X=a,b,expr)=x times the product (X runs from a to b) of expression.",NULL,0,NULL},
++{"prodeuler",37,(void*)prodeuler0,9,"V=GGEp","prodeuler(X=a,b,expr)=Euler product (X runs over the primes between a and b) of real or complex expression.",NULL,0,NULL},
++{"prodinf",27,(void*)prodinf0,9,"V=GED0,L,p","prodinf(X=a,expr)=infinite product (X goes from a to infinity) of real or complex expression.",NULL,0,NULL},
++{"prodinf1",27,(void*)prodinf0,9,"V=GED1,L,p","prodinf1(X=a,expr)=infinite product (X goes from a to infinity) of real or complex 1+expression.",NULL,0,NULL},
++{"psi",1,(void*)gpsi,3,"Gp","psi(x)=psi-function at x.",NULL,0,NULL},
++{"qfi",3,(void*)qfi,4,"GGG","qfi(a,b,c)=binary quadratic form a*x^2+b*x*y+c*y^2 with b^2-4*a*c<0.",NULL,0,NULL},
++{"qfr",4,(void*)qfr,4,"GGGG","qfr(a,b,c,d)=binary quadratic form a*x^2+b*x*y+c*y^2 with b^2-4*a*c>0 and distance d.",NULL,0,NULL},
++{"quaddisc",1,(void*)quaddisc,4,"G","quaddisc(x)=discriminant of the quadratic field Q(sqrt(x)).",NULL,0,NULL},
++{"quadgen",1,(void*)quadgen,2,"G","quadgen(x)=standard generator of quadratic order of discriminant x.",NULL,0,NULL},
++{"quadpoly",1,(void*)quadpoly,2,"G","quadpoly(x)=quadratic polynomial corresponding to the discriminant x.",NULL,0,NULL},
++{"random",0,(void*)genrand,2,"DG","random()=random integer between 0 and 2^31-1.",NULL,0,NULL},
++{"rank",10,(void*)rank,8,"lG","rank(x)=rank of the matrix x.",NULL,0,NULL},
++{"rayclassno",2,(void*)bnrclassno,6,"GG","rayclassno(bnf,x)=ray class number of the module x for the big number field bnf. Faster than buchray if only the ray class number is wanted.",NULL,0,NULL},
++{"rayclassnolist",2,(void*)bnrclassnolist,6,"GG","rayclassnolist(bnf,liste)=if listes is as output by idealisunit or similar, gives list of corresponding ray class numbers.",NULL,0,NULL},
++{"real",1,(void*)greal,2,"G","real(x)=real part of x.",NULL,0,NULL},
++{"recip",1,(void*)polrecip,7,"G","recip(x)=reciprocal polynomial of x.",NULL,0,NULL},
++{"redimag",1,(void*)redimag,4,"G","redimag(x)=reduction of the binary quadratic form x with D<0.",NULL,0,NULL},
++{"redreal",1,(void*)redreal,4,"G","redreal(x)=reduction of the binary quadratic form x with D>0.",NULL,0,NULL},
++{"redrealnod",2,(void*)redrealnod,4,"GG","redrealnod(x,sq)=reduction of the binary quadratic form x with D>0 without distance function where sq=[sqrt D].",NULL,0,NULL},
++{"reduceddisc",1,(void*)reduceddiscsmith,7,"G","reduceddisc(f)=vector of elementary divisors of Z[a]/f'(a)Z[a], where a is a root of the polynomial f.",NULL,0,NULL},
++{"regula",1,(void*)quadregulator,4,"Gp","regula(x)=regulator of the real quadratic field of discriminant x.",NULL,0,NULL},
++{"reorder",0,(void*)suppressed,11,"G","reorder(x)=THIS FUNCTION HAS BEEN SUPPRESSED.",NULL,0,NULL},
++{"resultant",2,(void*)resultant_all,7,"GGD&","resultant(x,y)=resultant of the polynomials x and y with exact entries.",NULL,0,NULL},
++{"resultant2",2,(void*)resultant2,7,"GG","resultant2(x,y)=resultant of the polynomials x and y.",NULL,0,NULL},
++{"reverse",1,(void*)recip,7,"G","reverse(x)=reversion of the power series x.",NULL,0,NULL},
++{"rhoreal",1,(void*)rhoreal,4,"G","rhoreal(x)=single reduction step of the binary quadratic form x of positive discriminant.",NULL,0,NULL},
++{"rhorealnod",2,(void*)rhorealnod,4,"GG","rhorealnod(x,sq)=single reduction step of the binary quadratic form x with D>0 without distance function where sq=[sqrt D].",NULL,0,NULL},
++{"rndtoi",13,(void*)grndtoi,2,"Gf","rndtoi(x)=take the nearest integer to all the coefficients of x, without taking into account loss of integer part precision.",NULL,0,NULL},
++{"rnfbasis",2,(void*)rnfbasis,6,"GG","rnfbasis(bnf,order)=given an order as output by rnfpseudobasis or rnfsteinitz, gives either a basis of the order if it is free, or an n+1-element generating set.",NULL,0,NULL},
++{"rnfdiscf",2,(void*)rnfdiscf,6,"GG","rnfdiscf(nf,pol)=given a pol with coefficients in nf, gives a 2-component vector [D,d], where D is the relative ideal discriminant, and d is the relative discriminant in nf^*/nf*^2.",NULL,0,NULL},
++{"rnfequation",2,(void*)rnfequation,6,"GG","rnfequation(nf,pol)=given a pol with coefficients in nf, gives the absolute equation of the number field defined by pol.",NULL,0,NULL},
++{"rnfequation2",2,(void*)rnfequation2,6,"GG","rnfequation2(nf,pol)=given a pol with coefficients in nf, gives [apol,th], where apol is the absolute equation of the number field defined by pol and th expresses the root of nf[1] in terms of the root of apol.",NULL,0,NULL},
++{"rnfhermitebasis",2,(void*)rnfhnfbasis,6,"GG","rnfhermitebasis(bnf,order)=given an order as output by rnfpseudobasis, gives either a true HNF basis of the order if it exists, zero otherwise.",NULL,0,NULL},
++{"rnfisfree",20,(void*)rnfisfree,6,"lGG","rnfisfree(bnf,order)=given an order as output by rnfpseudobasis or rnfsteinitz, outputs true (1) or false (0) according to whether the order is free or not.",NULL,0,NULL},
++{"rnflllgram",3,(void*)rnflllgram,6,"GGG","rnflllgram(nf,pol,order)=given a pol with coefficients in nf and an order as output by rnfpseudobasis or similar, gives [[neworder],U], where neworder is a reduced order and U is the unimodular transformation matrix.",NULL,0,NULL},
++{"rnfpolred",2,(void*)rnfpolred,6,"GG","rnfpolred(nf,pol)=given a pol with coefficients in nf, finds a list of polynomials defining some subfields, hopefully simpler.",NULL,0,NULL},
++{"rnfpseudobasis",2,(void*)rnfpseudobasis,6,"GG","rnfpseudobasis(nf,pol)=given a pol with coefficients in nf, gives a 4-component vector [A,I,D,d] where [A,I] is a pseudo basis of the maximal order in HNF on the power basis, D is the relative ideal discriminant, and d is the relative discriminant in nf^*/nf*^2.",NULL,0,NULL},
++{"rnfsteinitz",2,(void*)rnfsteinitz,6,"GG","rnfsteinitz(nf,order)=given an order as output by rnfpseudobasis, gives [A,I,..] where (A,I) is a pseudo basis where all the ideals except perhaps the last are trivial.",NULL,0,NULL},
++{"rootmod",2,(void*)rootmod,7,"GG","rootmod(x,p)=roots mod p of the polynomial x.",NULL,0,NULL},
++{"rootmod2",2,(void*)rootmod2,7,"GG","rootmod2(x,p)=roots mod p of the polynomial x, when p is small.",NULL,0,NULL},
++{"rootpadic",32,(void*)rootpadic,7,"GGL","rootpadic(x,p,r)=p-adic roots of the polynomial x to precision r.",NULL,0,NULL},
++{"roots",1,(void*)roots,7,"Gp","roots(x)=roots of the polynomial x using Schonhage's method modified by Gourdon.",NULL,0,NULL},
++{"rootsof1",1,(void*)rootsof1,6,"G","rootsof1(nf)=number of roots of unity and primitive root of unity in the number field nf.",NULL,0,NULL},
++{"rootsold",1,(void*)roots0,7,"GD1,L,p","rootsold(x)=roots of the polynomial x using a modified Newton's method.",NULL,0,NULL},
++{"round",1,(void*)ground,2,"G","round(x)=take the nearest integer to all the coefficients of x.",NULL,0,NULL},
++{"rounderror",10,(void*)rounderror,2,"lG","rounderror(x)=maximum error found in rounding x.",NULL,0,NULL},
++{"series",14,(void*)gtoser,2,"Gn","series(x,v)=convert x (usually a vector) into a power series with variable v, starting with the constant coefficient.",NULL,0,NULL},
++{"set",1,(void*)gtoset,8,"G","set(x)=convert x into a set, i.e. a row vector with strictly increasing coefficients.",NULL,0,NULL},
++{"setintersect",2,(void*)setintersect,8,"GG","setintersect(x,y)=intersection of the sets x and y.",NULL,0,NULL},
++{"setminus",2,(void*)setminus,8,"GG","setminus(x,y)=set of elements of x not belonging to y.",NULL,0,NULL},
++{"setrand",11,(void*)setrand,2,"vG","setrand(n)=reset the seed of the random number generator to n.",NULL,0,NULL},
++{"setsearch",20,(void*)setsearch,8,"lGGD0,L,","setsearch(x,y)=looks if y belongs to the set x. Returns 0 if it is not, otherwise returns the index j such that y==x[j].",NULL,0,NULL},
++{"setunion",2,(void*)setunion,8,"GG","setunion(x,y)=union of the sets x and y.",NULL,0,NULL},
++{"shift",21,(void*)gshift,1,"GL","shift(x,n)=shift x left n bits if n>=0, right -n bits if n<0.",NULL,0,NULL},
++{"shiftmul",21,(void*)gmul2n,1,"GL","shiftmul(x,n)=multiply x by 2^n (n>=0 or n<0).",NULL,0,NULL},
++{"sigma",1,(void*)sumdiv,4,"G","sigma(x)=sum of the divisors of x.",NULL,0,NULL},
++{"sigmak",24,(void*)sigmak0,4,"LG","sigmak(k,x)=sum of the k-th powers of the divisors of x (k C-integer).",NULL,0,NULL},
++{"sign",10,(void*)gsigne,1,"iG","sign(x)=sign of x, of type integer, real or fraction.",NULL,0,NULL},
++{"signat",1,(void*)qfsign,8,"G","signat(x)=signature of the symmetric matrix x.",NULL,0,NULL},
++{"signunit",1,(void*)signunits,6,"G","signunit(bnf)=matrix of signs of the real embeddings of the system of fundamental units found by buchinit.",NULL,0,NULL},
++{"simplefactmod",2,(void*)simplefactmod,4,"GG","simplefactmod(x,p)=same as factmod except that only the degrees of the irreducible factors are given.",NULL,0,NULL},
++{"simplify",1,(void*)simplify,2,"G","simplify(x)=simplify the object x as much as possible.",NULL,0,NULL},
++{"sin",1,(void*)gsin,3,"Gp","sin(x)=sine of x.",NULL,0,NULL},
++{"sinh",1,(void*)gsh,3,"Gp","sinh(x)=hyperbolic sine of x.",NULL,0,NULL},
++{"size",10,(void*)sizedigit,2,"lG","size(x)=maximum number of decimal digits minus one of (the coefficients of) x.",NULL,0,NULL},
++{"smallbasis",13,(void*)nfbasis0,6,"GD1,L,DG","smallbasis(x)=integral basis of the field Q[a], where a is a root of the polynomial x where one assumes that no square of a prime>primelimit divides the discriminant of x.",NULL,0,NULL},
++{"smallbuchinit",93,(void*)smallbuchinit,6,BUCH_PROTO,"smallbuchinit(pol)=small buchinit, which can be converted to a big one using makebigbnf.",NULL,0,NULL},
++{"smalldiscf",1,(void*)nfdisc0,6,"GD1,L,DG","smalldiscf(x)=discriminant of the number field defined by the polynomial x where one assumes that no square of a prime>primelimit divides the discriminant of x.",NULL,0,NULL},
++{"smallfact",1,(void*)boundfact,4,"GD0,L,","smallfact(x)=partial factorization of the integer x (using only the stored primes).",NULL,0,NULL},
++{"smallinitell",1,(void*)smallellinit,5,"Gp","smallinitell(x)=x being the vector [a1,a2,a3,a4,a6], gives the vector: [a1,a2,a3,a4,a6,b2,b4,b6,b8,c4,c6,delta,j].",NULL,0,NULL},
++{"smallpolred",1,(void*)smallpolred,6,"G","smallpolred(x)=partial reduction of the polynomial x (gives minimal polynomials only).",NULL,0,NULL},
++{"smallpolred2",1,(void*)smallpolred2,6,"G","smallpolred2(x)=partial reduction of the polynomial x (gives elements and minimal polynomials).",NULL,0,NULL},
++{"smith",1,(void*)smith,8,"G","smith(x)=Smith normal form (i.e. elementary divisors) of the matrix x, expressed as a vector.",NULL,0,NULL},
++{"smith2",1,(void*)smithall,8,"G","smith2(x)=gives a three element vector [u,v,d] where u and v are square unimodular matrices such that d=u*x*v=diagonal(smith(x)).",NULL,0,NULL},
++{"smithclean",1,(void*)smithclean,8,"G","smithclean(z)=if z=[u,v,d] as output by smith2, removes from u,v,d the rows and columns corresponding to entries equal to 1 in d.",NULL,0,NULL},
++{"smithpol",1,(void*)gsmith,8,"G","smithpol(x)=Smith normal form (i.e. elementary divisors) of the matrix x with polynomial coefficients, expressed as a vector.",NULL,0,NULL},
++{"solve",37,(void*)zbrent0,9,"V=GGEp","solve(X=a,b,expr)=real root of expression expr (X between a and b), where expr(a)*expr(b)<=0.",NULL,0,NULL},
++{"sort",1,(void*)sort,8,"G","sort(x)=sort in ascending order of the vector x.",NULL,0,NULL},
++{"sqr",1,(void*)gsqr,3,"G","sqr(x)=square of x. NOT identical to x*x.",NULL,0,NULL},
++{"sqred",1,(void*)qfgaussred,8,"G","sqred(x)=square reduction of the (symmetric) matrix x ( returns a square matrix whose i-th diagonal term is the coefficient of the i-th square in which the coefficient of the i-th variable is 1).",NULL,0,NULL},
++{"sqrt",1,(void*)gsqrt,3,"Gp","sqrt(x)=square root of x.",NULL,0,NULL},
++{"srgcd",2,(void*)RgX_gcd,7,"GG","srgcd(x,y)=polynomial gcd of x and y using the subresultant algorithm.",NULL,0,NULL},
++{"sturm",10,(void*)sturm0,7,"lG","sturm(x)=number of real roots of the polynomial x.",NULL,0,NULL},
++{"sturmpart",30,(void*)sturmpart,7,"lGGG","sturmpart(x,a,b)=number of real roots of the polynomial x in the interval (a,b].",NULL,0,NULL},
++{"subcyclo",2,(void*)polsubcyclo,6,"LLDn","subcyclo(p,d)=finds an equation for the d-th degree subfield of Q(zeta_p), where p must be a prime power.",NULL,0,NULL},
++{"subell",3,(void*)subell,5,"GGGp","subell(e,z1,z2)=difference of the points z1 and z2 on elliptic curve e.",NULL,0,NULL},
++{"subst",26,(void*)gsubst,7,"GnG","subst(x,y,z)=in expression x, replace the variable y by the expression z.",NULL,0,NULL},
++{"sum",48,(void*)sum0,9,"GV=GGE","sum(x,X=a,b,expr)=x plus the sum (X goes from a to b) of expression expr.",NULL,0,NULL},
++{"sumalt",27,(void*)sumalt0,9,"V=GED0,L,p","sumalt(X=a,expr)=Villegas-Zagier's acceleration of alternating series expr, X starting at a.",NULL,0,NULL},
++{"sumalt2",27,(void*)sumalt0,9,"V=GED1,L,p","sumalt2(X=a,expr)=Cohen-Villegas-Zagier's acceleration of alternating series expr, X starting at a.",NULL,0,NULL},
++{"suminf",27,(void*)suminf0,9,"V=GEp","suminf(X=a,expr)=infinite sum (X goes from a to infinity) of real or complex expression expr.",NULL,0,NULL},
++{"sumpos",27,(void*)sumpos0,9,"V=GED0,L,p","sumpos(X=a,expr)=sum of positive series expr, the formal variable X starting at a.",NULL,0,NULL},
++{"sumpos2",27,(void*)sumpos0,9,"V=GED1,L,p","sumpos2(X=a,expr)=sum of positive series expr, the formal variable X starting at a, using Zagier's polynomials.",NULL,0,NULL},
++{"supplement",1,(void*)suppl,8,"G","supplement(x)=supplement the columns of the matrix x to an invertible matrix.",NULL,0,NULL},
++{"sylvestermatrix",2,(void*)sylvestermatrix,7,"GG","sylvestermatrix(x,y)=forms the sylvester matrix associated to the two polynomials x and y. Warning: the polynomial coefficients are in columns, not in rows.",NULL,0,NULL},
++{"tan",1,(void*)gtan,3,"Gp","tan(x)=tangent of x.",NULL,0,NULL},
++{"tanh",1,(void*)gth,3,"Gp","tanh(x)=hyperbolic tangent of x.",NULL,0,NULL},
++{"taniyama",1,(void*)elltaniyama,5,"GP","taniyama(e)=modular parametrization of elliptic curve e.",NULL,0,NULL},
++{"taylor",12,(void*)tayl,7,"GnP","taylor(x,y)=taylor expansion of x with respect to the main variable of y.",NULL,0,NULL},
++{"tchebi",11,(void*)polchebyshev,7,"LD1,L,Dn","tchebi(n)=Tchebitcheff polynomial of degree n (n C-integer).",NULL,0,NULL},
++{"teich",1,(void*)teich,3,"Gp","teich(x)=teichmuller character of p-adic number x.",NULL,0,NULL},
++{"theta",2,(void*)theta,3,"GGp","theta(q,z)=Jacobi sine theta-function.",NULL,0,NULL},
++{"thetanullk",21,(void*)thetanullk,3,"GLp","thetanullk(q,k)=k'th derivative at z=0 of theta(q,z).",NULL,0,NULL},
++{"threetotwo",0,(void*)suppressed,6,"GGGG","threetotwo(nf,a,b,c)=returns a 3-component vector [d,e,U] such that U is a unimodular 3x3 matrix with algebraic integer coefficients such that [a,b,c]*U=[0,d,e].",NULL,0,NULL},
++{"threetotwo2",0,(void*)suppressed,6,"GGGG","threetotwo2(nf,a,b,c)=returns a 3-component vector [d,e,U] such that U is a unimodular 3x3 matrix with algebraic integer coefficients such that [a,b,c]*U=[0,d,e].",NULL,0,NULL},
++{"torsell",1,(void*)elltors,5,"Gp","torsell(e)=torsion subgroup of elliptic curve e: order, structure, generators.",NULL,0,NULL},
++{"trace",1,(void*)gtrace,8,"G","trace(x)=trace of x.",NULL,0,NULL},
++{"trans",1,(void*)gtrans,8,"G","trans(x)=x~=transpose of x.",NULL,0,NULL},
++{"trunc",1,(void*)gtrunc,2,"G","trunc(x)=truncation of x;when x is a power series,take away the O(X^).",NULL,0,NULL},
++{"tschirnhaus",1,(void*)tschirnhaus,6,"G","tschirnhaus(x)=random Tschirnhausen transformation of the polynomial x.",NULL,0,NULL},
++{"twototwo",0,(void*)suppressed,6,"GGG","twototwo(nf,a,b)=returns a 3-component vector [d,e,U] such that U is a unimodular 2x2 matrix with algebraic integer coefficients such that [a,b]*U=[d,e] and d,e are hopefully smaller.",NULL,0,NULL},
++{"unit",1,(void*)quadunit,4,"G","unit(x)=fundamental unit of the quadratic field of discriminant x where x must be positive.",NULL,0,NULL},
++{"until",0,(void*)untilpari,11,"vEI","until(a,seq): evaluate the expression sequence seq until a is nonzero.",NULL,0,NULL},
++{"valuation",20,(void*)ggval,2,"lGG","valuation(x,p)=valuation of x with respect to p.",NULL,0,NULL},
++{"vec",1,(void*)gtovec,2,"G","vec(x)=transforms the object x into a vector. Used mainly if x is a polynomial or a power series.",NULL,0,NULL},
++{"vecindexsort",2,(void*)indexsort,8,"G","vecindexsort(x): indirect sorting of the vector x.",NULL,0,NULL},
++{"veclexsort",2,(void*)lexsort,8,"G","veclexsort(x): sort the elements of the vector x in ascending lexicographic order.",NULL,0,NULL},
++{"vecmax",1,(void*)vecmax,2,"G","vecmax(x)=maximum of the elements of the vector/matrix x.",NULL,0,NULL},
++{"vecmin",1,(void*)vecmin,2,"G","vecmin(x)=minimum of the elements of the vector/matrix x.",NULL,0,NULL},
++{"vecsort",2,(void*)vecsort0,8,"GGD0,L,","vecsort(x,k)=sorts the vector of vector (or matrix) x according to the value of its k-th component.",NULL,0,NULL},
++{"vector",22,(void*)vecteur,9,"GVE","vector(n,X,expr)=row vector with n components of expression expr (X ranges from 1 to n).",NULL,0,NULL},
++{"vvector",22,(void*)vvecteur,9,"GVE","vvector(n,X,expr)=column vector with n components of expression expr (X ranges from 1 to n).",NULL,0,NULL},
++{"weipell",1,(void*)weipell,5,"GP","weipell(e)=formal expansion in x=z of Weierstrass P function.",NULL,0,NULL},
++{"wf",1,(void*)weberf,3,"Gp","weberf(x)=Weber's f function of x (j=(f^24-16)^3/f^24).",NULL,0,NULL},
++{"wf2",1,(void*)weberf2,3,"Gp","weberf2(x)=Weber's f2 function of x (j=(f2^24+16)^3/f2^24).",NULL,0,NULL},
++{"while",0,(void*)whilepari,11,"vEI","while(a,seq): while a is nonzero evaluate the expression sequence seq. Otherwise 0.",NULL,0,NULL},
++{"zell",2,(void*)zell,5,"GGp","zell(e,z)=In the complex case, lattice point corresponding to the point z on the elliptic curve e.",NULL,0,NULL},
++{"zeta",1,(void*)gzeta,3,"Gp","zeta(s)=Riemann zeta function at s.",NULL,0,NULL},
++{"zetak",2,(void*)gzetak,6,"GGp","zetak(nfz,s)=Dedekind zeta function of the number field nfz at s, where nfz is the vector computed by initzeta (NOT by nfinit).",NULL,0,NULL},
++{"zideallog",3,(void*)ideallog,6,"GGG","zideallog(nf,x,bid)=if bid is a big ideal as given by zidealstarinit or zidealstarinitgen , gives the vector of exponents on the generators bid[2][3] (even if these generators have not been computed).",NULL,0,NULL},
++{"zidealstar",2,(void*)idealstar0,6,"GGD0,L,","zidealstar(nf,I)=3-component vector v, giving the structure of (Z_K/I)^*. v[1] is  the order (i.e. phi(I)), v[2] is a vector of cyclic components, and v[3]  is a vector giving the corresponding generators.",NULL,0,NULL},
++{"zidealstarinit",2,(void*)idealstar0,6,"GGD1,L,","zidealstarinit(nf,I)=6-component vector [I,v,fa,f2,U,V] where v is as in zidealstar without the generators, fa is the prime ideal factorisation of I and f2, U and V are technical but essential to work in (Z_K/I)^*.",NULL,0,NULL},
++{"zidealstarinitgen",2,(void*)idealstar0,6,"GGD2,L,","zidealstarinitgen(nf,I)=6-component vector [I,v,fa,f2,U,V] where v is as in zidealstar fa is the prime ideal factorisation of I and f2, U and V are technical but essential to work in (Z_K/I)^*.",NULL,0,NULL},
++{"znstar",1,(void*)znstar,4,"G","znstar(n)=3-component vector v, giving the structure of (Z/nZ)^*. v[1] is  the order (i.e. phi(n)), v[2] is a vector of cyclic components, and v[3]  is a vector giving the corresponding generators.",NULL,0,NULL},
+ 
+-{NULL,0,NULL,0,NULL,NULL} /* sentinel */
++{NULL,0,NULL,0,NULL,NULL,NULL,0,NULL} /* sentinel */
+ };
diff --git a/pari-2.5.1-optflags.patch b/pari-2.5.1-optflags.patch
new file mode 100644
index 0000000..d1d32ca
--- /dev/null
+++ b/pari-2.5.1-optflags.patch
@@ -0,0 +1,11 @@
+--- config/get_cc
++++ config/get_cc
+@@ -120,7 +120,7 @@
+   esac
+   OPTFLAGS="$OPTFLAGS $warn"
+   case "$__gnuc__" in
+-    2.95.[3-9]*|[3-9].*) OPTFLAGS="$OPTFLAGS -fno-strict-aliasing";;
++    2.95.[3-9]*|[3-9].*) OPTFLAGS="@OPTFLAGS@ -fno-strict-aliasing";;
+   esac
+   KERNELCFLAGS=-funroll-loops
+ 
diff --git a/pari-2.5.1-reorder-init-opts.patch b/pari-2.5.1-reorder-init-opts.patch
new file mode 100644
index 0000000..5248b22
--- /dev/null
+++ b/pari-2.5.1-reorder-init-opts.patch
@@ -0,0 +1,14 @@
+Index: src/language/init.c
+===================================================================
+--- src/language/init.c	(revision 13228)
++++ src/language/init.c	(working copy)
+@@ -731,8 +731,8 @@
+   pari_stackcheck_init(&u);
+   if ((init_opts&INIT_DFTm)) {
+     GP_DATA = default_gp_data();
++    pari_init_defaults();
+     gp_expand_path(GP_DATA->path);
+-    pari_init_defaults();
+   }
+ 
+   if ((init_opts&INIT_SIGm)) pari_sig_init(pari_sighandler);
diff --git a/pari-2.3.4-xdgopen.patch b/pari-2.5.1-xdgopen.patch
similarity index 59%
rename from pari-2.3.4-xdgopen.patch
rename to pari-2.5.1-xdgopen.patch
index d8720c3..34a742d 100644
--- a/pari-2.3.4-xdgopen.patch
+++ b/pari-2.5.1-xdgopen.patch
@@ -1,6 +1,6 @@
---- pari-2.3.4/doc/gphelp.in	2010-05-31 19:39:57.000000000 +0200
-+++ pari-2.3.4/doc/gphelp.in	2010-05-31 19:40:20.000000000 +0200
-@@ -47,8 +47,8 @@ $datadir= "@datadir@";
+--- doc/gphelp.in
++++ doc/gphelp.in
+@@ -47,8 +47,8 @@
  # no expanded material (@key@) below
  $wwwsite= "http://pari.math.u-bordeaux.fr/";
  
@@ -10,4 +10,4 @@
 +$xdviref = $ENV{GPXDVIREF} || "$xdvi";
  $gzip = "gzip";
  $zcat = "$gzip -dc";
- $docdir = &get_docdir();
+ $bzip = "bzip2";
diff --git a/pari.spec b/pari.spec
index cbf0a38..57c93da 100644
--- a/pari.spec
+++ b/pari.spec
@@ -1,45 +1,46 @@
-# Note: perl-Math-Pari has a strict version dependency on pari, and
-# needs to be updated simultaneously with pari in the event of a version change
-
 Name:           pari
-Version:        2.3.5
-Release:        4%{?dist}
+Version:        2.5.1
+Release:        1%{?dist}
 Summary:        Number Theory-oriented Computer Algebra System
 Group:          System Environment/Libraries
 # No version is specified
 License:        GPL+
 URL:            http://pari.math.u-bordeaux.fr/
-Source0:        http://pari.math.u-bordeaux.fr/pub/pari/unix/OLD/pari-%{version}.tar.gz
-Source1:        pari-init.el
-Source2:        gp.desktop
-Patch0:         pari-2.3.4-xdgopen.patch
-BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -nu)
-BuildRequires:  emacs
+Source0:        http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-%{version}.tar.gz
+Source1:        gp.desktop
+Patch0:         pari-2.5.1-xdgopen.patch
+Patch1:         pari-2.5.1-optflags.patch
+Patch10:        pari-2.5.1-missing-field-init.patch
+Patch11:        pari-2.5.1-declaration-not-prototype.patch
+Patch12:        pari-2.5.1-clobbered.patch
+Patch13:        pari-2.5.1-gcc47.patch
+Patch14:        pari-2.5.1-fsf-address.patch
+Patch15:        pari-2.5.1-reorder-init-opts.patch
 BuildRequires:  readline-devel
 BuildRequires:  gmp-devel
 BuildRequires:  tex(tex)
 BuildRequires:  tex(dvips)
 BuildRequires:  desktop-file-utils
 BuildRequires:  libX11-devel
+BuildRequires:  xmkmf
+# Test suite requirements
+BuildRequires:  pari-elldata
+BuildRequires:  pari-galdata
+BuildRequires:  pari-seadata
 
 # Avoid doc-file dependencies and provides
-%{?filter_setup:
- %filter_provides_in %{_datadir}/pari/PARI/
- %filter_requires_in %{_datadir}/pari/PARI/
- %filter_setup
- }
+%global __provides_exclude_from ^%{_datadir}/pari/PARI/
+%global __requires_exclude_from ^%{_datadir}/pari/PARI/
 
 %description
-PARI is a widely used computer algebra system designed for fast
-computations in number theory (factorizations, algebraic number
-theory, elliptic curves...), but also contains a large number of other
-useful functions to compute with mathematical entities such as
-matrices, polynomials, power series, algebraic numbers, etc., and a
-lot of transcendental functions.
+PARI is a widely used computer algebra system designed for fast computations in
+number theory (factorizations, algebraic number theory, elliptic curves...),
+but also contains a large number of other useful functions to compute with
+mathematical entities such as matrices, polynomials, power series, algebraic
+numbers, etc., and a lot of transcendental functions.
 
 This package contains the shared libraries. The interactive
-calculator PARI/GP is in package %{name}-gp.
-
+calculator PARI/GP is in package pari-gp.
 
 %package devel
 Summary:        Header files and libraries for PARI development
@@ -49,11 +50,11 @@ Requires:       %{name} = %{version}-%{release}
 %description devel
 Header files and libraries for PARI development.
 
-
 %package gp
 Summary:        PARI calculator
 Group:          Applications/Engineering
 Requires:       %{name} = %{version}-%{release}
+Requires:       bzip2
 Requires:       gzip
 Requires:       xdg-utils
 Requires:       mimehandler(application/x-dvi)
@@ -63,27 +64,38 @@ PARI/GP is an advanced programmable calculator, which computes
 symbolically as long as possible, numerically where needed, and
 contains a wealth of number-theoretic functions.
 
+%prep
+%setup -q
 
-%package emacs
-Summary:        Emacs mode for PARI/GP
-Group:          Applications/Engineering
-Requires:       emacs-common
-Requires:       %{name}-gp = %{version}-%{release}
+# Use xdg-open rather than xdvi to display DVI files (#530565)
+%patch0
 
-%description emacs
-Emacs mode for PARI/GP.
+# Use our optflags, not upstream's
+%patch1
+sed -i -e 's|@OPTFLAGS@|%{optflags} -Wall -Wextra -Wstrict-prototypes|' config/get_cc
 
+# Fix compiler warnings
+# http://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=1316
+%patch10
+%patch11
+%patch12
 
-%prep
-%setup -q
+# Fix scoping issue that manifests as a test suite failure with gcc 4.7.x and -ftree-dse
+# http://bugzilla.redhat.com/821918
+# http://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=1314
+%patch13
 
-# Use xdg-open rather than xdvi to display DVI files (#530565)
-%patch0 -p1 -b .xdgopen
+# Update FSF address
+# http://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=1315
+%patch14 -p1 -b .fsf
+touch --reference=src/language/parse.y.fsf src/language/parse.y
 
-sed -i "s|runpathprefix='.*'|runpathprefix=''|" config/get_ld
-sed -e 's|@DATADIR@|%{_datadir}|' %{SOURCE1} > pari-init.el
-sed -e 's|@DATADIR@|%{_datadir}|' %{SOURCE2} > gp.desktop
+# Call pari_init_defaults() before gp_expand_path()
+# http://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=1264
+%patch15
 
+# Avoid unwanted rpaths
+sed -i "s|runpathprefix='.*'|runpathprefix=''|" config/get_ld
 
 %build
 ./Configure \
@@ -95,81 +107,94 @@ sed -e 's|@DATADIR@|%{_datadir}|' %{SOURCE2} > gp.desktop
     --datadir=%{_datadir}/pari \
     --includedir=%{_includedir} \
     --with-gmp
-make %{?_smp_mflags} gp CFLAGS="-fPIC %{optflags} -fno-strict-aliasing"
-
-
-%check
-make dobench
-make dotest-compat
-make dotest-intnum
-make dotest-qfbsolve
-make dotest-rfrac
-make dotest-round4
-
+make %{?_smp_mflags} gp
 
 %install
-rm -rf %{buildroot}
-make install DESTDIR=%{buildroot} STRIP=/bin/true
+make install \
+  DESTDIR=%{buildroot} \
+  INSTALL="install -p" \
+  STRIP=/bin/true
 
-# we move pari.cfg to the docdir
+# We move pari.cfg to the docdir
 rm -fr %{buildroot}%{_prefix}/lib/pari
 
-install -D -m 644 pari-init.el %{buildroot}%{_datadir}/emacs/site-lisp/site-start.d/pari-init.el
+# Site-wide gprc
+mkdir -p %{buildroot}%{_sysconfdir}
+install -p -m 644 misc/gprc.dft %{buildroot}%{_sysconfdir}/gprc
 
+# Desktop menu entry
 mkdir -p %{buildroot}%{_datadir}/applications
 desktop-file-install \
     --vendor fedora \
     --dir %{buildroot}%{_datadir}/applications \
-    gp.desktop
+    %{SOURCE1}
 
+# Don't bother installing the simple gp wrapper script, so avoiding the
+# need to patch it to fix the path to the executable
 find %{buildroot} -name xgp -exec rm '{}' ';'
 
+# Placate rpmlint regarding binary and library permissions
+%{_fixperms} %{buildroot}{%{_bindir},%{_libdir}}
 
-%clean
-rm -rf %{buildroot}
-
+%check
+make test-all
 
 %post -p /sbin/ldconfig
 
-
 %postun -p /sbin/ldconfig
 
-
 %files
-%defattr(-,root,root,-)
 %doc AUTHORS CHANGES* COPYING COMPAT NEW README
 %doc Olinux-*/pari.cfg
-%{_libdir}/*.so.*
-
+%{_libdir}/libpari-gmp.so.%{version}
+%{_libdir}/libpari-gmp.so.3
 
 %files gp
-%defattr(-,root,root,-)
-%attr(0755,root,root) %{_bindir}/*
+%{_bindir}/gp
+%{_bindir}/gp-2.5
+%{_bindir}/gphelp
+%{_bindir}/tex2mail
+%config(noreplace) %{_sysconfdir}/gprc
 %dir %{_datadir}/pari/
 %doc %{_datadir}/pari/PARI/
 %doc %{_datadir}/pari/doc/
 %doc %{_datadir}/pari/examples/
 %{_datadir}/pari/misc/
 %{_datadir}/pari/pari.desc
-%{_datadir}/applications/*
-%{_mandir}/man*/*
-
+%{_datadir}/applications/fedora-gp.desktop
+%{_mandir}/man1/gp-2.5.1*
+%{_mandir}/man1/gp.1*
+%{_mandir}/man1/gphelp.1*
+%{_mandir}/man1/pari.1*
+%{_mandir}/man1/tex2mail.1*
 
 %files devel
-%defattr(-,root,root,-)
 %{_includedir}/pari/
-%{_libdir}/*.so
-
-
-%files emacs
-%defattr(-,root,root,-)
-%dir %{_datadir}/emacs/site-lisp/pari/
-%doc %{_datadir}/emacs/site-lisp/pari/pariemacs.txt
-%{_datadir}/emacs/site-lisp/pari/*.el*
-%{_datadir}/emacs/site-lisp/site-start.d/pari-init.el
-
+%{_libdir}/libpari.so
 
 %changelog
+* Wed May  9 2012 Paul Howarth <paul at city-fan.org> - 2.5.1-1
+- update to 2.5.1 (#821191; see NEW for details)
+- use rpm 4.9.x requires/provides filtering
+- update xdg-open patch
+- drop emacs sub-package; the PARI Emacs shell is now a separate project
+- drop %%defattr, redundant since rpm 4.4
+- gp sub-package requires bzip2 for support of bzipped files
+- make %%files list more explicit
+- drop redundant buildroot definition and cleaning
+- BR: xmkmf for X11 detection
+- make sure we use our %%{optflags} and only those
+- call pari_init_defaults() before gp_expand_path() (upstream #1264)
+- fix scoping issue that manifests as a test suite failure with gcc 4.7.x and
+  -ftree-dse (#821918, upstream #1314)
+- fix desktop file categories
+- install site-wide /etc/gprc
+- update FSF address (upstream #1315)
+- fix various compiler warnings (upstream #1316)
+- run the full test suite in %%check
+- add buildreqs for data packages needed by full test suite
+- hardcode %%{_datadir} in gp.desktop so no need to fiddle with it in %%prep
+
 * Sat Jan  7 2012 Paul Howarth <paul at city-fan.org> - 2.3.5-4
 - s/\$RPM_BUILD_ROOT/%%{buildroot}/g for tidyness
 - update source URL as 2.3.5 is now an OLD version
diff --git a/sources b/sources
index 03a72fc..18f2522 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-6077c6db56fdd32e39a06a9bf320e1f7  pari-2.3.5.tar.gz
+d267dd1be4839f209217c8fff615478e  pari-2.5.1.tar.gz


More information about the scm-commits mailing list