NEWS in SINGULAR 2-0-0
The current version 2-0-0 is the first release of the new
release series version 2-0. Its is a major upgrade from both, the 1-2 and
1-3 release serieses.
Singular version 2 is generally much faster than any previous
version of Singular, due to a rewrite of major parts of the Singular
kernel (e.g., the kernel has a new memory manager and a new polynomial
arithmetic) and due to new and better implemented algorithms (e.g., for
computing resolutions and determinants).
Besides theses internal changes, Singular version 2 offers many new
features and functionlities (which were partly already incorporated in
the 1-3 series). E.g., a native Windows distribution, an Emacs user
interface, a new help system, 16 new libraries, etc.
All these changes are explained in more detail below.
Efficiency Improvements
The following table shows some timings which compare the efficincy of
Singular version 1-2-3 and Singular version 2. All times are in seconds
and were obtained on an AMD Athlon with 700 MHz, 128 MB RAM, running
Linux.
Example | Comp | Ring | 1-2 | 2-0 | Speedup |
mora_1 | std | 32003,x(1..3),ds | 82 | 9.4 | 8.7 |
mora_9 | std | 32003,x(1..14),ds | 9600 | 96 | 100 |
homog_gonnet | std | 32003,x(1..18),dp | 33 | 8.9 | 4.5 |
homog_cyclic_8 | std | 32003,x(1..9),dp | 1873 | 472 | 4.0 |
cyclic_8 | std | 32003,x(1..8),dp | >47800 | 478 | >100 |
General Changes
- Windows distribution
- created with Installshield, includes Cygwin, Singular, and (optionally)
XEmacs, distributed as several self-extracting archives. Contains SINGULAR help
in a Windows Help format (the file
Manual.hlp
).
- Emacs user interface
- the recommended interface for using SINGULAR
ESingular
- new program for an out-of-the-box, pre-customized Emacs which runs
Singular
- The online help system
- choose in which browser the on-line help is displayed;
wildcard expansion of help topics
new layout of html manual pages
- Source code debugger
- interactive debugging of procedures written in the SINGULAR
language
- example
- Provide on-line examples for all kernel and library commands.
- file/directory layout of distribution
Singular/<version>/
- http://www.singular.uni-kl.de
- New WWW home-site of SINGULAR
Extensions of the ring concept
- new coefficient domains: arbitrary long real and complex numbers
- no restriction on number of ring variables
- no restriction on number of parameters
New SINGULAR libraries
Reorganisation of libraries into "Categories".
- intprog_lib procedures for computing toric ideals
- toric_lib procedures for Integer Programming using Groebner bases
- spectrum_lib procedures for computing spectra
- mregular_lib procedures for computing the Castelnuovo-Mumford regularity
- mprimdec
- procedures for primary decomposition of modules
- mondromy_lib
- procedures for computing the monodromy of a singularity
- gaussman_lib
- procedures for the Gauss-Manin connection of a singularity
- spcurve_lib
- procedures for CM codimension 2 singularities
- triang_lib
- procedures for decomposing zero-dimensional ideals
- solve_lib
- procedures for solving polynomial systems
- surf_lib
- visualization of curves and surfaces with
surf
- reesclos_lib
- Rees Algebra and integral closure of an ideal
- brnoeth_lib
- Brill-Noether algorithm, Weierstrass semigroups and AG codes
- stratify_lib
- Algorithmic stratification by the Greuel-Pfister algorithm
- paramet_lib
- parametrization of curves
- rinvar_lib
- Invariant rings of reductive groups
- zeroset_lib
- Procedures for roots and factorization
- qhmoduli_lib
- Moduli spaces of sqh-singularities
Changes in SINGULAR libraries
Many procedures were moved into different libraries,
the documentation of libraries was generally improved and
some libraries renamed:
- ainvar_lib
- renamed
invar.lib
to ainvar.lib
(see also rinvar.lib
, finvar.lib
).
- deform_lib
- renamed procedures
T1, T2, T12
to T_1, T_2, T_12
.
- poly_lib
- new procedures numerator/denominator
- linalg_lib
- included
jordan.lib
in linalg.lib
New SINGULAR functions
convhull, simplex
- TODO: docu, tests
- division
- Extension of lift:
division(M,SM)
returns a list [T,U,R]
with SM*U+R=M*T
- breakpoint
- sets a debugger breakpoint
div
- integer division omitting remainder
- ERROR
- interrupts computation in current procedure and returns with error
message to top-level
- fglmquot
- calculate ideal quotions using FGLM-techniques
- leadmonom
- returns the leading monomial of a polynomial or a vector as a polynomial
or vector whose coefficient is one
- highcorner
- returns the smallest monomial not contained in and ideal/module
- hres
- calculate free resolution of homogenous ideal using Hilbert-driven
algorithm.
- minor
- with an optional third argument minors modulo a standard basis will be computed
- mpresmat
- calculate module representing the multipolynomial resultant matrix
- uressolve
- compute all complex roots of a zerodimensional ideal
- vandermonde
- solve Vandermonde linear system
- jet
- extended for series expansions of rational expressions
- reduce
- extended for reduced normal form of rational expressions
SINGULAR functions whose syntax/semantics has changed
- coeffs
- Extended possible syntax to
coeffs(ideal,ideal)
and coeffs(module,module)
which is
equivalent to coeffs(ideal,ideal,p)
and
coeffs(module,module,p)
where p
is a polynomial (i.e.,
monomial) consisting of all ring variables.
- execute
- parenthesis around argument of execute is now mandatory.
- lift
- new implementation (unified handling of isSB and not isSB case); new
optional third argument (a matrix name), which, if given, stores the
"matrix of units"
- bareiss
- new implementation after Lie-Saunders, much faster
- example
- run example for all kernel commands.
- print
- Finer-grained control for formatted output.
- pause
- can be called with argument, must be called with parenthesis.
- option
- new options:
oldStd
, redThrough
, notBuckets
Changes of command-line options and system resources
--browser
, --allow-net
, --emacs
, --sdb
- new command-line options
.
- system
- values of command-line options can be inspected/set at run-time with
system(<option>[,<new_value])
.
.singularrc
- system administrators can put a "global"
.singularrc
file into
the directories where SINGULAR libraries reside
.
libreadline
- if found, a shared version of the
readline
library is linked-in
dynamically at run-time. If not found, readline
is emulated.
Internal Changes
- new data structures for monomials and polynomials
- Makes polynomial arithmetic significantly faster: Especially for block -
or weighted orderings.
Bucket representation of polynomials in std;
Ring change during std, res and bareiss computations
(resulting in more speed and less sapce consumption).
- new memory management
- Results is less memory usage, faster memory allocation/free, less
fragmentation, much better locality of reference.
Porting
-
libreadline
works only with ix86-libc5,
ix86-libc6,HPUX_9,HPUX_10
- Singular is available for ix86-libc5, ix86-libc6, HPUX_9, HPUX_10,
SunOS-4, SunOS-5, IRIX-6, ix86-Win (runs on Windows 95/98/NT4/2000),
FreeBSD 4.2
Singular version 2-0-0, February 2001,
generated by texi2html.