Fields¶
-
class
sage.categories.fields.
Fields
(base_category)¶ Bases:
sage.categories.category_with_axiom.CategoryWithAxiom_singleton
The category of (commutative) fields, i.e. commutative rings where all non-zero elements have multiplicative inverses
EXAMPLES:
sage: K = Fields() sage: K Category of fields sage: Fields().super_categories() [Category of euclidean domains, Category of division rings] sage: K(IntegerRing()) Rational Field sage: K(PolynomialRing(GF(3), 'x')) Fraction Field of Univariate Polynomial Ring in x over Finite Field of size 3 sage: K(RealField()) Real Field with 53 bits of precision
-
class
ElementMethods
¶ -
euclidean_degree
()¶ Return the degree of this element as an element of an Euclidean domain.
In a field, this returns 0 for all but the zero element (for which it is undefined).
EXAMPLES:
sage: QQ.one().euclidean_degree() 0
-
factor
()¶ Return a factorization of
self
.Since
self
is either a unit or zero, this function is trivial.EXAMPLES:
sage: x = GF(7)(5) sage: x.factor() 5 sage: RR(0).factor() Traceback (most recent call last): ... ArithmeticError: factorization of 0.000000000000000 is not defined
-
gcd
(other)¶ Greatest common divisor.
Note
Since we are in a field and the greatest common divisor is only determined up to a unit, it is correct to either return zero or one. Note that fraction fields of unique factorization domains provide a more sophisticated gcd.
EXAMPLES:
sage: K = GF(5) sage: K(2).gcd(K(1)) 1 sage: K(0).gcd(K(0)) 0 sage: all(x.gcd(y) == (0 if x == 0 and y == 0 else 1) for x in K for y in K) True
For field of characteristic zero, the gcd of integers is considered as if they were elements of the integer ring:
sage: gcd(15.0,12.0) 3.00000000000000
But for others floating point numbers, the gcd is just \(0.0\) or \(1.0\):
sage: gcd(3.2, 2.18) 1.00000000000000 sage: gcd(0.0, 0.0) 0.000000000000000
AUTHOR:
- Simon King (2011-02) – trac ticket #10771
- Vincent Delecroix (2015) – trac ticket #17671
-
is_unit
()¶ Returns True if
self
has a multiplicative inverse.EXAMPLES:
sage: QQ(2).is_unit() True sage: QQ(0).is_unit() False
-
lcm
(other)¶ Least common multiple.
Note
Since we are in a field and the least common multiple is only determined up to a unit, it is correct to either return zero or one. Note that fraction fields of unique factorization domains provide a more sophisticated lcm.
EXAMPLES:
sage: GF(2)(1).lcm(GF(2)(0)) 0 sage: GF(2)(1).lcm(GF(2)(1)) 1
For field of characteristic zero, the lcm of integers is considered as if they were elements of the integer ring:
sage: lcm(15.0,12.0) 60.0000000000000
But for others floating point numbers, it is just \(0.0\) or \(1.0\):
sage: lcm(3.2, 2.18) 1.00000000000000 sage: lcm(0.0, 0.0) 0.000000000000000
AUTHOR:
- Simon King (2011-02) – trac ticket #10771
- Vincent Delecroix (2015) – trac ticket #17671
-
quo_rem
(other)¶ Return the quotient with remainder of the division of this element by
other
.INPUT:
other
– an element of the field
EXAMPLES:
sage: f,g = QQ(1), QQ(2) sage: f.quo_rem(g) (1/2, 0)
-
xgcd
(other)¶ Compute the extended gcd of
self
andother
.INPUT:
other
– an element with the same parent asself
OUTPUT:
A tuple
(r, s, t)
of elements in the parent ofself
such thatr = s * self + t * other
. Since the computations are done over a field,r
is zero ifself
andother
are zero, and one otherwise.AUTHORS:
- Julian Rueth (2012-10-19): moved here from
sage.structure.element.FieldElement
EXAMPLES:
sage: K = GF(5) sage: K(2).xgcd(K(1)) (1, 3, 0) sage: K(0).xgcd(K(4)) (1, 0, 4) sage: K(1).xgcd(K(1)) (1, 1, 0) sage: GF(5)(0).xgcd(GF(5)(0)) (0, 0, 0)
The xgcd of non-zero floating point numbers will be a triple of floating points. But if the input are two integral floating points the result is a floating point version of the standard gcd on \(\ZZ\):
sage: xgcd(12.0, 8.0) (4.00000000000000, 1.00000000000000, -1.00000000000000) sage: xgcd(3.1, 2.98714) (1.00000000000000, 0.322580645161290, 0.000000000000000) sage: xgcd(0.0, 1.1) (1.00000000000000, 0.000000000000000, 0.909090909090909)
-
-
Finite
¶ alias of
FiniteFields
-
class
ParentMethods
¶ -
fraction_field
()¶ Returns the fraction field of
self
, which isself
.EXAMPLES:
sage: QQ.fraction_field() is QQ True
-
is_field
(proof=True)¶ Returns True as
self
is a field.EXAMPLES:
sage: QQ.is_field() True sage: Parent(QQ,category=Fields()).is_field() True
-
is_integrally_closed
()¶ Return
True
, as perIntegralDomain.is_integrally_closed()
: for every field \(F\), \(F\) is its own field of fractions, hence every element of \(F\) is integral over \(F\).EXAMPLES:
sage: QQ.is_integrally_closed() True sage: QQbar.is_integrally_closed() True sage: Z5 = GF(5); Z5 Finite Field of size 5 sage: Z5.is_integrally_closed() True
-
is_perfect
()¶ Return whether this field is perfect, i.e., its characteristic is \(p=0\) or every element has a \(p\)-th root.
EXAMPLES:
sage: QQ.is_perfect() True sage: GF(2).is_perfect() True sage: FunctionField(GF(2), 'x').is_perfect() False
-
-
extra_super_categories
()¶ EXAMPLES:
sage: Fields().extra_super_categories() [Category of euclidean domains]
-
class