Element Operations

A variety of different types of operations are provided for rational elements including arithmetic operations, comparison and predicates, and converting to a sequence.

Parent and Category

Parent(r): FldRatElt -> FldRat
Category(r): FldRatElt -> Cat

Arithmetic Operators

+ a: FldRatElt -> FldRatElt
- a: FldRatElt -> FldRatElt
a + b: FldRatElt, FldRatElt -> FldRatElt
a - b: FldRatElt, FldRatElt -> FldRatElt
a * b: FldRatElt, FldRatElt -> FldRatElt
a ^ k: FldRatElt, RngIntElt -> FldRatElt
a / b: FldRatElt, FldRatElt -> FldRatElt
a +:= b: FldRatElt, FldRatElt -> FldRatElt
a -:= b: FldRatElt, FldRatElt -> FldRatElt
a *:= b: FldRatElt, FldRatElt -> FldRatElt
a /:= b: FldRatElt, FldRatElt -> FldRatElt
a ^:= k: FldRatElt, RngIntElt -> FldRatElt

Numerator and Denominator

Numerator(q): FldRatElt -> RngIntElt

The (integer) numerator of the rational number \(q\) in reduced form.

Denominator(q): FldRatElt -> RngIntElt

The (integer) denominator of the rational number \(q\) in reduced form. This will always be a positive integer.

Example: Numerator and Denominator (ex-da083f)

Rational numbers are always immediately put in reduced form, that is, the greatest common divisor of numerator and denominator is taken out, and the denominator will be positive.

> Numerator(10/-4);
-5
> Denominator(10/-4);
2

Run in calculator (opens in a new tab)

Equality and Membership

a eq b: FldRatElt, FldRatElt -> BoolElt
a ne b: FldRatElt, FldRatElt -> BoolElt
a in R: FldRatElt, Rng -> BoolElt
a notin R: FldRatElt, Rng -> BoolElt

Predicates on Ring Elements

IsIntegral(q): FldRatElt -> BoolElt

Returns true if the rational number \(q\) is an element of the ring of integers, false otherwise.

IsZero(a): FldRatElt -> BoolElt
IsOne(a): FldRatElt -> BoolElt
IsMinusOne(a): FldRatElt -> BoolElt
IsNilpotent(a): FldRatElt -> BoolElt
IsIdempotent(a): FldRatElt -> BoolElt
IsUnit(a): FldRatElt -> BoolElt
IsZeroDivisor(a): FldRatElt -> BoolElt
IsRegular(a): FldRatElt -> BoolElt
IsIrreducible(a): FldRatElt -> BoolElt
IsPrime(a): FldRatElt -> BoolElt

Comparison

a gt b: FldRatElt, FldRatElt -> BoolElt
a ge b: FldRatElt, FldRatElt -> BoolElt
a lt b: FldRatElt, FldRatElt -> BoolElt
a le b: FldRatElt, FldRatElt -> BoolElt
Maximum(a, b): FldRatElt, FldRatElt -> FldRatElt
Maximum(Q): [FldRatElt] -> FldRatElt
Minimum(a, b): FldRatElt, FldRatElt -> FldRatElt
Minimum(Q): [FldRatElt] -> FldRatElt

Conjugates, Norm, and Trace

ComplexConjugate(q): FldRatElt -> FldRatElt

The complex conjugate of \(q\), which will be the rational number \(q\) itself.

Conjugate(q): FldRatElt -> FldRatElt

The conjugate of \(q\), which will be the rational number \(q\) itself.

Norm(q): FldRatElt -> FldRatElt

The norm (in \({\mathbb{Q}}\)) of \(q\), which will be the rational number \(q\) itself.

Trace(q): FldRatElt -> FldRatElt

The trace (in \({\mathbb{Q}}\)) of \(q\), which will be the rational number \(q\) itself.

MinimalPolynomial(q): FldRatElt -> RngUPolElt

Returns the minimal polynomial of the rational number \(q\), which is the monic linear polynomial with constant coefficient \(q\) in a univariate polynomial ring \(R\) over the rational field. (If \(R\) has not been created before with a name for its indeterminate, $.1-q will be returned.)

Absolute Value and Sign

AbsoluteValue(q): FldRatElt -> FldRatElt
Abs(q): FldRatElt -> FldRatElt

The absolute value \(\vert q\vert\) of a rational number \(q\).

Sign(q): FldRatElt -> RngIntElt

Returns the sign of the rational number \(q\), which is one of the integers \(-1\), \(0\), \(1\), corresponding to the cases \(q<0\), \(q=0\), and \(q>0\).

Height(q): FldRatElt -> RngIntElt

The height of \(q=r/s\). For \(r\) and \(s\) coprime, the height is defined as the maximum of the absolute value of \(r\) and \(s\).

Rounding and Truncating

Ceiling(q): FldRatElt -> RngIntElt

The ceiling of the rational number \(q\), that is, the least integer greater than or equal to \(q\).

Floor(q): FldRatElt -> RngIntElt

The floor of the rational number \(q\), that is, the largest integer less than or equal to \(q\).

Round(q): FldRatElt -> RngIntElt

This function returns the integer value of the rational number \(q\) rounded to the nearest integer. In the case of a tie, rounding is done away from zero (that is, \(i+{1\over2}\) is rounded to \(i+1\), for non-negative integers \(i\) and \(i-{1\over2}\) is rounded to \(i-1\), for non-positive integers \(i\)).

Truncate(q): FldRatElt -> RngIntElt

This function returns the integer truncation of the rational number \(q\), that is the integral part of \(q\). Thus the effect is that of rounding towards \(0\).

Qround(q, M): FldRatElt, RngIntElt -> FldRatElt
ContFrac: BoolElt                    Default: false

Finds a rational approximation \(d\) of \(q\) such that the denominator of \(d\) is bounded by \(M\). If ContFrac is given then an optimal approximation is computed using the continued fraction process. By default \(d\) is obtained by some rounding procedure which is faster but gives worse results.

Continued Fractions

ContinuedFraction(r): FldRatElt -> [ RngIntElt ]

Given a rational \(r\), return the sequence of partial quotients of the continued fraction expansion of \(r\).

ContinuedFractionValue(C): [ RngIntElt ] -> FldRatElt

Given a continued fraction expansion \(C\), return the rational \(r\) such that \(C\) equals ContinuedFraction(r).

HirzebruchJungContinuedFraction(r): FldRatElt -> [ RngIntElt ]
HJContinuedFraction(r): FldRatElt -> [ RngIntElt ]

Given a rational \(r\), return the sequence of partial quotients of the Hirzebruch-Jung continued fraction expansion of \(r\).

HirzebruchJungContinuedFractionValue(C): [ RngIntElt ] -> FldRatElt
HJContinuedFractionValue(C): [ RngIntElt ] -> FldRatElt

Given a Hirzebruch-Jung continued fraction expansion \(C\), return the rational \(r\) so that HJContinuedFraction(r) equals \(C\).

Rational Reconstruction

Under certain circumstances it is useful to have a partial inverse of the function \(\psi_m\colon{\mathbb{Q}}\rightarrow {\mathbb{Z}}/m{\mathbb{Z}}\) of taking residues modulo \(m\) (where the obvious value of \(\psi_m\) is only defined for rational numbers with denominator in smallest terms coprime to \(m\)); the partial inverse of the function is sometimes referred to as ‘rational reconstruction’. For \(s\in {\mathbb{Z}}/m{\mathbb{Z}}\) the value of \(\psi^{-1}(s)\) is the rational number \(r\) for which \(\psi_m(r)=s\) and, in addition, the absolute values of both the numerator and denominator of \(r\) are at most \(\sqrt{m/2}\); such \(r\) does not always exist, but if \(r\) exists it is unique.

RationalReconstruction(s): RngIntResElt -> BoolElt, FldRatElt
RationalReconstruction(s): FldFinElt -> BoolElt, FldRatElt

Given an element \(s\) of a ring \(S\) of \(m\) elements, return a Boolean flag indicating whether or not a rational number \(r\) exists such that for the representation \(r=n/d\) in minimal terms it holds that \(n\cdot d^{-1}\equiv s\bmod m\), \(\vert n\vert\le\sqrt{m/2}\) and \(0 < d \le\sqrt{m/2}\). If the flag is true, the element \(r\) is also returned. The ring \(S\) is allowed to be a residue class ring Integers(m) or a finite field of prime cardinality \(p=m\): FiniteField(p).

In addition, \(s\) is allowed to be a matrix over a prime finite field, in which case the existence (and, if possible, value) of a rational reconstruction of the matrix is determined.

Valuation

Valuation(x, p): FldRatElt, RngIntElt -> RngIntElt, FldRatElt
Valuation(x, I): FldRatElt, RngIntElt -> RngIntElt, FldRatElt

The valuation \(v\) of the rational number \(x\) at the prime \(p\) (the prime ideal \(I\)). This is the difference of the valuations of the numerator and denominator of \(x\). The optional second return value is the rational \(u\) such that \(x = p^v u\).

Sequence Conversions

ElementToSequence(a): FldRatElt -> [FldRatElt]
Eltseq(a): FldRatElt -> [FldRatElt]

The sequence \([a]\) for compatibility with the other field types.