source: git/doc/changes_in_singular4.texi @ 8d1432e

fieker-DuValspielwiese
Last change on this file since 8d1432e was cf214e8, checked in by Hans Schoenemann <hannes@…>, 8 years ago
doxygen: URLs etc.
  • Property mode set to 100644
File size: 8.4 KB
RevLine 
[b5edd0]1@comment this file contains the list of new features and difference between Singular 3.* and Singular 4.*
2
3The purpose of this section is to describe new features and changes
[75f460]4between Singular 3-1-7 and Singular 4.* (formerly known as Spielwiese) both for developers
[03e4a6]5and Singular users. In what follows we will refer to the systems as Singular 3 and Singular 4.
[b5edd0]6
7@menu
[9dbaf34]8* Version schema for Singular::
[b5edd0]9* Notes for Singular users::
10* Notes for developers::
11* Building Singular::
12@end menu
13
[feb8e6]14@c ---------------------------------------------------------------------------
[75f460]15@node Version schema for Singular, Notes for Singular users, , Singular 3 and Singular 4
[feb8e6]16@subsection Version schema for Singular
17@cindex Version schema for Singular
18@cindex Version number
19
[75f460]20@sc{Singular} version is of the form @code{a.b.c.d} which may also be written
[feb8e6]21as @code{a-b-c-d} where a,b,c and d are numbers:
22@itemize
[4c1c40]23@item a is changed with major, incompatible changes
24@item b is changed with incompatible changes (of some commands/libraries)
[feb8e6]25@item c is changed with compatible chnages (i.e. new commands,
26      extended options, new algorithms, etc.)
27@item d is changed with each release (i.e. with bug fixes, etc.)
28@end itemize
29@sc{Singular} does also have "inofficiall" build orginating from
30a code version between "officiall" version: such builds display
[754f11]31"Development version a.b.c" in the header while "official" versions
32show "version a.b.c". Also the manual describes version a-b-c.
[feb8e6]33To get the complete version number, use
34@code{system("version");} or use @code{SINGULAR_VERSION} in C.
35
[b5edd0]36@c ---------------------------------------------------------------------------
[75f460]37@node Notes for Singular users, Notes for developers, Version schema for Singular, Singular 3 and Singular 4
[b5edd0]38@subsection Notes for Singular users
39@cindex Notes for Singular users
40
[03e4a6]41@subsubheading Coefficient rings
42@cindex Coefficient rings
43
[75f460]44To allow for easy integration of new coefficient rings into Singular, the the way
[03e4a6]45coefficient rings are being handled has been redesigned.
46
47In general, the user syntax has not changed, however there are some changes in the behaviour of Singular:
[b5edd0]48
49@c table @asis
50@itemize @bullet
[76cb29]51@item setting @code{minpoly} results in changing the current coefficient domain
52and clears all previously defined varaiables of that ring
53
[03e4a6]54@item Minor changes in the output of coefficient ring description. Moreover the output of elements of certain rings has been improved (for example, reals).
55
56@item Algebraic and transcendental extensions of rationals and finite fields
57      have been reimplemented. In particular, the heuristics for clearing denominators and factoring out content
58      have been changed. In some cases this leads to a different, mathematically equivalent results of Groebner
59      bases and related computations. For example a Groebner basis element may differ by a unit.
60
61@item Most noteably, due to the redesign of the coefficient rings, if the user sets the minimal polynomial
62      all variables dependent on the current ring are deleted.
63
[b5edd0]64@end itemize
65@c @end table
66
67@subsubheading Ring-dependent options
68@cindex Ring-dependent options
69
[03e4a6]70Formally global Singular @ref{option} now belong to individual polynomial rings. This includes:
[b5edd0]71
72@c table @asis
73@itemize @bullet
[03e4a6]74@item @code{intStrategy}
[7d6b46]75@item @code{redTail}
76@item @code{redThrough}
[b5edd0]77@end itemize
78@c @end table
79
[7d6b46]80Also the following settings now belong to individual (currently active) polynomial rings:
81
82@c @item @code{degBound}
83@c @item @code{multBound}
84
85@c table @asis
86@itemize @bullet
87@item @code{short}
88@item @code{minpoly}
89@item @code{noether}
90@end itemize
91@c @end table
92
93
[03e4a6]94Hence setting these options only affects the current ring. Be aware of this
95when switching between different rings, since the options affect the
96result of various computations (in particular Groebner bases).
[b5edd0]97
[03e4a6]98@subsubheading New libraries depending on Singular 4
99@cindex New libraries depending on Singular 4
[b5edd0]100
[03e4a6]101In Singular 4 there several new features are implemented within a
[75f460]102dynamic module @code{syzextra.so}, not available in Singular 3.
[03e4a6]103It implements the low-level functions for Schreyer resolutions and many auxiliary functions.
[b7b51e5]104The following new libraries @ref{deRham_lib}, @ref{schreyer_lib} depend on it:
[b5edd0]105
106@c table @asis
107@itemize @bullet
[b7b51e5]108@item @ref{deRham_lib} - computes de Rham cohomology
[b5edd0]109@item @ref{schreyer_lib} - computes Schreyer resolution via several approaches. It also serves as a high-level wrapper to the dynamic module @code{syzextra.so}
110@end itemize
111@c @end table
112
[03e4a6]113@subsubheading Path names
114@cindex Path names
115
116@c table @asis
117@itemize @bullet
[75f460]118@item The tree structure of the binary Singular distribution has been changed.
[b3a87c6]119The typical tree now looks as show at @uref{https://github.com/Singular/Sources/wiki/Sw-tree}
[03e4a6]120
121@item Accordingly Singular search paths (where Singular searches for libraries, dynamic modules, etc.) have been changed. You can display them by calling Singular by @code{Singular -v}.
122
[96c5cb]123@item currently, multi-arch installations of Singular 4 aere not possible.
[03e4a6]124@end itemize
125@c @end table
126
127@subsubheading Library versioning
128@cindex Library versioning
129
[75f460]130Due to switching from Subversion to GIT revision control system for the Singular source code,
[4fb517c]131library version variables (displayed when loading a library) have changed.
[03e4a6]132
133
134@subsubheading New orderings for modules
135@cindex New orderings for modules
136
137The now can assign weights to module components, when defining a monomial ordering. For example
[76cb29]138@smallexample
139ring R = 0, (x,y,z), (am(1,2,3,   10,20,30,40), dp, C);
140deg(x*gen(1));
[0641d2]141@expansion{} 11
[76cb29]142@end smallexample
[03e4a6]143
[75f460]144will assign weights 1,2,3 to x,y,z respectively, and weights 10,20,30,40,0,0,... to
[03e4a6]145components of any free module defined over R. This ordering will first sort
[75f460]146by this weighted degree, then by dp on the ring monomials and then will give priority
[03e4a6]147to the large component index.
148
149@subsubheading Future benefits of Singular 4
150@cindex Future benefits of Singular 4
151
152The redesign of Singular will allow us to provide new features in the future, for example:
153
154@c table @asis
155@itemize @bullet
156@item Interpreter type for coefficient rings.
157@item User defined coefficient rings.
158@item Improved syntax for defining polynomial rings.
159@end itemize
160@c @end table
[b5edd0]161
162
163
164
165@c ---------------------------------------------------------------------------
[537c49]166@node Notes for developers, Building Singular, Notes for Singular users, Singular 3 and Singular 4
[b5edd0]167@subsection Notes for developers
168@cindex Notes for developers
169
[03e4a6]170There has been an entensive process of refactoring, redesign and modularization
171of Singular to facilitate easier maintenance and future development:
[b5edd0]172
173@c table @asis
174@itemize @bullet
[03e4a6]175@item Build System : automake, libfac has been integrated into Factory
176@item Removed MP (Multi protocol) in favor of SSI links.
[75f460]177@item Separation/modularization into libraries and packages
[b5edd0]178@c add diagram as an image?
[03e4a6]179@item For easy integration of new coeffcient rings,
[75f460]180we defined a generic interface for coefficient
[03e4a6]181rings and a supporting framework for making them
182accessible to the user.
183
184In particular we have separated everything related to coeffcient rings into a separate library @code{libcoeffs}.
[cf214e8]185Dependency tree between restructured packages is show at @uref{http://www.singular.uni-kl.de/dox/singular.png}
[03e4a6]186
[8c704b]187In order to use @code{libSingular} as a C++ library, see @ref{libSingular}.
188
[b5edd0]189@end itemize
190@c @end table
191
192
[03e4a6]193
[7d6b46]194@c @subsubheading Changes to build system
195@c @cindex Changes to build system
196
[b5edd0]197
198@c ---------------------------------------------------------------------------
[537c49]199@node Building Singular, , Notes for developers, Singular 3 and Singular 4
[b5edd0]200@subsection Building Singular
201@cindex Building Singular
202
[03e4a6]203The user can build and install Singular with the following standard UNIX-like procedure:
204
205@c table @asis
206@itemize @bullet
207@item Download and extract the latest official source package (.tar.gz).
208@item Run the configure script, for instance, @code{./configure}.
209@item Build Singular by running @code{make}.
210@item Install Singular by running @code{make install}.
211@end itemize
212@c @end table
213
214In contrast to Singular 3, there are now many more configuration options.
215
216All possible options for configure can be seen by running the configure script with
[75f460]217option @code{--help}. On a multicore compute consider running make with the
[03e4a6]218option @code{-f [cores]}.
219
[876c23]220@subsection Side-by-side installation
221
222Due to choosing paths according to FS standards it is no longer possible
223to have a side-by-side installation of different Singular versions or versions for different architectures.
[b5edd0]224@c ---------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.