User's Guide to PARI / GP

Total Page:16

File Type:pdf, Size:1020Kb

User's Guide to PARI / GP User’s Guide to PARI / GP C. Batut, K. Belabas, D. Bernardi, H. Cohen, M. Olivier Laboratoire A2X, U.M.R. 9936 du C.N.R.S. Universit´eBordeaux I, 351 Cours de la Lib´eration 33405 TALENCE Cedex, FRANCE e-mail: [email protected] Home Page: http://pari.math.u-bordeaux.fr/ Primary ftp site: ftp://pari.math.u-bordeaux.fr/pub/pari/ last updated 11 December 2003 for version 2.2.7 Copyright c 2000–2003 The PARI Group ° Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions, or translations, of this manual under the conditions for verbatim copying, provided also that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. PARI/GP is Copyright c 2000–2003 The PARI Group ° PARI/GP is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY WHATSOEVER. Table of Contents Chapter1: OverviewofthePARIsystem . ...........5 1.1Introduction ..................................... ....... 5 1.2ThePARItypes..................................... ...... 6 1.3Operationsandfunctions. ...........9 Chapter 2: Specific Use of the GP Calculator . ............ 13 2.1Defaultsandoutputformats . ............14 2.2Simplemetacommands. ........21 2.3InputformatsforthePARItypes . .............25 2.4GPoperators ....................................... .28 2.5ThegeneralGPinputline . ........31 2.6 The GP/PARI programming language . .............32 2.7Errorsanderrorrecovery. .........42 2.8 Interfacing GP with other languages . ............46 2.9 The preferences file . .47 2.10 Using GP under GNU Emacs . 49 2.11UsingGPwithreadline . ........50 Chapter 3: Functions and Operations Available in PARI and GP ................ 53 3.1 Standard monadic or dyadic operators . ................54 3.2 Conversions and similar elementary functions or commands . .................58 3.3 Transcendental functions . .........68 3.4Arithmeticfunctions. ..........76 3.5 Functions related to elliptic curves . ............89 3.6 Functions related to general number fields . ............96 3.7 Polynomials and power series . ......... 135 3.8 Vectors, matrices, linear algebra and sets . .......... 141 3.9 Sums, products, integrals and similar functions . ................ 153 3.10Plottingfunctions . ......... 156 3.11ProgrammingunderGP. 162 Chapter 4: Programming PARI in Library Mode . ...........171 4.1 Introduction: initializations, universal objects . .................. 171 4.2Importanttechnicalnotes . ......... 172 4.3 Creation of PARI objects, assignments, conversions . ............ 175 4.4Garbagecollection. 179 4.5 Implementation of the PARI types . .......... 186 4.6PARIvariables .................................... 190 4.7Inputandoutput . 192 4.8Acompleteprogram . 197 4.9AddingfunctionstoPARI . ......... 201 Chapter 5: Technical Reference Guide for Low-Level Functions .................207 5.1 Level 0 kernel (operations on unsigned longs) . ............ 207 5.2 Level 1 kernel (operations on longs, integers and reals) . .............. 208 5.3 Level 2 kernel (operations on general PARI objects) . ............ 215 Appendix A: Installation Guide for the UNIX Versions . ...............221 Appendix B: A Sample program and Makefile . .........229 Appendix C: Summary of Available Constants . ............231 Index .............................................. 233 Chapter 1: Overview of the PARI system 1.1 Introduction. The PARI system is a package which is capable of doing formal computations on recursive types at high speed; it is primarily aimed at number theorists, but can be used by anybody whose primary need is speed. Although quite an amount of symbolic manipulation is possible in PARI, this system does very badly compared to much more sophisticated systems like Axiom, Macsyma, Maple, Mathematica or Reduce on such manipulations (e.g. multivariate polynomials, formal integration, etc... ). On the other hand, the three main advantages of the system are its speed (which can be between 5 and 100 times better on many computations), the possibility of using directly data types which are familiar to mathematicians, and its extensive algebraic number theory module which has no equivalent in the above-mentioned systems. It is possible to use PARI in three different ways: 1) as a library, which can be called from an upper-level language application, for instance written in C or C++; 2) as a sophisticated programmable calculator, named GP, which contains most of the control instructions of a standard language like C; 3) the compiler GP2C can translate GP code to C, and load them into the GP interpreter. A typical script compiled by GP2C will typically run 3 to 10 times faster. The C code can also be edited and optimized by hand. The use of GP is explained in chapters 2 and 3, and the programming in library mode is explained in chapters 3, 4 and 5. In the present Chapter 1, we give an overview of the system. Important note: A tutorial for GP is provided in the standard distribution (tutorial.dvi) and you should read this first (at least the beginning of it, you can skip the specialized topics you’re not interested in). You can then start over and read the more boring stuff which lies ahead. But you should do that eventually, at the very least the various Chapter headings. You can have a quick idea of what is available by looking at the GP reference card (refcard.dvi or refcard.ps). In case of need, you can then refer to the complete function description in Chapter 3. How to get the latest version? This package can be obtained by anonymous ftp from quite a number of sites (ask your favourite Web search engine for the site nearest to you). But, if you want the very latest version (including development versions), you should use the anonymous ftp address ftp://pari.math.u-bordeaux.fr/pub/pari where you will find all the different ports and possibly some binaries. A lot of version information, mailing list archives, and various tips can be found on PARI’s home page: http://pari.math.u-bordeaux.fr/ 5 Implementation notes: (You can skip this section and switch to Section 1.2 if you’re not inter- ested in hardware technicalities. You won’t miss anything that would be mentioned here.) The PARI package contains essentially three variants. See Appendix A for how to set up one of these on your system. In a first version, some time-critical parts of the multiprecision kernel are written in assembler, a few hundred lines at most. At present there exists three versions for the Sparc architecture: one for Sparc version 7 (e.g. Sparcstation 1, 1+, IPC, IPX or 2), one for Sparc version 8 with SuperSparc processors (e.g. SparcStation 10 and 20) and one for Sparc version 8 with MicroSparc I or II processors (e.g. SparcClassic or SparcStation 4 and 5). No specific version is written for the UltraSparc since it can use the MicroSparc II version. In addition, versions exist for the DEC Alpha 64-bit processors, and finally the whole ix86 family (Intel, AMD, Cyrix) starting at the 386 (up to the Xbox gaming console!). Finally, there are unmaintained, much less optimized and not really usable anymore, micro-kernels for the HP-PA architecture (only for HPUX 9, does not work with HPUX 10), and for the PowerPC architecture (only for the 601, does not compile anymore). A second version uses the GNU MP library to implement its multiprecision kernel, and should run on any platform where GMP could be installed. The GMP kernel is about as fast as the native one for small operands, and much faster for huge ones (say, about twice faster around 10000 decimal digits). A third version is written entirely in ANSI C, with a C++-compatible syntax, and should be portable without much trouble to any 32 or 64-bit computer having no real memory constraints. It is about 2 times slower than versions including an assembly kernel. This version has been tested for example on MIPS based DECstations 3100 and 5000 and SGI computers, on various Macs (based on 680x0 chips or more recent PowerPCs, like the G3 or G4), new Intel chips like ARM (handheld devices) or ia64 (Itanium). In addition, PARI has been ported to a considerable number of smaller and larger machines, for example the VAX, 68000-based machines like the Atari, Mac Classic or Amiga 500, 68020 machines such as the Amiga 2500 or 3000, or mainframes like the IBM/S390. An historical version of the PARI/GP kernel, written in 1985, was specific to 680x0 based computers, and was entirely writen in MC68020 assembly language (around 6000 lines). It ran on SUN-3/xx, Sony News, NeXT cubes and on 680x0 based Macs. Since 1997, this version was unmaintained; it has been removed from the PARI distribution in version 2.2.5. To run PARI with a 68k assembler micro-kernel, one now uses the GMP version. 1.2 The PARI types. The crucial word in PARI is recursiveness: most of the types it knows about are recursive. For example, the basic type Complex exists (actually called t_COMPLEX). However, the components (i.e. the real and imaginary part) of such a “complex number” can be of any type. The only sensible ones are integers (we are then in Z[i]), rational numbers (Q[i]), real numbers (R[i] = C), or even elements of Z/nZ ((Z/nZ)[i] when this makes sense), or p-adic numbers when p 3 mod 4 (Q [i]). ≡ p This feature must of course not be used too rashly: for example you are in principle allowed to create objects which are “complex numbers of complex numbers”, but don’t expect PARI to make sensible use of such objects: you will mainly get nonsense. On the other hand, one thing which is allowed is to have components of different, but com- patible, types. For example, taking again complex numbers, the real part could be of type integer, and the imaginary part of type rational.
Recommended publications
  • The Sagemanifolds Project
    Tensor calculus with free softwares: the SageManifolds project Eric´ Gourgoulhon1, Micha l Bejger2 1Laboratoire Univers et Th´eories (LUTH) CNRS / Observatoire de Paris / Universit´eParis Diderot 92190 Meudon, France http://luth.obspm.fr/~luthier/gourgoulhon/ 2Centrum Astronomiczne im. M. Kopernika (CAMK) Warsaw, Poland http://users.camk.edu.pl/bejger/ Encuentros Relativistas Espa~noles2014 Valencia 1-5 September 2014 Eric´ Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds ERE2014, Valencia, 2 Sept. 2014 1 / 44 Outline 1 Differential geometry and tensor calculus on a computer 2 Sage: a free mathematics software 3 The SageManifolds project 4 SageManifolds at work: the Mars-Simon tensor example 5 Conclusion and perspectives Eric´ Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds ERE2014, Valencia, 2 Sept. 2014 2 / 44 Differential geometry and tensor calculus on a computer Outline 1 Differential geometry and tensor calculus on a computer 2 Sage: a free mathematics software 3 The SageManifolds project 4 SageManifolds at work: the Mars-Simon tensor example 5 Conclusion and perspectives Eric´ Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds ERE2014, Valencia, 2 Sept. 2014 3 / 44 In 1969, during his PhD under Pirani supervision at King's College, Ray d'Inverno wrote ALAM (Atlas Lisp Algebraic Manipulator) and used it to compute the Riemann tensor of Bondi metric. The original calculations took Bondi and his collaborators 6 months to go. The computation with ALAM took 4 minutes and yield to the discovery of 6 errors in the original paper [J.E.F. Skea, Applications of SHEEP (1994)] In the early 1970's, ALAM was rewritten in the LISP programming language, thereby becoming machine independent and renamed LAM The descendant of LAM, called SHEEP (!), was initiated in 1977 by Inge Frick Since then, many softwares for tensor calculus have been developed..
    [Show full text]
  • Using Macaulay2 Effectively in Practice
    Using Macaulay2 effectively in practice Mike Stillman ([email protected]) Department of Mathematics Cornell 22 July 2019 / IMA Sage/M2 Macaulay2: at a glance Project started in 1993, Dan Grayson and Mike Stillman. Open source. Key computations: Gr¨obnerbases, free resolutions, Hilbert functions and applications of these. Rings, Modules and Chain Complexes are first class objects. Language which is comfortable for mathematicians, yet powerful, expressive, and fun to program in. Now a community project Journal of Software for Algebra and Geometry (started in 2009. Now we handle: Macaulay2, Singular, Gap, Cocoa) (original editors: Greg Smith, Amelia Taylor). Strong community: including about 2 workshops per year. User contributed packages (about 200 so far). Each has doc and tests, is tested every night, and is distributed with M2. Lots of activity Over 2000 math papers refer to Macaulay2. History: 1976-1978 (My undergrad years at Urbana) E. Graham Evans: asked me to write a program to compute syzygies, from Hilbert's algorithm from 1890. Really didn't work on computers of the day (probably might still be an issue!). Instead: Did computation degree by degree, no finishing condition. Used Buchsbaum-Eisenbud \What makes a complex exact" (by hand!) to see if the resulting complex was exact. Winfried Bruns was there too. Very exciting time. History: 1978-1983 (My grad years, with Dave Bayer, at Harvard) History: 1978-1983 (My grad years, with Dave Bayer, at Harvard) I tried to do \real mathematics" but Dave Bayer (basically) rediscovered Groebner bases, and saw that they gave an algorithm for computing all syzygies. I got excited, dropped what I was doing, and we programmed (in Pascal), in less than one week, the first version of what would be Macaulay.
    [Show full text]
  • GNU Readline Library
    GNU Readline Library Edition 2.1, for Readline Library Version 2.1. March 1996 Brian Fox, Free Software Foundation Chet Ramey, Case Western Reserve University This do cument describ es the GNU Readline Library, a utility which aids in the consistency of user interface across discrete programs that need to provide a command line interface. Published by the Free Software Foundation 675 Massachusetts Avenue, Cambridge, MA 02139 USA Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this p ermission notice are preserved on all copies. Permission is granted to copy and distribute mo di ed versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a p ermission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the ab ove conditions for mo di ed versions, except that this p ermission notice may b e stated in a translation approved by the Foundation. c Copyright 1989, 1991 Free Software Foundation, Inc. Chapter 1: Command Line Editing 1 1 Command Line Editing This chapter describ es the basic features of the GNU command line editing interface. 1.1 Intro duction to Line Editing The following paragraphs describ e the notation used to representkeystrokes. i h i h C-k is read as `Control-K' and describ es the character pro duced when the k The text key is pressed while the Control key is depressed. h i The text M-k is read as `Meta-K' and describ es the character pro duced when the meta h i key if you have one is depressed, and the k key is pressed.
    [Show full text]
  • Version 7.8-Systemd
    Linux From Scratch Version 7.8-systemd Created by Gerard Beekmans Edited by Douglas R. Reno Linux From Scratch: Version 7.8-systemd by Created by Gerard Beekmans and Edited by Douglas R. Reno Copyright © 1999-2015 Gerard Beekmans Copyright © 1999-2015, Gerard Beekmans All rights reserved. This book is licensed under a Creative Commons License. Computer instructions may be extracted from the book under the MIT License. Linux® is a registered trademark of Linus Torvalds. Linux From Scratch - Version 7.8-systemd Table of Contents Preface .......................................................................................................................................................................... vii i. Foreword ............................................................................................................................................................. vii ii. Audience ............................................................................................................................................................ vii iii. LFS Target Architectures ................................................................................................................................ viii iv. LFS and Standards ............................................................................................................................................ ix v. Rationale for Packages in the Book .................................................................................................................... x vi. Prerequisites
    [Show full text]
  • Singular Value Decomposition and Its Numerical Computations
    Singular Value Decomposition and its numerical computations Wen Zhang, Anastasios Arvanitis and Asif Al-Rasheed ABSTRACT The Singular Value Decomposition (SVD) is widely used in many engineering fields. Due to the important role that the SVD plays in real-time computations, we try to study its numerical characteristics and implement the numerical methods for calculating it. Generally speaking, there are two approaches to get the SVD of a matrix, i.e., direct method and indirect method. The first one is to transform the original matrix to a bidiagonal matrix and then compute the SVD of this resulting matrix. The second method is to obtain the SVD through the eigen pairs of another square matrix. In this project, we implement these two kinds of methods and develop the combined methods for computing the SVD. Finally we compare these methods with the built-in function in Matlab (svd) regarding timings and accuracy. 1. INTRODUCTION The singular value decomposition is a factorization of a real or complex matrix and it is used in many applications. Let A be a real or a complex matrix with m by n dimension. Then the SVD of A is: where is an m by m orthogonal matrix, Σ is an m by n rectangular diagonal matrix and is the transpose of n ä n matrix. The diagonal entries of Σ are known as the singular values of A. The m columns of U and the n columns of V are called the left singular vectors and right singular vectors of A, respectively. Both U and V are orthogonal matrices.
    [Show full text]
  • Installation Guide for the UNIX Versions
    Appendix A: Installation Guide for the UNIX Versions 1. Required tools. Compiling PARI requires an ANSI C or a C++ compiler. If you do not have one, we suggest that you obtain the gcc/g++ compiler. As for all GNU software mentioned afterwards, you can find the most convenient site to fetch gcc at the address http://www.gnu.org/order/ftp.html (On Mac OS X, this is also provided in the Xcode tool suite.) You can certainly compile PARI with a different compiler, but the PARI kernel takes advantage of optimizations provided by gcc. This results in at least 20% speedup on most architectures. Optional packages. The following programs and libraries are useful in conjunction with gp, but not mandatory. In any case, get them before proceeding if you want the functionalities they provide. All of them are free. • GNU MP library. This provides an alternative multiprecision kernel, which is faster than PARI's native one, but unfortunately binary incompatible. To enable detection of GMP, use Con- figure --with-gmp. You should really do this if you only intend to use GP, and probably also if you will use libpari unless you have backwards compatibility requirements. • GNU readline library. This provides line editing under GP, an automatic context-dependent completion, and an editable history of commands. Note that it is incompatible with SUN com- mandtools (yet another reason to dump Suntools for X Windows). • GNU gzip/gunzip/gzcat package enables GP to read compressed data. • GNU emacs. GP can be run in an Emacs buffer, with all the obvious advantages if you are familiar with this editor.
    [Show full text]
  • An Alternative Algorithm for Computing the Betti Table of a Monomial Ideal 3
    AN ALTERNATIVE ALGORITHM FOR COMPUTING THE BETTI TABLE OF A MONOMIAL IDEAL MARIA-LAURA TORRENTE AND MATTEO VARBARO Abstract. In this paper we develop a new technique to compute the Betti table of a monomial ideal. We present a prototype implementation of the resulting algorithm and we perform numerical experiments suggesting a very promising efficiency. On the way of describing the method, we also prove new constraints on the shape of the possible Betti tables of a monomial ideal. 1. Introduction Since many years syzygies, and more generally free resolutions, are central in purely theo- retical aspects of algebraic geometry; more recently, after the connection between algebra and statistics have been initiated by Diaconis and Sturmfels in [DS98], free resolutions have also become an important tool in statistics (for instance, see [D11, SW09]). As a consequence, it is fundamental to have efficient algorithms to compute them. The usual approach uses Gr¨obner bases and exploits a result of Schreyer (for more details see [Sc80, Sc91] or [Ei95, Chapter 15, Section 5]). The packages for free resolutions of the most used computer algebra systems, like [Macaulay2, Singular, CoCoA], are based on these techniques. In this paper, we introduce a new algorithmic method to compute the minimal graded free resolution of any finitely generated graded module over a polynomial ring such that some (possibly non- minimal) graded free resolution is known a priori. We describe this method and we present the resulting algorithm in the case of monomial ideals in a polynomial ring, in which situ- ation we always have a starting nonminimal graded free resolution.
    [Show full text]
  • $SPAD/Lsp Makefile
    $SPAD/lsp Makefile The Axiom Team December 3, 2016 Abstract 1 Contents 1 The Makefile 3 2 Gnu Common Lisp 2.6.7 3 3 Gnu Common Lisp 2.6.7pre 3 3.1 run-process patch . 3 4 Gnu Common Lisp 2.6.6 3 4.1 run-process patch . 3 5 Gnu Common Lisp 2.6.5w 4 5.1 mingw.defs . 4 5.2 alloc.c . 4 5.3 mingfile.c . 4 5.4 unixfsys.c . 4 6 Gnu Common Lisp 2.6.5 5 6.1 gmp wrappers patch . 5 7 Gnu Common Lisp 2.5.2 5 7.0.1 socket patch . 5 7.0.2 read.d patch . 9 7.0.3 fortran patch . 9 7.0.4 libspad patch . 10 7.0.5 toploop patch . 12 7.0.6 object to float patch . 14 7.0.7 in-package patch . 15 7.0.8 EXIT and MAX STACK SIZE patchs . 15 7.0.9 tail-recursive patch . 16 7.0.10 collectfn fix . 17 7.1 The GCL-2.5.2 stanza . 21 7.1.1 Configure and Make GCL . 21 7.2 The GCL-2.6.1 stanza . 23 7.3 The GCL-2.6.2 stanza . 24 7.4 Directory move . 25 7.5 The GCL-2.6.2a stanza . 25 7.6 Directory move . 26 7.7 The GCL-2.6.3 stanza . 26 7.8 The GCL-2.6.5 stanza . 27 7.9 The GCL-2.6.5w stanza . 28 7.10 The GCL-2.6.6 stanza .
    [Show full text]
  • Computations in Algebraic Geometry with Macaulay 2
    Computations in algebraic geometry with Macaulay 2 Editors: D. Eisenbud, D. Grayson, M. Stillman, and B. Sturmfels Preface Systems of polynomial equations arise throughout mathematics, science, and engineering. Algebraic geometry provides powerful theoretical techniques for studying the qualitative and quantitative features of their solution sets. Re- cently developed algorithms have made theoretical aspects of the subject accessible to a broad range of mathematicians and scientists. The algorith- mic approach to the subject has two principal aims: developing new tools for research within mathematics, and providing new tools for modeling and solv- ing problems that arise in the sciences and engineering. A healthy synergy emerges, as new theorems yield new algorithms and emerging applications lead to new theoretical questions. This book presents algorithmic tools for algebraic geometry and experi- mental applications of them. It also introduces a software system in which the tools have been implemented and with which the experiments can be carried out. Macaulay 2 is a computer algebra system devoted to supporting research in algebraic geometry, commutative algebra, and their applications. The reader of this book will encounter Macaulay 2 in the context of concrete applications and practical computations in algebraic geometry. The expositions of the algorithmic tools presented here are designed to serve as a useful guide for those wishing to bring such tools to bear on their own problems. A wide range of mathematical scientists should find these expositions valuable. This includes both the users of other programs similar to Macaulay 2 (for example, Singular and CoCoA) and those who are not interested in explicit machine computations at all.
    [Show full text]
  • Singular in Sage L-38 22November2019 1/40 Computing with Polynomials in Singular
    Computing with Polynomials in Singular 1 Polynomials, Resultants, and Factorization computer algebra for polynomial computations resultants to eliminate variables 2 Gröbner Bases and Multiplication Matrices ideals of polynomials and Gröbner bases normal forms and multiplication matrices multiplicity as the dimension of the local quotient ring 3 Formulas for the 4-bar Coupler Point formulation of the problem processing a Gröbner basis MCS 507 Lecture 38 Mathematical, Statistical and Scientific Software Jan Verschelde, 22 November 2019 Scientific Software (MCS 507) Singular in Sage L-38 22November2019 1/40 Computing with Polynomials in Singular 1 Polynomials, Resultants, and Factorization computer algebra for polynomial computations resultants to eliminate variables 2 Gröbner Bases and Multiplication Matrices ideals of polynomials and Gröbner bases normal forms and multiplication matrices multiplicity as the dimension of the local quotient ring 3 Formulas for the 4-bar Coupler Point formulation of the problem processing a Gröbner basis Scientific Software (MCS 507) Singular in Sage L-38 22November2019 2/40 Singular Singular is a computer algebra system for polynomial computations, with special emphasis on commutative and non-commutative algebra, algebraic geometry, and singularity theory, under the GNU General Public License. Singular’s core algorithms handle polynomial factorization and resultants characteristic sets and numerical root finding Gröbner, standard bases, and free resolutions. Its development is directed by Wolfram Decker, Gert-Martin Greuel, Gerhard Pfister, and Hans Schönemann, within the Dept. of Mathematics at the University of Kaiserslautern. Scientific Software (MCS 507) Singular in Sage L-38 22November2019 3/40 Singular in Sage Advanced algorithms are contained in more than 90 libraries, written in a C-like programming language.
    [Show full text]
  • What Can Computer Algebraic Geometry Do Today?
    What can computer Algebraic Geometry do today? Gregory G. Smith Wolfram Decker Mike Stillman 14 July 2015 Essential Questions ̭ What can be computed? ̭ What software is currently available? ̭ What would you like to compute? ̭ How should software advance your research? Basic Mathematical Types ̭ Polynomial Rings, Ideals, Modules, ̭ Varieties (affine, projective, toric, abstract), ̭ Sheaves, Divisors, Intersection Rings, ̭ Maps, Chain Complexes, Homology, ̭ Polyhedra, Graphs, Matroids, ̯ Established Geometric Tools ̭ Elimination, Blowups, Normalization, ̭ Rational maps, Working with divisors, ̭ Components, Parametrizing curves, ̭ Sheaf Cohomology, ঠ-modules, ̯ Emerging Geometric Tools ̭ Classification of singularities, ̭ Numerical algebraic geometry, ̭ ैक़௴Ь, Derived equivalences, ̭ Deformation theory,Positivity, ̯ Some Geometric Successes ̭ GEOGRAPHY OF SURFACES: exhibiting surfaces with given invariants ̭ BOIJ-SÖDERBERG: examples lead to new conjectures and theorems ̭ MODULI SPACES: computer aided proofs of unirationality Some Existing Software ̭ GAP,Macaulay2, SINGULAR, ̭ CoCoA, Magma, Sage, PARI, RISA/ASIR, ̭ Gfan, Polymake, Normaliz, 4ti2, ̭ Bertini, PHCpack, Schubert, Bergman, an idiosyncratic and incomplete list Effective Software ̭ USEABLE: documented examples ̭ MAINTAINABLE: includes tests, part of a larger distribution ̭ PUBLISHABLE: Journal of Software for Algebra and Geometry; www.j-sag.org ̭ CITATIONS: reference software Recent Developments in Singular Wolfram Decker Janko B¨ohm, Hans Sch¨onemann, Mathias Schulze Mohamed Barakat TU Kaiserslautern July 14, 2015 Wolfram Decker (TU-KL) Recent Developments in Singular July 14, 2015 1 / 24 commutative and non-commutative algebra, singularity theory, and with packages for convex and tropical geometry. It is free and open-source under the GNU General Public Licence.
    [Show full text]
  • Gnu Libiberty September 2001 for GCC 3
    gnu libiberty September 2001 for GCC 3 Phil Edwards et al. Copyright c 2001 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”. i Table of Contents 1 Using ............................................ 1 2 Overview ........................................ 2 2.1 Supplemental Functions ........................................ 2 2.2 Replacement Functions ......................................... 2 2.2.1 Memory Allocation ........................................ 2 2.2.2 Exit Handlers ............................................. 2 2.2.3 Error Reporting ........................................... 2 2.3 Extensions ..................................................... 3 3 Obstacks......................................... 4 3.1 Creating Obstacks.............................................. 4 3.2 Preparing for Using Obstacks................................... 4 3.3 Allocation in an Obstack ....................................... 5 3.4 Freeing Objects in an Obstack.................................. 6 3.5 Obstack Functions and Macros ................................. 7 3.6 Growing Objects ............................................... 8 3.7 Extra Fast Growing Objects ...................................
    [Show full text]