source: git/doc/changes_in_singular4.texi @ 876c23

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