code:
@comment -*-texinfo-*-
@comment Id: INSTALL_osx.texi,v 1.1 2003/08/08 14:27:06 pertusus Exp $
@c FILE: INSTALL_unix.texi
@c PURPOSE: Installation instruction for Singular on MacOS X
@c

@ifclear VERSION
@include version.texi
@end ifclear

@ifclear singularmanual
@majorheading MacOS X installation instructions for @sc{Singular} version @value{VERSION}
@end ifclear

@ifclear UNAME
@set _UNAME <uname>
@end ifclear

@ifset UNAME
@include uname.texi
@end ifset

To install @sc{Singular} on
@ifset UNAME
@value{_UNAME}
@end ifset
@ifclear UNAME
MacOS X
@end ifclear
, you need the following two
archives:
@table @code
@item Singular-@value{VERSION}-share.tar.gz
contains architecture independent data like documentation and libraries
(alternatively, you may also download
@code{Singular-@value{VERSION}-share.zip}).
@item Singular-@value{VERSION}-@value{_UNAME}.tar.gz
contains architecture dependent executables, like the @sc{Singular}
program.
@end table
@ifclear UNAME
@*
@code{@value{_UNAME}} is a description of the processor and operating system
for which @sc{Singular} is compiled (e.g, @code{ix86-Linux}). Please contact us if
you can not find an appropriate architecture dependent archive.
@end ifclear

You can obtain these (and other) archives from
@display
@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular}.
@end display

@include register.texi

@heading To install SINGULAR

Make sure that you have approximately 12MByte of free disk space and follow
these steps.
@enumerate
@item
Simply change to the directory in which you wish to install
@sc{Singular} (usually wherever you install 3rd-party software), for example:
@smallexample
cd /usr/local
or
mkdir install;cd install
(you do not need root privileges in this case)
@end smallexample
@sc{Singular} specific subdirectories will be created in such a way
that multiple versions and multiple architecture dependent files
of @sc{Singular} can peaceably coexist under the same @code{/usr/local}
tree.

@item
Unpack the archives:
@smallexample
gzip -dc <path_to>/Singular-@value{VERSION}-@value{_UNAME}.tar.gz | tar -pxf -
gzip -dc <path_to>/Singular-@value{VERSION}-share.tar.gz | tar -pxf -
@end smallexample
@c version 2-0-x does not have *-share.zip:
@c If you have downloaded @code{Singular-@value{VERSION}-share.zip},
@c unpack with
@c @smallexample
@c unzip -u Singular-@value{VERSION}-share.zip
@c @end smallexample
This creates the the directory Singular/@value{VERSION} with
@multitable @columnfractions .36 .64
@item (sub)directories
@tab  which contain
@item @code{@value{_UNAME}}
@tab @code{Singular} executetable
@item @code{LIB}
@tab @sc{Singular} libraries (@code{*.lib} files)
@item @code{emacs}
@tab files for the @sc{Singular} Emacs user interface
@item @code{info}
@tab info files of @sc{Singular} manual
@item @code{html}
@tab html files of @sc{Singular} manual
@item @code{doc}
@tab miscellaneous documentation files
@item @code{examples}
@tab @sc{Singular} examples (@code{*.sing} files)
@end multitable

For the executable to work, the directory layout must look pretty much
like this; the executable looks for "sibling" directories at run-time
to figure out where its @sc{Singular} libraries and on-line
documentation files are.  These constraints on the local directory layout
are necessary to avoid having to hard-code pathnames into the
executables, or require that environment variables be set before
running the executable. In particular, you @strong{must not move or copy}
the @sc{Singular} executables to another place, but use soft-links
instead.
@end enumerate

The following steps are optional:

@itemize @bullet
@item
Arrange that typing @code{Singular} at the shell prompt starts up the
installed @sc{Singular} executable.

If you have root permission, do:
@smallexample
ln -s `pwd`/Singular/@value{VERSION}/@value{_UNAME}/Singular  /usr/local/bin/Singular-@value{VERSION}
ln -s /usr/local/bin/Singular-@value{VERSION} /usr/local/bin/Singular
@end smallexample
	Otherwise, append the directory
@code{`pwd`/Singular/@value{VERSION}/@value{_UNAME}/} to your @code{$PATH}
environment variable. For the @code{csh} (or, @code{tcsh}) shell do:
@smallexample
set path=(`pwd`/Singular/@value{VERSION}/@value{_UNAME} $path)
@end smallexample
For the @code{bash} (or, @code{ksh}) shell do:
@smallexample
export PATH=`pwd`/Singular/@value{VERSION}/@value{_UNAME}/:$PATH
@end smallexample
You also might want to adjust your personal start-up files
(@code{~/.cshrc} for @code{csh}, @code{~/.tcshrc} for @code{tcsh}, or
@code{~/.profile} for @code{bash}) accordingly,
so that the @code{$PATH} variable is set automatically each time you login.

@strong{IMPORTANT:} Do @emph{never} move or copy the file
@code{Singular/@value{VERSION}/@value{_UNAME}/Singular} to another
place, but use soft-links instead.

@item
If you wish to use any of following features of
@sc{Singular}, make sure that the respective programs are installed on your system:

@multitable @columnfractions .5 .5
@item @strong{Feature} @tab @strong{Requires}

@item on-line @code{html} help
@tab @uref{http://www.netscape.com,,netscape} browser
@item on-line @code{info} help
@tab @uref{http://www.texinfo.org,,info}, or
@uref{http://math-www.uni-paderborn.de/~axel/tkinfo/,,tkinfo} texinfo browser programs
@item TAB completion and history mechanism of ASCII-terminal interface
@tab shared @uref{ftp://ftp.de.uu.net/pub/gnu/readline/,,readline}
library, i.e. @code{/usr/lib/libreadline.so}
@end multitable
You may download most of these programs from
@display
@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/utils/}.
@end display

@item Customize the on-line help system:

By default, on-line help is displayed in the @code{html} format using
the @code{netscape} program.

However, this behavior can be customized in several ways
using the @sc{Singular} commands @code{system("--browser",<browser>)}
and @code{system("--allow-net", 1)} (or, by starting up @sc{Singular}
with the respective command line options).

In particular, creating the file
@code{Singular/@value{VERSION}/LIB/.singularrc} and putting the
@sc{Singular} command
@smallexample
system("--allow-net", 1);
@end smallexample
in it, allows the on-line help system to fetch its @code{html} pages
from @uref{http://www.singular.uni-kl.de, Singular's WWW
home site}
in case its local html pages are not found. That is, you may delete your
local html pages, after setting this option.

See also
@ifset singularmanual
@ref{The online help system}, @ref{Command line options}, and
@ref{Startup sequence},
@end ifset
@ifclear singularmanual
the sections @emph{The online help system}, @emph{Command line options}, and
@emph{Startup sequence} in the @sc{Singular} manual
@end ifclear
for more details on customizing the on-line help system.

@item
Add the line
@smallexample
* Singular:(singular.hlp).     A system for polynomial computations
@end smallexample
to your system-wide @code{dir} file (usually @code{/usr/info/dir} or
@code{/usr/local/info/dir} and  copy or soft-link the file
@code{Singular/@value{VERSION}/info/singular.hlp}
to the directory of your @code{dir} file.
@*This assures that the
@sc{Singular} manual can be  accessed from stand-alone texinfo
browser programs such as @code{info} or @code{Emacs}.
(It is not necessary for the use of the help system from within @code{Singular}.)
@end itemize

@heading Troubleshooting

@itemize @bullet
@item General: @sc{Singular} can not find its libraries or on-line help
@enumerate
@item
Make sure that you have read and/or execute permission the files and
directories of the Singular distribution. If in doubt, @code{cd} to the
directory where you unpacked @sc{Singular}, and do (as root, if
necessary):
@smallexample
chmod -R a+rX Singular
@end smallexample
@item
Start up @sc{Singular}, and issue the command @code{system("Singular");}.
If this does not return the correct and expanded location of the
@sc{Singular} executable, then you found a bug in @sc{Singular}, which we
ask you to report (see below).
@item
Check whether the directories containing the libraries and on-line help
files can be found by @sc{Singular}: If @code{$bindir} denotes the
directory where the @sc{Singular} executable resides, then @sc{Singular}
looks for library files as follows:
@* (0) the current directory
@* (1) all dirs of the environment variable SINGULARPATH
@* (2) @code{$bindir/LIB}
@* (3) @code{$bindir/../LIB}
@* (4) @code{/usr/local/Singular/@value{VERSION}/LIB}
@* (4) @code{/usr/local/Singular/LIB}
@* The on-line @code{info} files need to be at  @code{$bindir/../info} and the
@code{html} pages at @code{$bindir/../html}.
@end enumerate

You can inspect the found library and @code{info}/@code{html}
directories by starting up @sc{Singular} with the
@code{--version} option, or by issuing the @sc{Singular} command
@code{system("--version");}.

@item For any other troubles:
@*Please send an email to @email{singular@@mathematik.uni-kl.de}
and include the header which is displayed by starting up @sc{Singular}
with the @code{-v} option, and a description of your machine (issue the
command @code{uname -a} on your shell) in your report.
@end itemize

@include info.texi

@ifclear singularmanual
GOOD LUCK and ENJOY!
Your @sc{Singular} team.
@end ifclear


code:
@comment -*-texinfo-*-
@comment Id: INSTALL_rpm.texi,v 1.1 2003/08/08 14:27:06 pertusus Exp $
@c FILE: INSTALL_rpm.texi
@c PURPOSE: Installation instruction for Singular on RPM based Linux systems
@c

@ifclear VERSION
@include version.texi
@end ifclear

@ifclear singularmanual
@majorheading Installation of @sc{Singular} @value{RPM_VERSION} on @sc{rpm} based @sc{Linux} systems
@end ifclear

@sc{rpm} is a powerful package manager, which can be used to build, install, query, verify, update, and erase individual software packages.
@sc{Singular} can be installed on an @sc{rpm} based @sc{Linux} system.
The installation of @sc{Singular} on a general @sc{Unix} system is described in @code{INSTALL_unix}.

@heading @sc{Singular} @sc{rpm} packages

There are the following @sc{Singular} @sc{rpm} packages.

@table @code
@item @uref{Singular-@value{RPM_VERSION}-1.i386.rpm}
contains architecture dependend executables like the Singular program.
@item @uref{Singular-static-@value{RPM_VERSION}-1.i386.rpm}
contains the static version of the architecture dependend executables.
@item @uref{Singular-share-@value{RPM_VERSION}-1.noarch.rpm}
contains architecture independend data like documentation and libraries.
@item @uref{Singular-desktop-@value{RPM_VERSION}-1.noarch.rpm}
contains icons and menues for @sc{gnome} and @sc{kde}.
@end table

The above @sc{rpm} packages are available at
@display
@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/UNIX}.
@end display

@include register.texi

@heading Usage of @sc{rpm} packages
@enumerate
@item
You can only use the @sc{Singular} @sc{rpm} packages for an @sc{rpm} based @sc{Linux} system like @sc{RedHat Linux} or @sc{SuSE Linux}.
You can check this by typing
@smallexample
rpm
@end smallexample
in a command shell. This should produce an output like
@smallexample
RPM Version 4.0.3
Copyright (C) 1998-2000 - Red Hat, Inc.
This program may be freely redistributed under the terms of the GNU GPL

Usage: rpm @{--help@}
       rpm @{--version@}
@end smallexample
@item
To deal with @sc{rpm} packages, you can either use the @sc{rpm} command line tool @code{rpm} or a graphical @sc{rpm} frontend like e.g. @code{gnorpm} under @sc{gnome} or @code{kpackage} under @sc{kde}.
For a description of the usage of @code{rpm}, type
@smallexample
rpm -h
@end smallexample
in a command shell.
@item
To install or deinstall @sc{rpm} packages, you have to be superuser.
To become superuser, type
@smallexample
su
@end smallexample
in a command shell and enter the root password.
@end enumerate

@heading Installation of @sc{Singular} @sc{rpm} packages

In the following, we describe how to install @sc{Singular} using the @sc{rpm} command line tool @code{rpm}.
Alternatively, you can use a graphical @sc{rpm} frontend like e.g. @code{gnorpm} under @sc{gnome} or @code{kpackage} under @sc{kde}.

@enumerate
@item
The installation requires about 20MB of free disk space under @code{/opt}.
You can check the free disk space by typing
@smallexample
df -h
@end smallexample
in a command shell.
@item
Different versions of @sc{Singular} @sc{rpm} packages coexist without conflicts.
@item
To install the @sc{Singular} binary @sc{rpm} package, type
@smallexample
rpm -ivh Singular-@value{RPM_VERSION}-1.i386.rpm
@end smallexample
in a command shell.

This requires several shared libraries.
If these are not present in your system, @code{rpm} will give an error report.
In this case, you have to install @sc{rpm} packages providing these shared libraries and retry.
Alternatively, you can install the @sc{Singular} static binary @sc{rpm} package by typing
@smallexample
rpm -ivh Singular-static-@value{RPM_VERSION}-1.i386.rpm
@end smallexample
in a command shell.
@item
To install the @sc{Singular} shared @sc{rpm} package, type
@smallexample
rpm -ivh Singular-share-@value{RPM_VERSION}-1.noarch.rpm
@end smallexample
in a command shell.
@item
To install a @sc{Singular} menu @sc{rpm} package, @sc{gnome} or @sc{kde} have to be installed.
Type
@smallexample
rpm -ivh Singular-desktop-@value{RPM_VERSION}-1.noarch.rpm
@end smallexample
in a command shell.
@item
To deinstall a @sc{Singular} @sc{rpm} package, type
@smallexample
rpm -e Singular-...-@value{RPM_VERSION}
@end smallexample
in a command shell.
@end enumerate

@heading Starting @sc{Singular}
@enumerate
@item
To run @sc{Singular} @value{RPM_VERSION}, type
@smallexample
Singular-@value{VERSION}
@end smallexample
in a command shell.
To run @sc{Singular} @value{RPM_VERSION} under @sc{Emacs}, type
@smallexample
ESingular-@value{VERSION}
@end smallexample
in a command shell.
@item
There is a menu @code{Singular @value{RPM_VERSION}} in the @sc{gnome} and @sc{kde} menu with menu items @code{TSingular}, @code{ESingular}, and @code{Manual}.
Click on the menu item @code{TSingular} to run @sc{Singular} @value{RPM_VERSION} in a terminal, on the menu item @code{ESingular} to run @sc{Singular} @value{RPM_VERSION} under @sc{Emacs}, and on the menu item @code{Manual} to read the @sc{Singular} @value{RPM_VERSION} manual.
@end enumerate

@include info.texi

@ifclear singularmanual
Good luck and enjoy! Your @sc{Singular} team.
@end ifclear

repo_name: mthl/texinfo

license: mit


code:
@comment -*-texinfo-*-
@comment Id: INSTALL_unix.texi,v 1.1 2003/08/08 14:27:06 pertusus Exp $
@c FILE: INSTALL_unix.texi
@c PURPOSE: Installation instruction for Singular on Unix
@c

@ifclear VERSION
@include version.texi
@end ifclear

@ifclear singularmanual
@majorheading Unix installation instructions for @sc{Singular} version @value{VERSION}
@end ifclear

@ifclear UNAME
@set _UNAME <uname>
@end ifclear

@ifset UNAME
@include uname.texi
@end ifset

To install @sc{Singular} on a
@ifset UNAME
@value{_UNAME}
@end ifset
@ifclear UNAME
Unix
@end ifclear
platform, you need the following two
archives:
@table @code
@item Singular-@value{VERSION}-share.tar.gz
contains architecture independent data like documentation and libraries
(alternatively, you may also download
@code{Singular-@value{VERSION}-share.zip}).
@item Singular-@value{VERSION}-@value{_UNAME}.tar.gz
contains architecture dependent executables, like the @sc{Singular}
program.
@end table
@ifclear UNAME
@*
@code{@value{_UNAME}} is a description of the processor and operating system
for which @sc{Singular} is compiled (e.g, @code{ix86-Linux}). Please contact us if
you can not find an appropriate architecture dependent archive.
@end ifclear

You can obtain these (and other) archives from
@display
@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular}.
@end display

@include register.texi

@heading To install SINGULAR

Make sure that you have approximately 12MByte of free disk space and follow
these steps.
@enumerate
@item
Simply change to the directory in which you wish to install
@sc{Singular} (usually wherever you install 3rd-party software), for example:
@smallexample
cd /usr/local
or
mkdir install;cd install
(you do not need root privileges in this case)
@end smallexample

@sc{Singular} specific subdirectories will be created in such a way
that multiple versions and multiple architecture dependent files
of @sc{Singular} can peaceably coexist under the same @code{/usr/local}
tree.

@item
Unpack the archives:
@smallexample
gzip -dc <path_to>/Singular-@value{VERSION}-@value{_UNAME}.tar.gz | tar -pxf -
gzip -dc <path_to>/Singular-@value{VERSION}-share.tar.gz | tar -pxf -
@end smallexample
@c version 2-0-x does not have *-share.zip:
@c If you have downloaded @code{Singular-@value{VERSION}-share.zip},
@c unpack with
@c @smallexample
@c unzip -u Singular-@value{VERSION}-share.zip
@c @end smallexample

This creates the the directory Singular/@value{VERSION} with
@multitable @columnfractions .36 .64
@item (sub)directories
@tab  which contain
@item @code{@value{_UNAME}}
@tab @code{Singular} and @code{ESingular} executables
@item @code{LIB}
@tab @sc{Singular} libraries (@code{*.lib} files)
@item @code{emacs}
@tab files for the @sc{Singular} Emacs user interface
@item @code{info}
@tab info files of @sc{Singular} manual
@item @code{html}
@tab html files of @sc{Singular} manual
@item @code{doc}
@tab miscellaneous documentation files
@item @code{examples}
@tab @sc{Singular} examples (@code{*.sing} files)
@end multitable

For the executable to work, the directory layout must look pretty much
like this; the executable looks for "sibling" directories at run-time
to figure out where its @sc{Singular} libraries and on-line
documentation files are. These constraints on the local directory layout
are necessary to avoid having to hard-code pathnames into the
executables, or require that environment variables be set before
running the executable. In particular, you @strong{must not move or copy}
the @sc{Singular} executables to another place, but use soft-links
instead.
@end enumerate

The following steps are optional:

@itemize @bullet
@item
Arrange that typing @code{Singular} at the shell prompt starts up the
installed @sc{Singular} executable.

If you have root permission, do:
@smallexample
ln -s `pwd`/Singular/@value{VERSION}/@value{_UNAME}/Singular  /usr/local/bin/Singular-@value{VERSION}
ln -s `pwd`/Singular/@value{VERSION}/@value{_UNAME}/ESingular  /usr/local/bin/ESingular-@value{VERSION}
ln -s /usr/local/bin/Singular-@value{VERSION} /usr/local/bin/Singular
ln -s /usr/local/bin/ESingular-@value{VERSION} /usr/local/bin/ESingular
@end smallexample

Otherwise, append the directory
@code{`pwd`/Singular/@value{VERSION}/@value{_UNAME}/} to your @code{$PATH}
environment variable. For the @code{csh} (or, @code{tcsh}) shell do:
@smallexample
set path=(`pwd`/Singular/@value{VERSION}/@value{_UNAME} $path)
@end smallexample
For the @code{bash} (or, @code{ksh}) shell do:
@smallexample
export PATH=`pwd`/Singular/@value{VERSION}/@value{_UNAME}/:$PATH
@end smallexample

You also might want to adjust your personal start-up files
(@code{~/.cshrc} for @code{csh}, @code{~/.tcshrc} for @code{tcsh}, or
@code{~/.profile} for @code{bash}) accordingly,
so that the @code{$PATH} variable is set automatically each time you login.

@strong{IMPORTANT:} Do @emph{never} move or copy the file
@code{Singular/@value{VERSION}/@value{_UNAME}/Singular} to another
place, but use soft-links instead.

@item
If you wish to use any of following features of
@sc{Singular}, make sure that the respective programs are installed on your system:

@multitable @columnfractions .5 .5
@item @strong{Feature} @tab @strong{Requires}
@item running @code{ESingular}, or @code{Singular} within Emacs
@tab @uref{http://www.fsf.org/software/emacs/emacs.html,,Emacs} version
20 or higher, or, @uref{http://www.xemacs.org,,XEmacs} version 20.3 or
higher (ESingular is only included in the Linux distribution,
on other Unix platforms you can download the
@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/src/,,
Singular emacs lisp files} but we give no warranties for specific platforms).
@item on-line @code{html} help
@tab @uref{http://www.netscape.com,,netscape} browser
@item on-line @code{info} help
@tab @uref{http://www.texinfo.org,,info}, or
@uref{http://math-www.uni-paderborn.de/~axel/tkinfo/,,tkinfo} texinfo browser programs
@item TAB completion and history mechanism of ASCII-terminal interface
@tab shared @uref{ftp://ftp.de.uu.net/pub/gnu/readline/,,readline}
library, i.e. @code{/usr/lib/libreadline.so}
@item visualization of curves and surfaces
@tab
@uref{http://www.mathematik.uni-mainz.de/AlgebraischeGeometrie/surf/surf.shtml,,surf}
version 0.9 or higher (only available for Linux and Solaris).
@end multitable

You may download most of these programs from
@display
@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/utils/}.
@end display

@item Customize the on-line help system:

By default, on-line help is displayed in the @code{html} format using
the @code{netscape} program.

However, this behavior can be customized in several ways
using the @sc{Singular} commands @code{system("--browser",<browser>)}
and @code{system("--allow-net", 1)} (or, by starting up @sc{Singular}
with the respective command line options).

In particular, creating the file
@code{Singular/@value{VERSION}/LIB/.singularrc} and putting the
@sc{Singular} command
@smallexample
system("--allow-net", 1);
@end smallexample
in it, allows the on-line help system to fetch its @code{html} pages
from @uref{http://www.singular.uni-kl.de, Singular's WWW
home site}
in case its local html pages are not found. That is, you may delete your
local html pages, after setting this option.

See also
@ifset singularmanual
@ref{The online help system}, @ref{Command line options}, and
@ref{Startup sequence},
@end ifset
@ifclear singularmanual
the sections @emph{The online help system}, @emph{Command line options}, and
@emph{Startup sequence} in the @sc{Singular} manual
@end ifclear
for more details on customizing the on-line help system.

@item
Add the line
@smallexample
* Singular:(singular.hlp).     A system for polynomial computations
@end smallexample
to your system-wide @code{dir} file (usually @code{/usr/info/dir} or
@code{/usr/local/info/dir} and  copy or soft-link the file
@code{Singular/@value{VERSION}/info/singular.hlp}
to the directory of your @code{dir} file.
@*This assures that the
@sc{Singular} manual can be  accessed from stand-alone texinfo
browser programs such as @code{info} or @code{Emacs}.
(It is not necessary for the use of the help system from within @code{Singular}.)
@end itemize

@heading Troubleshooting

@itemize @bullet
@item General: @sc{Singular} can not find its libraries or on-line help
@enumerate
@item
Make sure that you have read and/or execute permission the files and
directories of the Singular distribution. If in doubt, @code{cd} to the
directory where you unpacked @sc{Singular}, and do (as root, if
necessary):
@smallexample
chmod -R a+rX Singular
@end smallexample

@item
Start up @sc{Singular}, and issue the command @code{system("Singular");}.
If this does not return the correct and expanded location of the
@sc{Singular} executable, then you found a bug in @sc{Singular}, which we
ask you to report (see below).
@item
Check whether the directories containing the libraries and on-line help
files can be found by @sc{Singular}: If @code{$bindir} denotes the
directory where the @sc{Singular} executable resides, then @sc{Singular}
looks for library files as follows:
@* (0) the current directory
@* (1) all dirs of the environment variable SINGULARPATH
@* (2) @code{$bindir/LIB}
@* (3) @code{$bindir/../LIB}
@* (4) @code{/usr/local/Singular/@value{VERSION}/LIB}
@* (4) @code{/usr/local/Singular/LIB}
@* The on-line @code{info} files need to be at  @code{$bindir/../info} and the
@code{html} pages at @code{$bindir/../html}.
@end enumerate

You can inspect the found library and @code{info}/@code{html}
directories by starting up @sc{Singular} with the
@code{--version} option, or by issuing the @sc{Singular} command
@code{system("--version");}.

@item Under SuSE-Linux, @sc{ESingular} does not display a prompt:
@cindex SuSE, ESingular bug
@cindex ESingular, no prompt
@cindex bug, ESingular
This is due to the very restrictive access rights of @code{/dev/pty*} of
the standard @uref{http:/www.suse.de,SuSE} distribution (starting from
version 6.3 on). As root, do one of the following: Either
@example
chmod 666 /dev/pty*
@end example
or,
@example
chmod g+s $(which emacs)
chgrp tty $(which emacs)
chmod g+s $(which xemacs)
chgrp tty $(which xemacs)
@end example
See also @uref{http://sdb.suse.de/sdb/de/html/ke_devpts-63.html} for
details.

@item For @code{HPUX} systems:
@*The /etc/termcap files which are pre-installed on these systems are
broken which leads to messages like
@example
Name collision between 9826 9836
@end example
when @sc{Singular} is started. To fix this, you can get fixed termcap
files from @uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/utils}
by downloading the files termcap-<uname-description> and either
replace your /etc/termcap file by the file found there, or view, and
redo the respective changes by @code{diff}'ing the downloaded and the
original file.

@item For @code{ix86-Linux} systems:
@*Due to some incompatibilities of shared libraries, the start-up of
@sc{Singular} might fail with messages like
@example
  Can not find shared library ...
@end example
For DEBIAN systems, try to do
@code{ln -s /usr/lib/libncurses.so /usr/lib/libncurses.so.4}.
@*If this fails (and on other systems)
download and install
@code{Singular-@value{VERSION}-ix86-Linux-static.tar.gz}.

@item For @code{AIX} systems:
@*The default @code{info} program of the system is not GNU's texinfo
browser which is used to display the on-line documentation in the
@code{info} format. Therefore, the distribution of the AIX executable
already contains the @code{info} browser program.
If you remove this program, make sure that the GNU
@code{info} program is executed if you call '@code{info}' from your shell.

@item For any other troubles:
@*Please send an email to @email{singular@@mathematik.uni-kl.de}
and include the header which is displayed by starting up @sc{Singular}
with the @code{-v} option, and a description of your machine (issue the
command @code{uname -a} on your shell) in your report.
@end itemize

@include info.texi

@ifclear singularmanual
GOOD LUCK and ENJOY!
Your @sc{Singular} team.
@end ifclear


code:
@comment -*-texinfo-*-
@comment Id: INSTALL_win.texi,v 1.1 2003/08/08 14:27:06 pertusus Exp $
@c FILE:    INSTALL.texi
@c PURPOSE: Installation instructions for Singular on MSWindows
@c          This file is displayed during installation and copied to
@c          /etc/INSTALL

@c use set CD for producing a special INSTALL_win which will be opened
@c by the autorun on the Singular CD

@ifclear singularmanual
@c @set CD
@end ifclear

@ifclear VERSION
@include version.texi
@end ifclear

@ifclear singularmanual
@majorheading Installation instructions for Singular on MS Windows.
@end ifclear

@heading For the impatient:
@itemize
@item
If you run Windows NT/2K/XP, make sure you are logged in with the
@code{Administrator} rights.
@item
If you have some older version of @code{Singular} installed, please uninstall it
before installing @code{Singular-@value{VERSION}}. It is recommended to
install the new @code{Singular} in the same directory where the previous
version was installed. Thus your existing environment will be used automatically.
@item
If you have @code{Cygwin} or @code{XEmacs} installed and they do not belong
of some previous @code{Singular} installation,
please read the information below.
@item
Execute the self-extracting installation archive and
@strong{carefully} follow the instructions given there.
Setup will analyze your system, create the corresponding configuration
and give you further tips on the installation process.
@item
In case of troubles, see the installed files @code{/etc/INSTALL.txt},
@code{/etc/TROUBLESHOOTING.txt} or visit
the @strong{Singular Forum} at @uref{http://www.singular.uni-kl.de/forum}.
@end itemize

@ifset CD
@ifhtml
@heading @strong{ @uref{Singular-@value{VERSION}-Typical.exe, Install Singular-@value{VERSION} Now!}}
@end ifhtml
@end ifset

@heading Installation preliminaries

Running @code{Singular} on MS Windows requires that the Cygwin DLL
(dynamically linked library) version 1.3.9 or higher is installed on your
system (see @uref{http://sources.redhat.com/cygwin/} for details about
Cygwin). We install and configure @code{Cygwin} version 1.3.9 automatically, if
the @code{BasicCygwin} component is selected (default setting).

To run @code{ESingular} (i.e. @code{Singular} within its Emacs interface) on
MS Windows requires furthermore that the @code{XEmacs} editor is installed on
your system. We install and configure @code{XEmacs} version 21.1.13 automatically, if the @code{XEmacs} component is selected.

@cindex Windows installation, components
@cindex Components of Windows installation

The @code{Singular} installation is divided into the following
components (you see them explicitly if you choose the Custom Setup Type
during the installation):
@table @code
@item @strong{Program Files:}
        @table @code
@item Singular
Contains the @code{Singular} Program, documentation and example files.
@*All files of this component are installed under the directory
@code{/usr/local/Singular/@value{VERSION}}
@item BasicCygwin
Contains the Cygwin DLL and basic tools/programs (like @code{bash} or
@code{info}) of the  Cygwin environment.
@*The Cygwin DLL and programs are installed in the directory
@code{/bin}. Miscellaneous documentation and configuration files are
installed into the directory @code{/etc}.
@item XEmacs
Contains the Cygwin port of the @code{XEmacs} editor (see
@url{http://www.xemacs.org} for more about @code{XEmacs}) version 21.1.13.
@*All files of this component are installed under the directory
@code{/usr/local}.
@item ESingular
Contains the @code{ESingular}, the most comfortable Singular interface.
Requires @code{XEmacs} to run.
        @end table
@item @strong{Remark:}
All essential DLLs, some programs and symbolic links are installed in the directory
@code{/usr/local/Singular/@value{VERSION}/ix86-Win}, which must be present in your @code{PATH} system variable.
@item @strong{Help Files:}
@table @code
@item WinHelp
Contains Singular Manual, converted to Windows help format (.hlp).
We recommend to install it, because it is small in size. Moreover,
we set it as default help browser in all the Singular executables.
@item HTML Help
Contains the "native" Singular Manual. It's not included by default,
because it is much bigger than WinHelp, though it has better typesetting
of mathematical formulae.
@end table
@end table

The Typical Setup Type of the Singular-@value{VERSION}-Typical.exe contains
@code{BasicCygwin}, @code{Singular},
@code{XEmacs}, @code{ESingular}, @code{WinHelp} and @code{HTML Help}
components. The Compact Setup Type does not contain only the @code{HTML Help} component.

@ifclear CD
@heading Downloading preliminaries

To install @code{Singular} on a PC running Windows 95/98/ME/NT/2K/XP, you need
to download @strong{one} of the following archive files:

Minimal archive: @uref{Singular-@value{VERSION}-Compact.exe, Singular-@value{VERSION}-Compact.exe}      (@code{BasicCygwin}, @code{Singular}, @code{WinHelp} components)

Typical archive : @uref{Singular-@value{VERSION}-Typical.exe, Singular-@value{VERSION}-Typical.exe}      (@code{BasicCygwin}, @code{Singular}, @code{XEmacs}, @code{ESingular}, @code{WinHelp}, @code{HTML Help} components)

You can obtain these (and other) archives
either from the @code{WINDOWS} directory on the @code{Singular} CD or from
@display
@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/}.
@end display

@end ifclear

@ifclear singularmanual
@strong{Important:} Please see
@ifhtml
@uref{COPYING.htm, COPYING.htm}
@end ifhtml
@ifnothtml
the file @code{/etc/COPYING.txt} contained in the distribution
@end ifnothtml
for license information on @code{Singular}. Please register yourself as a
@code{Singular} user by using the registration form on the @code{Singular}
homepage @uref{http://www.singular.uni-kl.de}.
If for some reason you cannot access the registration form, you can also
register by sending an email to @email{singular@@mathematik.uni-kl.de}
with subject line @code{register} and body containing the following data:
your name, email address, organisation, country and platform(s).
@end ifclear

@heading Installing Singular

The recent Setup program analyzes your system, e.g. it detects
whether Cygwin and XEmacs are present and functional. Then it gives you
hints and/or error messages with instructions during the installation.

@table @code
@item If you have Cygwin installed
        If the version of @code{cygwin1.dll} is not less than 1.3.9,
        you will be prompted that the @code{BasicCygwin} component will not
        be installed. Moreover, the existing Cygwin root directory will be proposed as
        the default installation directory. You can accept it, then
        @code{Singular} will be placed into the existing Cygwin environment.
        If you choose another destination, @code{Singular} will use Cygwin
        programs anyway. If your Cygwin has incorrect settings (like
        inconsistent mount points among the important ones), @code{Singular}
        Setup will correct them.
@*      If setup could not detect @code{cygwin}, present in the system, you
        can try to break the installation, start it once more, choose the
        "Custom" setup type and unselect the @code{BasicCygwin} component.

@item If you have XEmacs installed
        The @code{Cygwin} port of @code{XEmacs} version 21.1.13 together
        with the most
        important packages is included in the distribution. The use of
        non-@code{Cygwin} ports or earlier @code{Cygwin} ports has some
        quirks and does not work
        properly together with @code{Singular} (i.e., running @code{ESingular}
        results in problems). Nevertheless, if you want to test the
        compatibility of @code{ESingular} with your own @code{XEmacs}, just
        de-select the XEmacs component, but leave @code{ESingular} selected.
        If your @code{XEmacs} happens to be incompatible with ESingular, you can
        install just the XEmacs component and use in fact two different
        @code{XEmacs} programs.
        The setup program will search for @code{XEmacs} and packages
        in @code{<TARGETDIR>/usr/local/lib} (here @code{<TARGETDIR>} is the directory which you selected while running setup). If you have @code{Cygwin} and the Cygwin port of
        @code{XEmacs}, you might have @code{XEmacs} installed there. To avoid overwriting your @code{XEmacs} files, setup will ask you what to do.
@end table

@ifset CD
@ifhtml
@heading @strong{ @uref{Singular-@value{VERSION}-Typical.exe, Install Singular-@value{VERSION} Now!}}
@end ifhtml
@end ifset

@heading Customizing Singular

The following step(s) are optional:
@itemize
@item
To conveniently access all files on your computer, mount the drives of
your disk(s):
@enumerate
@item
Open a rxvt terminal (from Start->Programs->Singular 2.0->Tools).
@item
For each drive (letter) issue the following command (the drive @code{C:}
is used in the example):
@example
mount -f -s -t C: /C
@end example
@end enumerate
After mounting the drive(s) this way, you can conveniently access the
files on a drive from the @code{bash} shell and from @code{XEmacs} using the @code{/C/} prefix. Otherwise, you need to type @code{/cygdrive/C} - that is
the Cygwin convention. You can get more information on @code{mount} command by invoking @code{mount --help}. Command @code{umount} unmount the selected
mount point.

@item
Create your personal @code{HOME} directory.
@*Various applications (e.g., @code{bash} or @code{XEmacs}) store
user-specific configuration/customization files in the @code{HOME}
directory of the current user. During the installation, the @code{HOME}
directory is globally set for all users to @code{/home/Singular}. To
create your individual  @code{HOME} directory follow these steps:
@enumerate
@item
Create a directory (folder), say, @code{C:\home\MyHome}.
@item
Copy all files from @code{/home/Singular} to @code{C:\home\MyHome}.
@item
Set the @emph{user} environment variable @code{HOME} to @code{C:\home\MyHome}:
@*On Windows 95/98/ME, edit the respective line the @code{AUTOEXEC.BAT}
file.
@*On Windows NT/2K/XP add an entry in your @code{Environment} control
panel.
@item
Restart your computer (On Windows 95/98/ME).
@end enumerate
You may furthermore examine the files copied into your @code{HOME}
directory and adjust (i.e. edit) them to your personal
preferences/needs. System-wide settings are stored in the file
@code{/etc/profile}.

@end itemize

@heading Uninstalling Singular

You can uninstall individual or all installed components by opening the
@code{Software} shortcut of the @code{Control panel}.
Simply double-click the @code{Singular} item and
follow the instructions given there.

For any other troubles,
please send an email to @email{singular@@mathematik.uni-kl.de}
and include the header which is displayed by starting up @code{Singular}
with the @code{-v} option, and a description of your machine and
operating system.

@include info.texi

@ifclear singularmanual
GOOD LUCK and ENJOY!
Your @code{Singular} team.
@end ifclear


code:
EXTRA_DIST = \
COPYING.texi          math.tex                  start.tex                \
examples.tex          NEWS.texi                              \
exmpl.tex             pdata.tex                 ti_ip.tex                \
general.tex           platform.tex              tricks.tex               \
info.texi             README_distribution.texi  TROUBLESHOOTING_win.texi \
INSTALL_mac.texi      README_download.texi      tutor.tex                \
INSTALL_osx.texi      README_ftp.texi           tutor-titlepage.tex      \
INSTALL_rpm.texi      README_src.texi           types.tex                \
INSTALL_unix.texi     reference.tex             uname.texi               \
INSTALL_win.texi      register.texi             usercard.tex             \
lib2doc.texi          singcard.tex              version.texi             \
manual-titlepage.tex  singular.texi \
 d2t_singular t2h_singular.init tests.txt
# res

DISTCLEANFILES = tests.log tests.out

distclean-local:
	rm -rf out out_all out_info diffs


code:
@comment -*-texinfo-*-
@comment Id: NEWS.texi,v 1.1 2003/08/08 14:27:06 pertusus Exp $
@comment this file contains the News about Singular versions
@comment Unix
@ifclear VERSION
@include version.texi
@end ifclear

@majorheading NEWS in SINGULAR @value{VERSION}

@ifclear singularmanual
@macro nref{what}
\what\
@end macro
@end ifclear

@ifset singularmanual
@macro nref{what}
@ref{\what\}
@end macro
@end ifset

The current version @value{VERSION} is an update to the
release series version 2-0.

Changes with respect to version 2-0-3:

@heading Factorizing algorithms revisited
Starting with version 2-0-4, we use NTL (by Victor Shoup) for factoring
univariate polynomials. The multivariate factoring code in libfac/factory
does now also work over algebraic extension fields.

@heading Help system is configurable via LIB/help.cnf
The help browsers of Singular can be configured via the file
LIB/help.cnf, also the addition of new help browsers is possible.

@heading Extensions of the ring concept

@table @asis
@item new coefficient domains: arbitrary long real and complex numbers
@item no restriction on number of parameters
@item degree bound on exponent values (maximum is now 2^31, standard 2^15)
@item non-positives weights get a better handling (converts wp/Wp to ws/Ws)
@item handle blocks of mixed orders correctly
@item maximal prime characteristic is now 2147483629 instead of 32003
@c @item TBC: parameters over real/complex
@c @item TBC: declaration with "ring of ring".
@end table

@heading Changes in @sc{Singular} libraries
The documentation of libraries was generally improved.
@table @asis
@item @nref{equising_lib}
procedures esStratum, isEquising now also for reducible polynomials
@*new procedures: tau_es (codim of mu-const stratum in semi-universal def. base);
esIdeal ((Wahl's) equisingularity ideal)
@item @nref{gaussman_lib}
added bernstein: roots of the Bernstein polynomial of t
@item @nref{hnoether_lib}
HNdevelop, reddevelop, essdevelop are obsolete, replaced by hnexpansion
@*multsequence is "repaired" (since branches computed by hnexpansion
et al) are now ordered according to the needs of multsequence.
@*newtonpoly needs no longer that ordering of the basering is ls
@*new procedures: is_NND      test if f is Newton non-degenerate
@item @nref{homolog_lib}
new procedures: depth, fitting, flatteningStrat, isCM, isFlat, isLocallyFree,
isReg, KoszulHomology, tensorMod, Tor
@item @nref{matrix_lib}
in proc tensor(A,B):  check if ncols(A)==0
@item @nref{normal_lib}
new procedure: deltaLoc(f,S);      (sum of) delta invariant(s) at conjugated
singular points
@*proc genus makes now use of is_NND of hnoether.lib
@item @nref{primdec_lib}
optimizations again
@item @nref{solve_lib}
procedure laguerre_solve ignores no longer the 2nd parameter (precision of
internal computation)
@* new procedure simplexOut:     prints solution of simplex in nice format
@end table

@heading Internal Changes
@table @asis
@item normal form computation uses
Bucket representation of polynomials.
@item factorization
revisited, missing cases implemented
@item NTL
NTL is used for univariate factorization
@item source code
adapted for use with gcc 3.1/3.2, gmp 4.x
@end table

@heading Porting
@itemize @bullet
@item Singular is available for ix86-libc5, ix86-libc6, HPUX_9, HPUX_10,
SunOS-4, SunOS-5, IRIX-6, ix86-Win (Windows 95/98/ME/NT/2K/XP),
FreeBSD 4.x, MacOS X
@c @item @code{dbm} functionality is not available on
Windows 95/98/ME/NT/2K/XP and MacOS X
@item @code{MP} functionality is not available on
Windows 95/98/ME/NT/2K/XP and MacOS X.
@item Singular 2-0-2 was the last version for MacOS 9
@end itemize


code:
@comment -*-texinfo-*-
@comment Id: README_distribution.texi,v 1.1 2003/08/08 14:27:06 pertusus Exp $
@c FILE: README_distribution.texi
@c PURPOSE: general README file to be included in the distribution
@c

@ifclear VERSION
@include version.texi
@end ifclear

@majorheading README file for the @sc{Singular} distribution

@sc{Singular} is a Computer Algebra system for polynomial computations
with special emphasize on the needs of commutative algebra, algebraic
geometry, singularity theory and polynomial system solving. For a more
detailed overview of
@sc{Singular}, see
@display
@uref{http://www.singular.uni-kl.de/Overview/}
@end display

@sc{Singular} version 2 is generally much faster than any previous version of
@sc{Singular}, due to a rewriting of major parts of
the @sc{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 these internal changes, @sc{Singular} version 2 offers many new features
and functionalities (which were already partly included in the 1-3 series).
E.g., a native Windows distribution, an Emacs user interface,
a new help system, 16 new libraries, etc.

@macro nref{name,url}
@ifhtml
@item @uref{\url\,,\name\}
@end ifhtml
@ifnothtml
@item @code{\name\}
@end ifnothtml
@end macro

See the files
@table @asis
@nref{NEWS, NEWS.html}
for news and changes of this version
@nref{COPYING, COPYING.html}
for license information for @sc{Singular}
@nref{INSTALL, INSTALL.html}
for installation instructions, troubleshooting tips, and answers to
Frequently Asked Questions (FAQs).
@end table

More and up-to-date information about @sc{Singular} is always available
from
@display
@uref{http://www.singular.uni-kl.de}.
@end display
We very much welcome any comments, questions, and bug reports,
especially comments about our new version. Please
contact us at
@display
@email{singular@@mathematik.uni-kl.de}.
@end display

GOOD LUCK and ENJOY!
Your @sc{Singular} team.


code:
@comment -*-texinfo-*-
@comment Id: README_download.texi,v 1.1 2003/08/08 14:27:06 pertusus Exp $
@c FILE: README_download.texi
@c PURPOSE: downloading instructions, to be includeded in manual and README_ftp
@c

@ifclear VERSION
@include version.texi
@end ifclear

@heading To download @sc{Singular} for a Unix platform

Make sure that you have approximately 20 MByte of free disk space and follow
these steps.

@enumerate
@item
You need to download two (archive) files:
@table @code
@item Singular-@value{VERSION}-share.tar.gz
contains architecture independent data like documentation and libraries
@*@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/UNIX/Singular-@value{VERSION}-share.tar.gz}
@item Singular-@value{VERSION}-<uname>.tar.gz
contains architecture dependent executables, like the @sc{Singular}
program.
@end table
@code{<uname>} is a description of the processor and operating
system for which @sc{Singular} is compiled. Choose one of the following:
@multitable @columnfractions .2 .8
@item @code{ix86-Linux}
@tab PC's running under Linux with @code{libc} version 6 (e.g., for SuSe
Linux distribution version >= 6; RedHat Linux distribution version >= 5.2).
@*
@*@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/UNIX/Singular-@value{VERSION}-ix86-Linux.tar.gz}
@item @code{ix86-Linux-libc5}
@tab PC's running under Linux with @code{libc} version 5 (if you are not
sure which @code{libc} version you have, run @code{ldd /bin/ls}).
@*@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/UNIX/Singular-@value{VERSION}-ix86-Linux-libc5.tar.gz}
@item @code{ix86-freebsd}
@tab 's running under FreeBSD
@*@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/UNIX/Singular-@value{VERSION}-ix86-freebsd.tar.gz}
@item @code{ix86-Win}
@tab PC's running Windows 95/98/ME/NT/2K/XP which have Cygwin version 1.3.9 (or
higher) already installed. Unless you are familiar with Cygwin, we
recommend that you download one of the self-extracting archives as
described below.
@item @code{HPUX-9}
@tab HP workstations running under HPUX version 9
@*@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/UNIX/Singular-@value{VERSION}-HPUX-9.tar.gz}
@item @code{HPUX-10}
@tab HP workstations running under HPUX version 10
@*@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/UNIX/Singular-@value{VERSION}-HPUX-10.tar.gz}
@item @code{SunOS-5}
@tab Sun workstations running Solaris version 5
@*@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/UNIX/Singular-@value{VERSION}-SunOS-5.tar.gz}
@item @code{IRIX-6}
@tab IRIX workstations running IRIX version 6
@*@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/UNIX/Singular-@value{VERSION}-IRIX-6.tar.gz}
@item @code{AIX-4}
@tab AIX workstations running AIX version 4
@*@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/UNIX/Singular-@value{VERSION}-AIX-4.tar.gz}
@item @code{PowerMacintosh-darwin}
@tab PowerMacintosh running Mac OS X
@*@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/MAC/OsX/Singular-@value{VERSION}-PowerMacintosh-darwin.tar.gz}
@item @code{DecAlpha-Linux}
@tab Digital Dec Alpha running Linux (RedHat 5.2)
@*@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/UNIX/Singular-@value{VERSION}-DecAlpha-Linux.tar.gz}
@item @code{DecAlpha-OSF1}
@tab Digital Dec Alpha running OSF 1
@*@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/UNIX/Singular-@value{VERSION}-DecAlpha-OSF1.tar.gz}
@end multitable
Please contact us if
you can not find an appropriate architecture dependent archive.

@item
Simply change to the directory in which you wish to install
@sc{Singular} (usually wherever you install 3rd-party software):
@smallexample
cd /usr/local/
@end smallexample

@sc{Singular} specific subdirectories will be created in such a way
that multiple versions and multiple architecture dependent files
of @sc{Singular} can peaceably coexist under the same @code{/usr/local/}
tree.

@item
Unpack the archives:
@smallexample
gzip -dc Singular-@value{VERSION}-<uname>.tar.gz | tar -pxf -
gzip -dc Singular-@value{VERSION}-share.tar.gz | tar -pxf -
@end smallexample
If you have downloaded @code{Singular-@value{VERSION}-share.zip},
unpack with
@smallexample
unzip -u Singular-@value{VERSION}-share.zip
@end smallexample

@item
After unpacking, see the created file
@code{Singular/@value{VERSION}/INSTALL} (which is also located at
@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/INSTALL_unix.html}
for details on how to finish the installation.
@end enumerate

@heading To download @sc{Singular} for Windows 95/98/ME/NT/2K/XP

@enumerate
@item
Download one of the following self-extracting archives:
@table @code
@item @uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/WINDOWS/Singular-@value{VERSION}-Compact.exe,Singular-@value{VERSION}-Compact.exe}
Minimal archive to download. Installs Singular and minimal set of needed
tools and DLLs.
@item @uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/WINDOWS/Singular-@value{VERSION}-Typical.exe,Singular-@value{VERSION}-Typical.exe}
Typical archive to download. Installs Singular and the XEmacs editor to
run ESingular.
@end table

@item
Double-click (or, execute), the self-extracting archives, and
@strong{carefully} follow the instructions given there.

@item
If, while running setup, you obtain the following message
@code{Setup failed to launch installation engine:}
@code{Error loading type library/DLL}, then you need to download and execute Microsoft DCOM98 package
@uref{http://www.microsoft.com/com/dcom/dcom98/download.asp}.
Such a problem could appear on Win 95/98.

@item
In case of problems, see the created file
@code{/etc/INSTALL.txt} (which is also located at
@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/WINDOWS/INSTALL_win.htm}
for details on how to finish the installation.
@end enumerate

@heading To download @sc{Singular} for the Macintosh
For the @sc{Singular} version for Mac OS X refer to the Unix section.
@*The @sc{Singular} version for Mac OS 9 is available as
@uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/MAC/classic/Singular-2-0-2-html.sea.hqx} (documentation) and @uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/MAC/classic/Singular-2-0-2-ppc-MPW.sea.hqx} (binaries and libraries).
The file @uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/MAC/classic/INSTALL_mac.html}
gives details on how to finish the installation.


code:
@comment -*-texinfo-*-
@comment Id: README_ftp.texi,v 1.1 2003/08/08 14:27:06 pertusus Exp $
@c FILE: README_download.texi
@c PURPOSE: This should reside as README file in the main directory of the
@c          Singular ftp site.

@ifclear VERSION
@include version.texi
@end ifclear

@majorheading Welcome to the Main FTP site of SINGULAR

@sc{Singular} is a Computer Algebra system for polynomial computations
with special emphasis on the needs of commutative algebra, algebraic
geometry, singularity theory and polynomial system solving. For a more
detailed overview of
@sc{Singular}, see
@display
@uref{http://www.singular.uni-kl.de/Overview/}
@end display

@sc{Singular} is developed on UNIX systems (Linux and HPUX).
Moreover, there exist ports to FreeBSD, SunOS, IRIX, AIX,
and Windows 95/98/ME/NT/2K/XP.
If your operating system is not in this list you may try to port
@sc{Singular} to your platform
(see @uref{http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/src/README.html})

@macro nref{name,url}
@ifhtml
@item @uref{\url\,,\name\}
@end ifhtml
@ifinfo
@item @code{\name\}
@end ifinfo
@end macro

In this directory you find the following files:
@table @asis
@nref{NEWS, NEWS.html}
news and changes of this version
@nref{COPYING, COPYING.html}
license information for @sc{Singular}
@nref{INSTALL_unix, INSTALL_unix.html}
Unix installation instructions
@nref{INSTALL_win, INSTALL_win.html}
Windows installation instructions
@item @code{Singular-@value{VERSION}-share.tar.gz}
@sc{Singular} distribution archive which contains architecture
independent data like documentation and libraries.
@item @code{Singular-@value{VERSION}-<uname>}.tar.gz
@sc{Singular} distribution archives which contain architecture dependent
executables, like the @sc{Singular} program.
@end table

@include README_download.texi

@heading More information about @sc{Singular}: Comments, Questions, Bug Reports

More and up-to-date information about @sc{Singular} is always available
from
@display
@uref{http://www.singular.uni-kl.de/}.
@end display
We very much welcome any comments, questions, and bug reports,
especially comments about our new version. Please
contact us at
@display
@email{singular@@mathematik.uni-kl.de}.
@end display

GOOD LUCK and ENJOY!
Your @sc{Singular} team.


code:
@comment -*-texinfo-*-
@comment Id: README_src.texi,v 1.1 2003/08/08 14:27:06 pertusus Exp $
@c FILE: README_src.texi
@c PURPOSE: This should reside as README file in the src directory of the
@c          Singular ftp site.

@ifclear VERSION
@include version.texi
@end ifclear

@majorheading Welcome to the Source FTP site of SINGULAR

@sc{Singular} is a Computer Algebra system for polynomial computations
with special emphasize on the needs of commutative algebra, algebraic
geometry, singularity theory and polynomial system solving. For a more
detailed overview of
@sc{Singular}, see
@display
@uref{http://www.singular.uni-kl.de/Overview/}
@end display

So far, there are only version for Linux, HPUX, SunOS, IRIX, AIX, FreeBSD 4.2,
MacOS X, MacOS 9, and Windows 95/98/ME/NT/2K/XP.

@macro nref{name,url}
@ifhtml
@item @uref{\url\,,\name\}
@end ifhtml
@ifinfo
@item @code{\name\}
@end ifinfo
@end macro

In this directory you find the following files:
@table @asis
@nref{COPYING, COPYING.html}
license information for @sc{Singular}
@item @code{Singular-@value{VERSION}-<package>.tar.gz}
@sc{Singular} distribution archive which contains the package @code{<package>}
@item @code{omalloc.tar.gz}
@sc{Singular} distribution archives which contains the package omalloc
@end table

@heading Compiling SINGULAR for a Unix platform

Make sure that you have approximately 120 MByte of free disk space and
follow these steps.

@enumerate
@item
Make sure that you have the following software (the list may be incomplete):
  @enumerate
  @item
  general unix utilities: grep, test, sed, cp, mv, gzip, uudecode, ...
  @item
  autoconf
  @item
  gnu-make
  @item
  gcc, g++ (version 2.7.2 preferred,
  but gcc version 2.6.3 to 2.95.3, egcs 1.0.3 and 1.1.2 should work,
  gcc 2.96 does not work)
  @item
  bison (version >= 1.2.2)
  @item
  flex (version >=2.4)
  @item
  perl (version >=5)
  @item
  library gmp (version 3.x.x)
  @item
  (optional) library libreadline
  @item
  (optional, required to build the documentation:)
  latex2html, tex, texi2html, texinfo
  @* (your latex2html should produce gif files, not png files)
  @end enumerate
@item
(optional, required for MP:)
@*make sure that you can log in to your computer via rsh/remsh
or ssh without a password (check .rhosts/.shosts);
otherwise the configure script stops while checking this:
if you cannot fix it, simply kill the rsh/ssh-processes
- the configure will then disable this particulare feature
@*The following is tested by configure
@*rsh localhost uname
@*ssh localhost uname
@*rsh `hostname` uname
@*ssh `hostname` uname
@item
You need to download all of the .tar.gz-files
@item
create a new working directory
@item
unpack all packages into that working directory
@item
(optional, for porting to a unknown machine:)
fix ./singuname.sh not to report something unknown, but to recognize the machine
@item
run ./configure
@*(try ./configure --help, ./omalloc/configure --help, ./MP/configure --help,
./factory/configure --help, ./Singular/configure --help for a list of
all options of configure)
@item
make install (resp. gmake install - the make program must be GNU-Make)
the make process will (hopefully) build:
  @enumerate
  @item
  omalloc: the memry management routines (required)
  @item
  MP: Multi-Protocoll (optional)
  @item
  factory (optional, but strongly recommended)
  @item
  libfac (optional, but strongly recommended)
  @item
  Singular (Kernel, required)
  @item
  doc (only possible, if all optional packages are included)
  @item
  emacs (only possible, if doc was build)
  @item
  IntegerProgramming
  @item
  misc
  @end enumerate
@item
if you want to make any change in the directory Singular,
run make depend there
@item
to install the resulting files at any other place in the system,
run
@*      make bindist sharedist
@*(sharedist can only be build if doc was build sucessfully)
and install the resulting .tar.gz files as explained
for the binary distribution
@item
if you compiled Singular for a non-standard architecture and
you are willing to share your porting effort,
upload the changed sources and the resulting binaries to
@code{ftp://www.mathematik.uni-kl.de/pub/Incoming}
and send us an email about it (Singular@@mathematik.uni-kl.de)
@item
bug-fixes or other improvements to the source code are welcome
@end enumerate

@heading Notes for specific platforms
@itemize @asis
@item Windows (Cygwin):@*
./configure --with-malloc=system
@item MacOS X:@*
you need a file values.h where MP can find it (we copied one from Linux)@*
./configure --with-malloc=system
@item DecAlpha/Linux:@*
egcs-1.1.2 does not work, but gcc version 2.95.2 does@*
./configure --without-MP
@item FreeBSD 4.2:@*
you need a file values.h where MP can find it (we copied one from Linux)@*
./configure --with-malloc=system
@end itemize

@heading Compiling SINGULAR for a Non-Unix platform

This is a non-trivial task. Please contact us directly.
(@uref{mailto:Singular@@mathematik.uni-kl.de})

GOOD LUCK and ENJOY!
Your @sc{Singular} team.


code:
@comment -*-texinfo-*-
@comment Id: TROUBLESHOOTING_win.texi,v 1.1 2003/08/08 14:27:06 pertusus Exp $
@c FILE:    INSTALL.texi
@c PURPOSE: Installation instructions for Singular on MSWindows
@c          This file is displayed during installation and copied to
@c          /etc/INSTALL

@ifclear VERSION
@include version.texi
@end ifclear

@ifclear singularmanual
@majorheading Troubleshooting for Singular on MS Windows.
@end ifclear

@strong{RECOMMENDATIONS:}
@itemize

@item If possible, install @code{Singular} in the directory, containing no spaces (that is, rather in @code{C:\Singular} than in @code{C:\Program Files\Singular})
@item If you have any earlier version of @code{Singular} installed, please uninstall it before setting up a newer version
@end itemize

@strong{GENERAL CONSIDERATIONS:}
@enumerate
@item In the text below, we assume the directory @code{C:\Singular} to be
the destination folder for the Singular installation.
@item For typing system commands (if required), you can use one of the three shells:
@itemize
@item rxvt terminal (Start->Programs->Singular 2.0->Tools->rxvt terminal, runs Unix Bash shell)
@item Bash shell (Start->Programs->Singular 2.0->Tools->Bash shell)
@item MS-DOS Command Prompt (Start->Programs->MS-DOS Command Prompt)
@end itemize
We highly recommend to use rxvt terminal.
@end enumerate

@table @strong

@item While extracting files, there is a message @code{Setup failed to launch installation engine:} @code{Error loading type library/DLL}.

Such a problem could appear on Win 95/98.
You need to download and execute Microsoft DCOM98 package
@uref{http://www.microsoft.com/com/dcom/dcom98/download.asp}.

@item On startup, the DLL @code{cygwin1.dll} can not be found.
@itemize
@item
Make sure that (1) the installation did not generate any error messages;
(2) you have rebooted your machine after a
successful installation (Win95/98/ME only);
(3) the @code{BasicCygwin} component was not de-selected
during a custom installation.
@c and (4) (eventually Win 95/98) the destination folder chosen during the installation does not contain folder names which are longer than 8 characters, or contain spaces or periods.
@item
Make sure that the file @code{C:\Singular\bin\cygwin1.dll} is present in your system.
@item
If the problem persists, please try to localize the source of the
problem as explained below, and, in any case, @emph{please send} an email
to  @email{singular@@mathematik.uni-kl-de} with a description of your problem.
@item
Make sure the directories @code{C:\Singular\bin} and @code{C:\Singular\usr\local\Singular\@value{VERSION}\ix86-Win}
are contained in your @code{PATH} environment variable. To
check this, open either an MS-DOS command prompt and type @code{PATH}
or an rxvt terminal and type @code{echo $PATH}. If these
directories are not contained in the listings of directories of the
@code{PATH} variable, set them as follows and then (on Win 95/98/ME only)
@emph{restart} your computer :
@*On Windows 95/98/ME, add the following line to your @code{AUTOEXEC.BAT}
file:
@example
SET PATH=C:\SINGULAR\BIN;C:\SINGULAR\USR\LOCAL\SINGBIN;%PATH%
@end example
On Windows NT/2K/XP add these paths to the @code{PATH} variable in your @code{Environment}
control panel.

@item
Make sure that your chosen destination folder is correctly mounted to the
root of your (Cygwin) file system: Open an rxvt terminal, and type in
@code{mount}. This should produce an output which looks like:
@example
Device              Directory           Type         Flags
C:\Singular         /                   system       binmode
@end example
If not, make sure that the @code{mount.exe} command is contained in this
directory, and then type at the command line:
@example
mount -f -s -t C:\Singular /
@end example
@end itemize

@item Could not get expanded executable from @code{/usr/local/Singular/@value{VERSION}/ix86-Win/Singular}
@item Error: Couldn't find @code{ESingular} anywhere
@* These problems have common origin - they indicate that @code{cygwin}
mounts are not correctly set.

@itemize
@item @strong{Step 1}. Searching for the wrong setting
@* Open an rxvt terminal and type @code{mount}. You will get a list of mounts,
present in the system. @code{Singular} installation creates
the following three mounts (they are of crucial importance for running
@code{Singular}) :
@example
C:\Singular\usr\lib on /usr/lib type system (binmode)
C:\Singular\bin on /usr/bin type system (binmode)
C:\Singular on / type system (binmode)
@end example
Moreover, if you create your own mounts, say,
executing @code{mount -f -u -t C: /C}, you will see more lines like this:
@example
C: on /C type user (textmode)
@end example
@item @strong{Step 2}. Removing the problem
@* If you see any extra mount points, which have the same posix name
(like "/", "/usr/bin", "/usr/lib"), you have to remove them.
@* Suppose there are two "root" mount points, namely
@example
C:\Singular on / type system (binmode)
C: on / type user (textmode)
@end example
You have to call the "unmount" procedure, which in this concrete
example will be @code{umount -u / }. Thus you remove the wrong
user mount and the correct one will be activated.
Type @code{umount --help} for more information on this command.

@item @strong{Alternative}
@* If you have problems removing or setting mount, you can
do it also with the Registry Editor. However, this is recommended
for advanced users.

@enumerate
@item Close all your cygwin-related applications
@item open Registry Editor
@item navigate either to @code{HKEY_CURRENT_USER} or
@code{HKEY_USERS\Default} window
(on Win NT/2K/XP you can also check @code{HKEY_LOCAL_MASHINE}).
@item go to @code{SOFTWARE/Cygwin Solutions/Cygwin/mounts v2}.
It is the place, where mount points are described. Suppose we
have an extra "/" mount like in the previous step.
Find the mount you need (that is, "/") and check its properties,
then delete the whole key (graphically it looks like the folder),
which corresponds to @code{C:} (do not delete the one
corresponding to @code{C:\Singular}!). After this, close
the Registry Editor, open rxvt terminal and type "mount" again.
Now the mounts should be correct.
@end enumerate
@end itemize

@item During the installation, an error is displayed complaining that an environment variable can not be set.
@*Repeat the installation, and make sure that:
@itemize
@item On Windows 95/98/ME, the file @code{C:\AUTOEXEC.BAT} is not
hidden and not write-protected.
@item On Windows NT/2K/XP, you are logged on either as user
@code{Administrator} or as a user with the Administrator rights during the installation.
@end itemize

@item @*On start-up of @code{ESingular}, the @code{xemacs} editor can not be found.
@*Make sure that (1) the folder @code{C:\Singular\usr\local\Singular\@value{VERSION}\ix86-Win} is contained in your
@code{PATH} (see above for details) and (2) that the file
@code{C:\Singular\usr\local\Singular\@value{VERSION}\ix86-Win\xemacs.exe} exists.
@*Open an rxvt terminal and type @code{xemacs}
(or, alternatively, @code{which xemacs}).
If this fails (or returns nothing), make sure your root mount "/" is set correctly (see above).

@item @*What help systems are available for @code{Singular}?
@*There are following help files in @code{C:\Singular\usr\local\Singular\@value{VERSION}}:
@itemize
@item @code{\info\singular.hlp} - Singular Manual in texinfo format,
@item @code{\html\Manual.hlp} - Singular Manual in Windows Help format (is set by default),
@item @code{\html\*.htm} (in the Typical and Custom setup components) - Singular Manual in HTML format.
@end itemize
@c @* The default help browser for Windows is set to @code{winhlp}.
@* You can tell Singular which help to use either from the command-line (e.g. @code{system("--browser","html")})
or add this command to the file @code{\LIB\.singularrc}.

@item @*There are @code{Singular.exe}, @code{TSingular.exe} and @code{ESingular.exe} files. What is the difference between them?
@*The most important executables in @code{C:\Singular\usr\local\Singular\@value{VERSION}\ix86-Win} are :
@itemize
@item @code{runESingular.exe} - Singular inside the XEmacs editor (appears only if XEmacs is installed),
@item @code{runTSingular.exe} - Singular inside the Cygwin xterm (rxvt) application,
@item @code{Singular.exe} - could be run from the command line either in a Bash shell, or in an MS-DOS command prompt.
For users convenience, the file @code{Singular-@value{VERSION}.exe} is just a link to @code{Singular.exe}.
@end itemize

@item @*How do I cut and paste with the mouse?
@*First of all, we remind what we call Unix-like cut and paste with the mouse : marking a region while
pressing a left button copies it to a buffer, a click on a middle-button pastes the current buffer at the current cursor position.
@itemize
@item @code{TSingular} and @code{ESingular} - under xterm and XEmacs, cut and paste works like under Unix
@item @code{Singular.exe} from a Bash shell - you can copy and paste a region selected with the
mouse using the @code{CTRL-Insert} (for copying) and @code{CTRL-Shift} (for paste) keys.
@item @code{Singular.exe} from a DOS window - under Windows NT/2K/XP, you can configure the shortcut
calling the Singular to work in the following manner: marking the region with a left-button,
pressing @code{Enter}, and then right mouse button to paste.
To enable this non-default feature, right-click on the Singular shortcut
on your desktop, check Properties, click on tab Options,
where check the "Quick-Edit Mode" and "Insert (Exclusive) Mode" boxes and apply changes.
Under Windows 95/98/ME, this unfortunately doesn't work properly.
@end itemize

@item @*How to uninstall Singular-@value{VERSION} under Windows manually?
@*The installation of Singular-@value{VERSION} for Windows consists of the three following components:
@*(C1) Essential files ( in the installation directory)
@*(C2) Shortcuts in Start Menu and on the Desktop
@*(C3) Registry entries (Win NT/2K/XP) or @code{autoexec.bat} entries (Win 95/98/ME)

@*To uninstall it, do the following :

@*(C1) The essential files can be removed directly using the Explorer.
@*(C2) To delete the shortcuts: right-click on the Start button, select
Open - All Users. Then you go to  the Program Files folder and you'll see
the Singular 2.0 folder there, which is to be deleted. The shortcuts on the Desktop could be removed directly using the Explorer.
@*(C3) At first,
@itemize
@item For Win 95/98/ME users : open the file @code{autoexec.bat}
@item For Win NT/2K/XP users : click  Start->Settings->Control Panel->System->Environment.
@end itemize

@* And then : just remove the line @code{HOME=...} if it corresponds to Singular-@value{VERSION} (i.e. if it looks like @code{HOME=C:\Singular\home\Singular}).
You can leave the @code{PATH} variable as it is,
but if you want to clean it anyway, try to figure out paths in it, which look like
@code{C:\Singular\bin; C:\Singular\usr\local\Singular\@value{VERSION}\ix86-Win}.
@strong{But don't delete the string @code{PATH} itself!}

@item @*How to configure Singular-@value{VERSION} for use by many users under Win NT/2K/XP?
@* You are installing Singular-@value{VERSION} with the administrator rights, the
@emph{system variables} @code{Path} and @code{HOME} are set by default. There exists also a
@emph{user variable} @code{HOME}, which overruns the system variable for the current user.
@* Assume that you have Singular-@value{VERSION} installed in the @code{C:\Singular} directory and your user is named @code{NewUser}.

@*1) Create the directory, say, @code{C:\Singular\home\NewUser}
@*2) Copy and edit the files @code{.profile} and @code{.bashrc} to this directory from the
@code{C:\Singular\home\Singular}.
@*3) Set @emph{user variable} @code{HOME} to @code{C:\Singular\home\NewUser} by clicking and editing Start->Settings->Control Panel->System->Environment. User variables are listed in the respective subwindow below.
@*4) Click the "Apply changes" button.

The Singular-specific global settings for all the users you can add to the .singularrc file, which you can find in @code{C:\Singular\usr\local\Singular\@value{VERSION}\LIB}.
For more information on @code{.singularrc}, see the Singular manual.

@item Conflicting @code{HOME} variables

The system variable @code{HOME} is used by Singular and other programs. The
modifications of this variable during the installation procedure may
lead to conflicts.
@enumerate

@item Where is the variable @code{HOME} defined?

@itemize
@item Windows 95/98/ME

@code{HOME} is defined by a line @code{SET HOME = ...} in the file @code{autoexec.bat}.
@item Windows NT/2K/XP

Under "Environment" in the "Control Panel" there could be two
definitions of @code{HOME}, namely as a @emph{system variable} (in the upper subwindow) and as a @emph{user variable} (in the lower subwindow). By default, the variable @code{HOME}
appears only as a @emph{system variable} or does not appear at all.
@end itemize

@item How is the variable @code{HOME} modified by the Singular installation?

@itemize
@item Windows 95/98/ME

A new line @code{SET HOME = ...} defining the Singular home directory is
inserted in the file @code{autoexec.bat} after the existing line
@code{SET HOME =...} defining the user home directory.
To prevent the system from destroying the old settings, replace the line
@code{SET HOME = ...} defining the user home directory by the line
@code{REM SET HOME = ...} or copy it to another place.

@item Windows NT/2K/XP

If the value of the variable @code{HOME} is correct (i.e. the given directory
exists), the installation proceed as follows.
First, a copy of the old variable @code{HOME} is moved to the new variable
@code{OLDHOME}. You will be prompted by the Setup program if
such replacements take place.
Afterwards, the variable @code{HOME} is set to the Singular home directory.
If either the variable @code{HOME} is not defined or
it contains a non-existing path, then
the variable @code{HOME} is set to the Singular home directory.
@end itemize

@item Where is the value of the variable @code{HOME} relevant?

@itemize
@item Some versions of @code{(X)Emacs} for Windows and other programs
(like Star Office) need this variable to find their home directory.
So need it the @code{XEmacs} version 21.1.13, which is included in the
Singular-@value{VERSION} distribution.
In order to use different versions of (X)Emacs, one has to run (X)Emacs
and ESingular (which works as an application within the XEmacs 21.1.13,
shipped with the distribution) separately and eventually use some tricks
(like batch files or registry macros) for changing the value
of the variable @code{HOME} appropriately.

@item Shortcuts like Singular, TSingular, ESingular, Bash Shell, or Xemacs
will be run from the directory defined by the variable @code{HOME}.
In order to run Singular, TSingular, and ESingular programs via
shortcuts from the directory, which is different from the one defined in @code{HOME},
you can proceed as follows:
@enumerate
@item Define a new variable ( @code{SINGHOME}, for example) containing the path of the
directory you wish to use.
@item Right click on one of the shortcuts Singular, TSingular, or ESingular
and choose "Shortcut tab".
@item Enter @code{%SINGHOME%} in the field "Start in". By default,
this field contains the string @code{%HOME%}.
Note that there are two types of independent shortcuts, namely on the
desktop and in the "Start" menu.
@end enumerate

@item Troubleshooting and additional information

The following variables could be set additionally
for various troubleshooting operations :
@table @asis
@item @code{ESINGULAR_EMACS} = the full path to @code{emacs.exe} or @code{xemacs.exe},
@item @code{ESINGULAR_SINGULAR} = the full path to your file @code{Singular.exe},
@item @code{ESINGULAR_EMACS_LOAD} = the full path to your file @code{.emacs-singular},
@item @code{ESINGULAR_EMACS_DIR} = the full path to your directory @code{/Singular/@value{VERSION}/emacs}.
@end table

If some of these variables are present in the system,
Singular will use them internally for calling the respective data.
@end itemize
@end enumerate

@item @*On a Laptop which is not connected to the network, Xemacs hangs.
Remove your network card and restart Xemacs.
@end table

For any other troubles, please visit the @strong{Singular Forum}
at @uref{http://www.singular.uni-kl.de/forum} or
send an email to @email{singular@@mathematik.uni-kl.de}
and include the header which is displayed by starting up @code{Singular}
with the @code{-v} option, and a description of your machine and
operating system.

@include info.texi

@ifclear singularmanual
GOOD LUCK and ENJOY!
Your @code{Singular} team.
@end ifclear


code:
@c ---content LibInfo---
@comment This file was generated by doc2tex.pl from d2t_singular/ainvar_lib.doc
@comment DO NOT EDIT DIRECTLY, BUT EDIT d2t_singular/ainvar_lib.doc INSTEAD
@c library version: (1.6.2.2,2002/04/12)
@c library file: ../Singular/LIB/ainvar.lib
@cindex ainvar.lib
@cindex ainvar_lib
@table @asis
@item @strong{Library:}
ainvar.lib
@item @strong{Purpose:}
    Invariant Rings of the Additive Group
@item @strong{Authors:}
Gerhard Pfister (email: pfister@@mathematik.uni-kl.de),
Gert-Martin Greuel (email: greuel@@mathematik.uni-kl.de)

@end table

@strong{Procedures:}
@menu
* invariantRing:: compute ring of invariants of (K,+)-action given by m
* derivate:: derivation of f with respect to the vector field m
* actionIsProper:: tests whether action defined by m is proper
* reduction:: SAGBI reduction of p in the subring generated by I
* completeReduction:: complete SAGBI reduction
* localInvar:: invariant polynomial under m computed from p,...
* furtherInvar:: compute further invariants of m from the given ones
* sortier:: sorts generators of id by increasing leading terms
@end menu
@c ---end content LibInfo---

@c ------------------- invariantRing -------------
@node invariantRing, derivate,, ainvar_lib
@subsubsection invariantRing
@cindex invariantRing
@c ---content invariantRing---
Procedure from library @code{ainvar.lib} (@pxref{ainvar_lib}).

@table @asis
@item @strong{Usage:}
invariantRing(m,p,q,b[,r,pa]); m matrix, p,q poly, b,r int, pa string

@item @strong{Assume:}
p,q variables with m(p)=q and q invariant under m
@*i.e. if p=x(i) and q=x(j) then m[j,1]=0 and m[i,1]=x(j)

@item @strong{Return:}
ideal, containing generators of the ring of invariants of the
additive group (K,+) given by the vector field
@format
         m = m[1,1]*d/dx(1) +...+ m[n,1]*d/dx(n).
@end format
If b>0 the computation stops after all invariants of degree <= b
(and at least one of higher degree) are found or when all invariants
are computed.
@*If b<=0, the computation continues until all generators
of the ring of invariants are computed (should be used only if the
ring of invariants is known to be finitely generated otherwise the
algorithm might not stop).
@*If r=1 a different reduction is used which is sometimes faster
(default r=0).

@item @strong{Display:}
if pa is given (any string as 5th or 6th argument), the computation
pauses whenever new invariants are found and displays them

@item @strong{Theory:}
The algorithm to compute the ring of invariants works in char 0
or big enough characteristic. (K,+) acts as the exponential of the
vector field defined by the matrix m. For background see G.-M. Greuel,
G. Pfister, Geometric quotients of unipotent group actions, Proc.
London Math. Soc. (3) 67, 75-105 (1993).

@end table
@strong{Example:}
@smallexample
@c computed example invariantRing d2t_singular/ainvar_lib.doc:75
LIB "ainvar.lib";
//Winkelmann: free action but Spec(k[x(1),...,x(5)]) --> Spec(invariant ring)
//is not surjective
ring rw=0,(x(1..5)),dp;
matrix m[5][1];
m[3,1]=x(1);
m[4,1]=x(2);
m[5,1]=1+x(1)*x(4)+x(2)*x(3);
ideal in=invariantRing(m,x(3),x(1),0);      //compute full invarint ring
in;
@expansion{} in[1]=x(1)
@expansion{} in[2]=x(2)
@expansion{} in[3]=x(2)*x(3)*x(4)-x(2)*x(5)+x(4)
@expansion{} in[4]=x(1)*x(3)*x(4)-x(1)*x(5)+x(3)
//Deveney/Finston: The ring of invariants is not finitely generated
ring rf=0,(x(1..7)),dp;
matrix m[7][1];
m[4,1]=x(1)^3;
m[5,1]=x(2)^3;
m[6,1]=x(3)^3;
m[7,1]=(x(1)*x(2)*x(3))^2;
ideal in=invariantRing(m,x(4),x(1),6);      //all invariants up to degree 6
in;
@expansion{} in[1]=x(1)
@expansion{} in[2]=x(3)
@expansion{} in[3]=x(2)
@expansion{} in[4]=x(3)^3*x(4)-x(1)^3*x(6)
@expansion{} in[5]=x(2)^3*x(4)-x(1)^3*x(5)
@expansion{} in[6]=x(2)^2*x(3)^2*x(4)-x(1)*x(7)
@expansion{} in[7]=x(1)^2*x(2)^2*x(6)-x(3)*x(7)
@expansion{} in[8]=x(1)^2*x(3)^2*x(5)-x(2)*x(7)
@expansion{} in[9]=x(1)^2*x(2)*x(3)^4*x(4)*x(5)+x(1)^2*x(2)^4*x(3)*x(4)*x(6)-x(1)^5*x(\
   2)*x(3)*x(5)*x(6)-2*x(2)^2*x(3)^2*x(4)*x(7)+x(1)*x(7)^2
@c end example invariantRing d2t_singular/ainvar_lib.doc:75
@end smallexample
@c ---end content invariantRing---

@c ------------------- derivate -------------
@node derivate, actionIsProper, invariantRing, ainvar_lib
@subsubsection derivate
@cindex derivate
@c ---content derivate---
Procedure from library @code{ainvar.lib} (@pxref{ainvar_lib}).

@table @asis
@item @strong{Usage:}
derivate(m,id); m matrix, id poly/vector/ideal

@item @strong{Assume:}
m is a nx1 matrix, where n = number of variables of the basering

@item @strong{Return:}
poly/vector/ideal (same type as input), result of applying the
vector field by the matrix m componentwise to id;

@item @strong{Note:}
the vector field is m[1,1]*d/dx(1) +...+ m[1,n]*d/dx(n)

@end table
@strong{Example:}
@smallexample
@c computed example derivate d2t_singular/ainvar_lib.doc:123
LIB "ainvar.lib";
ring q=0,(x,y,z,u,v,w),dp;
poly f=2xz-y2;
matrix m[6][1] =x,y,0,u,v;
derivate(m,f);
@expansion{} -2y2+2xz
vector v = [2xz-y2,u6-3];
derivate(m,v);
@expansion{} 6u6*gen(2)-2y2*gen(1)+2xz*gen(1)
derivate(m,ideal(2xz-y2,u6-3));
@expansion{} _[1]=-2y2+2xz
@expansion{} _[2]=6u6
@c end example derivate d2t_singular/ainvar_lib.doc:123
@end smallexample
@c ---end content derivate---

@c ------------------- actionIsProper -------------
@node actionIsProper, reduction, derivate, ainvar_lib
@subsubsection actionIsProper
@cindex actionIsProper
@c ---content actionIsProper---
Procedure from library @code{ainvar.lib} (@pxref{ainvar_lib}).

@table @asis
@item @strong{Usage:}
actionIsProper(m); m matrix

@item @strong{Assume:}
m is a nx1 matrix, where n = number of variables of the basering

@item @strong{Return:}
int = 1, if the action defined by m is proper, 0 if not

@item @strong{Note:}
m defines a group action which is the exponential of the vector
field m[1,1]*d/dx(1) +...+ m[1,n]*d/dx(n)

@end table
@strong{Example:}
@smallexample
@c computed example actionIsProper d2t_singular/ainvar_lib.doc:160
LIB "ainvar.lib";
ring rf=0,x(1..7),dp;
matrix m[7][1];
m[4,1]=x(1)^3;
m[5,1]=x(2)^3;
m[6,1]=x(3)^3;
m[7,1]=(x(1)*x(2)*x(3))^2;
actionIsProper(m);
@expansion{} 0
ring rd=0,x(1..5),dp;
matrix m[5][1];
m[3,1]=x(1);
m[4,1]=x(2);
m[5,1]=1+x(1)*x(4)^2;
actionIsProper(m);
@expansion{} 1
@c end example actionIsProper d2t_singular/ainvar_lib.doc:160
@end smallexample
@c ---end content actionIsProper---

@c ------------------- reduction -------------
@node reduction, completeReduction, actionIsProper, ainvar_lib
@subsubsection reduction
@cindex reduction
@c ---content reduction---
Procedure from library @code{ainvar.lib} (@pxref{ainvar_lib}).

@table @asis
@item @strong{Usage:}
reduction(p,I[,q,n]); p poly, I ideal, [q monomial, n int (optional)]

@item @strong{Return:}
a polynomial equal to p-H(f1,...,fr), in case the leading
term LT(p) of p is of the form H(LT(f1),...,LT(fr)) for some
polynomial H in r variables over the base field, I=f1,...,fr;
if q is given, a maximal power a is computed such that q^a divides
p-H(f1,...,fr), and then (p-H(f1,...,fr))/q^a is returned;
return p if no H is found
@*if n=1, a different algorithm is chosen which is sometimes faster
(default: n=0; q and n can be given (or not) in any order)

@item @strong{Note:}
this is a kind of SAGBI reduction in the subalgebra K[f1,...,fr] of
the basering

@end table
@strong{Example:}
@smallexample
@c computed example reduction d2t_singular/ainvar_lib.doc:207
LIB "ainvar.lib";
ring q=0,(x,y,z,u,v,w),dp;
poly p=x2yz-x2v;
ideal dom =x-w,u2w+1,yz-v;
reduction(p,dom);
@expansion{} 2xyzw-yzw2-2xvw+vw2
reduction(p,dom,w);
@expansion{} 2xyz-yzw-2xv+vw
@c end example reduction d2t_singular/ainvar_lib.doc:207
@end smallexample
@c ---end content reduction---

@c ------------------- completeReduction -------------
@node completeReduction, localInvar, reduction, ainvar_lib
@subsubsection completeReduction
@cindex completeReduction
@c ---content completeReduction---
Procedure from library @code{ainvar.lib} (@pxref{ainvar_lib}).

@table @asis
@item @strong{Usage:}
completeReduction(p,I[,q,n]); p poly, I ideal, [q monomial, n int]

@item @strong{Return:}
a polynomial, the SAGBI reduction of the polynomial p with I
via the procedure 'reduction' as long as possible
@*if n=1, a different algorithm is chosen which is sometimes faster
(default: n=0; q and n can be given (or not) in any order)

@item @strong{Note:}
help reduction; shows an explanation of SAGBI reduction

@end table
@strong{Example:}
@smallexample
@c computed example completeReduction d2t_singular/ainvar_lib.doc:241
LIB "ainvar.lib";
ring q=0,(x,y,z,u,v,w),dp;
poly p=x2yz-x2v;
ideal dom =x-w,u2w+1,yz-v;
completeReduction(p,dom);
@expansion{} 2xyzw-yzw2-2xvw+vw2
completeReduction(p,dom,w);
@expansion{} 0
@c end example completeReduction d2t_singular/ainvar_lib.doc:241
@end smallexample
@c ---end content completeReduction---

@c ------------------- localInvar -------------
@node localInvar, furtherInvar, completeReduction, ainvar_lib
@subsubsection localInvar
@cindex localInvar
@c ---content localInvar---
Procedure from library @code{ainvar.lib} (@pxref{ainvar_lib}).

@table @asis
@item @strong{Usage:}
localInvar(m,p,q,h); m matrix, p,q,h polynomials

@item @strong{Assume:}
m(q) and h are invariant under the vector field m, i.e. m(m(q))=m(h)=0
h must be a ring variable

@item @strong{Return:}
a polynomial, the invariant polynomial of the vector field
@format
         m = m[1,1]*d/dx(1) +...+ m[n,1]*d/dx(n)
@end format
with respect to p,q,h. It is defined as follows: set inv = p if p is
invariant, and else as
@*inv = m(q)^N * sum_i=1..N-1@{ (-1)^i*(1/i!)*m^i(p)*(q/m(q))^i @}
where m^N(p) = 0, m^(N-1)(p) != 0;
@*the result is inv divided by h as much as possible

@end table
@strong{Example:}
@smallexample
@c computed example localInvar d2t_singular/ainvar_lib.doc:281
LIB "ainvar.lib";
ring q=0,(x,y,z),dp;
matrix m[3][1];
m[2,1]=x;
m[3,1]=y;
poly in=localInvar(m,z,y,x);
in;
@expansion{} -1/2y2+xz
@c end example localInvar d2t_singular/ainvar_lib.doc:281
@end smallexample
@c ---end content localInvar---

@c ------------------- furtherInvar -------------
@node furtherInvar, sortier, localInvar, ainvar_lib
@subsubsection furtherInvar
@cindex furtherInvar
@c ---content furtherInvar---
Procedure from library @code{ainvar.lib} (@pxref{ainvar_lib}).

@table @asis
@item @strong{Usage:}
furtherInvar(m,id,karl,q); m matrix, id,karl ideals, q poly, n int

@item @strong{Assume:}
karl,id,q are invariant under the vector field m,
@*moreover, q must be a variable

@item @strong{Return:}
list of two ideals, the first ideal contains further invariants of
the vector field
@format
         m = sum m[i,1]*d/dx(i) with respect to id,p,q,
@end format
i.e. we compute elements in the (invariant) subring generated by id
which are divisible by q and divide them by q as much as possible
the second ideal contains all invariants given before
if n=1, a different algorithm is chosen which is sometimes faster
(default: n=0)

@end table
@strong{Example:}
@smallexample
@c computed example furtherInvar d2t_singular/ainvar_lib.doc:323
LIB "ainvar.lib";
ring r=0,(x,y,z,u),dp;
matrix m[4][1];
m[2,1]=x;
m[3,1]=y;
m[4,1]=z;
ideal id=localInvar(m,z,y,x),localInvar(m,u,y,x);
ideal karl=id,x;
list in=furtherInvar(m,id,karl,x);
in;
@expansion{} [1]:
@expansion{}    _[1]=y2z2-8/3xz3-2y3u+6xyzu-3x2u2
@expansion{} [2]:
@expansion{}    _[1]=-1/2y2+xz
@expansion{}    _[2]=1/3y3-xyz+x2u
@expansion{}    _[3]=x
@c end example furtherInvar d2t_singular/ainvar_lib.doc:323
@end smallexample
@c ---end content furtherInvar---

@c ------------------- sortier -------------
@node sortier,, furtherInvar, ainvar_lib
@subsubsection sortier
@cindex sortier
@c ---content sortier---
Procedure from library @code{ainvar.lib} (@pxref{ainvar_lib}).

@table @asis
@item @strong{Usage:}
sortier(id); id ideal/module

@item @strong{Return:}
the same ideal/module but with generators ordered by there
leading term, starting with the smallest

@end table
@strong{Example:}
@smallexample
@c computed example sortier d2t_singular/ainvar_lib.doc:356
LIB "ainvar.lib";
ring q=0,(x,y,z,u,v,w),dp;
ideal i=w,x,z,y,v;
sortier(i);
@expansion{} _[1]=w
@expansion{} _[2]=v
@expansion{} _[3]=z
@expansion{} _[4]=y
@expansion{} _[5]=x
@c end example sortier d2t_singular/ainvar_lib.doc:356
@end smallexample
@c ---end content sortier---