1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
\subsection{gcd}
\label{labgcd}
\noindent Name: \textbf{gcd}\\
\phantom{aaa}Computes the greatest common divisor of polynomials or numbers.\\[0.2cm]
\noindent Library name:\\
\verb| sollya_obj_t sollya_lib_gcd(sollya_obj_t, sollya_obj_t)|\\[0.2cm]
\noindent Usage:
\begin{center}
\textbf{gcd}(\emph{p}, \emph{q}) : (\textsf{function}, \textsf{function}) $\rightarrow$ \textsf{function}\\
\end{center}
Parameters:
\begin{itemize}
\item \emph{p} is a constant or a polynomial.
\item \emph{q} is a constant or a polynomial.
\end{itemize}
\noindent Description: \begin{itemize}
\item When both \emph{p} and \emph{q} are integers, \textbf{gcd}(\emph{p},\emph{q}) computes the greatest
common divisor of these two integers, i.e. the greatest non-negative integer
dividing both \emph{p} and \emph{q}.
\item When both \emph{p} and \emph{q} are rational numbers, say $a/b$ and $c/d$,
\textbf{gcd}(\emph{p},\emph{q}) computes the greatest common divisor of $a \cdot d$ and $b \cdot c$,
divided by the product of the denominators, $b \cdot d$.
\item When both \emph{p} and \emph{q} are constants but at least one of them is no rational
number, \textbf{gcd}(\emph{p},\emph{q}) returns~$1$.
\item When both \emph{p} and \emph{q} are polynomials with at least one being non-constant,
\textbf{gcd}(\emph{p},\emph{q}) returns the polynomial of greatest degree dividing both \emph{p} and
\emph{q}, and whose leading coefficient is the greatest common divisor of the
leading coefficients of \emph{p} and \emph{q}.
\item Similarly to the cases documented for \textbf{div} and \textbf{mod}, \textbf{gcd}
may fail to return the unique polynomial of largest degree dividing
both \emph{p} and \emph{q} in cases when certain coefficients of either \emph{p} or
\emph{q} are constant expressions for which the tool is unable to determine
whether they are zero or not. These cases typically involve
polynomials whose leading coefficient is zero but the tool is unable
to detect this fact.
\item When at least one of \emph{p} or \emph{q} is a function that is no polynomial,
\textbf{gcd}(\emph{p},\emph{q}) returns $1$.
\end{itemize}
\noindent Example 1:
\begin{center}\begin{minipage}{15cm}\begin{Verbatim}[frame=single]
> gcd(1001, 231);
77
> gcd(13, 17);
1
> gcd(-210, 462);
42
\end{Verbatim}
\end{minipage}\end{center}
\noindent Example 2:
\begin{center}\begin{minipage}{15cm}\begin{Verbatim}[frame=single]
> rationalmode = on!;
> gcd(6/7, 33/13);
3 / 91
\end{Verbatim}
\end{minipage}\end{center}
\noindent Example 3:
\begin{center}\begin{minipage}{15cm}\begin{Verbatim}[frame=single]
> gcd(exp(13),sin(17));
1
\end{Verbatim}
\end{minipage}\end{center}
\noindent Example 4:
\begin{center}\begin{minipage}{15cm}\begin{Verbatim}[frame=single]
> gcd(24 + 68 * x + 74 * x^2 + 39 * x^3 + 10 * x^4 + x^5, 480 + 776 * x + 476 *
x^2 + 138 * x^3 + 19 * x^4 + x^5);
4 + x * (4 + x)
> gcd(1001 * x^2, 231 * x);
x * 77
\end{Verbatim}
\end{minipage}\end{center}
\noindent Example 5:
\begin{center}\begin{minipage}{15cm}\begin{Verbatim}[frame=single]
> gcd(exp(x), x^2);
1
\end{Verbatim}
\end{minipage}\end{center}
See also: \textbf{bezout} (\ref{labbezout}), \textbf{div} (\ref{labdiveucl}), \textbf{mod} (\ref{labmodeucl}), \textbf{numberroots} (\ref{labnumberroots})
|