Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions doc/msolve-tutorial.tex
Original file line number Diff line number Diff line change
Expand Up @@ -305,8 +305,8 @@ \section{Introduction}

\msolve~is a C library for solving multivariate polynomial systems of equations.
It relies on computer algebra, a.k.a.\ symbolic computation, algorithms to
compute \emph{algebraic} representations of the solution set from which
many, if not all, informations can be extracted.
compute \emph{algebraic} representations of the solution set from which,
much, if not all, information can be extracted.

Solving polynomial systems with \msolve~is \emph{global} by contrast to
\emph{local} numerical routines. The use of computer algebra methods allow also
Expand All @@ -326,7 +326,7 @@ \section{Introduction}
\begin{center}
\url{https://msolve.lip6.fr}
\end{center}
where binaries (for \texttt{x86} processors runing Linux operating systems) and
where binaries (for \texttt{x86} processors running Linux operating systems) and
source files are provided.

\msolve~is designed for $64$ bit architectures, with \texttt{AVX2} instructions.
Expand Down Expand Up @@ -374,7 +374,7 @@ \section{Introduction}
The \msolve library is described in \cite{msolve} with implementation details on
the algorithms used therein. All computations performed over the rational numbers
(e.g. for computing real roots) are based on multi-modular computations with a
probabilistic stopping criterion. Unless explicitely requested by the user (see the
probabilistic stopping criterion. Unless explicitly requested by the user (see the
\verb+-l+ flag in \cref{sec:flags}), all computations of Gr\"obner bases
in prime fields use deterministic
algorithms. Change of order algorithms which are used are deterministic
Expand Down Expand Up @@ -413,7 +413,7 @@ \section{Input file format}\label{sec:input}

In each given polynomial, \msolve expects a single occurrence of each monomial;
if some monomial appears several times (e.g.\ as in \verb#x+2*y+2*z-x#),
the behaviour of \msolve's parser is undefined.
the behavior of \msolve's parser is undefined.

When one wants to solve this system over $\frac{\Z}{65521\Z}$ one just replaces
$0$ by $65521$ in the second line. Note that in the positive characteristic case
Expand All @@ -423,7 +423,7 @@ \section{Input file format}\label{sec:input}

\section{Computing the dimension}\label{sec:dim}

To make things explicit on the behaviour of \msolve when the input system
To make things explicit on the behavior of \msolve when the input system
does not have finitely many complex solutions, let us consider first the example
below.
\msolveinput{examples/empty_char0.ms}
Expand Down Expand Up @@ -597,7 +597,7 @@ \section{Computing Gr\"obner bases}\label{sec:grobner}
there are $8$ monomials in $z_1, z_2, z_3$ which are not divisible by the above
leading monomials.

\msolve also allows you to perform Gröbner bases computations using
\msolve also allows you to perform Gr\"obner bases computations using
\emph{one-block elimination monomial order}
thanks to the \verb+-e+ flag. The following command
\begin{tcolorbox} % examples/elim_char1073741827.sh
Expand All @@ -607,7 +607,7 @@ \section{Computing Gr\"obner bases}\label{sec:grobner}
\end{tcolorbox}
on
\msolveinput{examples/elim_char1073741827.ms}
will perform the Gröbner basis computation eliminating the first
will perform the Gr\"obner basis computation eliminating the first
variable.
The output is
\begin{tcolorbox}
Expand All @@ -631,11 +631,11 @@ \section{Computing Gr\"obner bases}\label{sec:grobner}
where we see that the first $6$ polynomials are only in $w,x,y,z$,
which corresponds to the elimination of the variable $t$. When the input
coefficients lie in the field of rational numbers (hence, characteristic $0$),
the returned Gröbner basis is the one of the {\em elimination ideal}, i.e. they
the returned Gr\"obner basis is the one of the {\em elimination ideal}, i.e. they
have partial degree $0$ in the variables to eliminate.

More generally, using \verb+-e k+ will eliminate the $k$ first
variables. Thus
variables. Thus,
\begin{tcolorbox} % examples/elim2_char1073741827.sh
\begin{verbatim}
./msolve -e 2 -g 2 -f in.ms -o out.ms
Expand Down Expand Up @@ -885,7 +885,7 @@ \section{Saturation and colon ideals}\label{sec:f4sat}
$h \varphi\in\langle f_1,\ldots,f_m\rangle$.

A Gr\"obner basis for the \emph{grevlex order} can be computed in the
former case with an input file containg $f_1,\ldots,f_m,\varphi$ and
former case with an input file containing $f_1,\ldots,f_m,\varphi$ and
called with the flag \verb+-S+ to use the F4SAT algorithm. Note that this option
is at the moment restricted to 32 bit prime fields.

Expand Down Expand Up @@ -1120,7 +1120,7 @@ \section{More flags and options}\label{sec:flags}
rational parametrization computed for solving zero-dimensional polynomial
systems (those with finitely many solutions in an algebraic closure of the base field).
When \verb+-P 0+ is set, such a parametrization is not returned, when \verb+-P 1+ is
set, the parametrization is returned and, in the charactersitic zero case (rational
set, the parametrization is returned and, in the characteristic zero case (rational
coefficients), real solutions are returned, when \verb+-P 2+ is set, only the
rational parametrization is returned.

Expand Down Expand Up @@ -1150,7 +1150,7 @@ \section{More flags and options}\label{sec:flags}
\item The flag \verb+--random-seed <int>+ tells \msolve which seed must be used
to initialize the pseudo-random generator: \verb+-1+ means that
\verb+time(0)+ is used so that the seed is based on current time,
otherwise, for any nonnegetive integer \verb+N+, \verb+N+ will be the seed. The
otherwise, for any nonnegative integer \verb+N+, \verb+N+ will be the seed. The
latter option is for debug purpose only as the lack of randomization
can lead to failures on some input.

Expand All @@ -1175,11 +1175,11 @@ \section{Julia interface to \msolve}
The most common options for calling \texttt{msolve()} in Julia are:
\begin{itemize}
\item \texttt{info\_level} with values \texttt{0} (no information printing;
default), \texttt{1} (slight information printing on comptutational
default), \texttt{1} (slight information printing on computational
status) or \texttt{2} (full information printing also on intermediate
steps),
\item \texttt{la\_option} for the linear algebra variant to be chosen inside
F4: \texttt{2} for exact linear algebra and tracing multi modular
F4: \texttt{2} for exact linear algebra and tracing multi-modular
computations (default) or \texttt{44} for probabilistic linear algebra
with independent modular computations;
\item \texttt{precision} for the bit precision with which the solutions are
Expand Down
Loading