     [file version.texi not included]

NEWS in SINGULAR VERSION
************************

The current version VERSION 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 comuting 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.

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

mondromy_lib
     procedures for computing the monodromy 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

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

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, ix86-Win (runs on Windows 95/98/ME, NT 4.0)