Skip to content

Commit a3ef387

Browse files
author
Matthias Koeppe
committed
sage.rings.finite_rings: Update # needs
1 parent 1810daf commit a3ef387

File tree

6 files changed

+40
-32
lines changed

6 files changed

+40
-32
lines changed

src/sage/rings/finite_rings/element_base.pyx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1049,6 +1049,7 @@ cdef class FinitePolyExtElement(FiniteRingElement):
10491049
10501050
TESTS::
10511051
1052+
sage: # needs sage.modules
10521053
sage: p = random_prime(2^99)
10531054
sage: k = randrange(2,10)
10541055
sage: F.<t> = GF((p, k))

src/sage/rings/finite_rings/finite_field_base.pyx

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -338,11 +338,11 @@ cdef class FiniteField(Field):
338338
339339
sage: L = []
340340
sage: from sage.rings.finite_rings.finite_field_base import FiniteField
341-
sage: for impl in ("givaro", "pari", "ntl"):
342-
....: k = GF(8, impl=impl, names="z")
343-
....: print(list(FiniteField.__iter__(k)))
341+
sage: print(list(FiniteField.__iter__(GF(8, impl="givaro", names="z")))) # needs sage.libs.linbox
344342
[0, 1, z, z + 1, z^2, z^2 + 1, z^2 + z, z^2 + z + 1]
343+
sage: print(list(FiniteField.__iter__(GF(8, impl="pari", names="z"))))
345344
[0, 1, z, z + 1, z^2, z^2 + 1, z^2 + z, z^2 + z + 1]
345+
sage: print(list(FiniteField.__iter__(GF(8, impl="ntl", names="z")))) # needs sage.libs.ntl
346346
[0, 1, z, z + 1, z^2, z^2 + 1, z^2 + z, z^2 + z + 1]
347347
"""
348348
cdef Py_ssize_t n = self.degree()
@@ -1123,12 +1123,12 @@ cdef class FiniteField(Field):
11231123
EXAMPLES::
11241124
11251125
sage: k = GF(19^4, 'a')
1126-
sage: k.random_element().parent() is k
1126+
sage: k.random_element().parent() is k # needs sage.modules
11271127
True
11281128
11291129
Passes extra positional or keyword arguments through::
11301130
1131-
sage: k.random_element(prob=0)
1131+
sage: k.random_element(prob=0) # needs sage.modules
11321132
0
11331133
11341134
"""
@@ -1145,7 +1145,7 @@ cdef class FiniteField(Field):
11451145
EXAMPLES::
11461146
11471147
sage: k = GF(2^8,'a')
1148-
sage: k.some_elements() # random output
1148+
sage: k.some_elements() # random output # needs sage.modules
11491149
[a^4 + a^3 + 1, a^6 + a^4 + a^3, a^5 + a^4 + a, a^2 + a]
11501150
"""
11511151
return [self.random_element() for i in range(4)]
@@ -1206,9 +1206,10 @@ cdef class FiniteField(Field):
12061206
12071207
EXAMPLES::
12081208
1209-
sage: GF(27,'a').vector_space(map=False)
1209+
sage: GF(27,'a').vector_space(map=False) # needs sage.modules
12101210
Vector space of dimension 3 over Finite Field of size 3
12111211
1212+
sage: # needs sage.modules
12121213
sage: F = GF(8)
12131214
sage: E = GF(64)
12141215
sage: V, from_V, to_V = E.vector_space(F, map=True)
@@ -1223,6 +1224,7 @@ cdef class FiniteField(Field):
12231224
sage: all(to_V(c * e) == c * to_V(e) for e in E for c in F)
12241225
True
12251226
1227+
sage: # needs sage.modules
12261228
sage: basis = [E.gen(), E.gen() + 1]
12271229
sage: W, from_W, to_W = E.vector_space(F, basis, map=True)
12281230
sage: all(from_W(to_W(e)) == e for e in E)
@@ -1235,6 +1237,7 @@ cdef class FiniteField(Field):
12351237
(1, 0)
12361238
(0, 1)
12371239
1240+
sage: # needs sage.modules
12381241
sage: F = GF(9, 't', modulus=x^2 + x - 1)
12391242
sage: E = GF(81)
12401243
sage: h = Hom(F,E).an_element()
@@ -1399,16 +1402,16 @@ cdef class FiniteField(Field):
13991402
14001403
EXAMPLES::
14011404
1402-
sage: K.<a> = Qq(49); k = K.residue_field()
1403-
sage: k.convert_map_from(K)
1405+
sage: K.<a> = Qq(49); k = K.residue_field() # needs sage.rings.padics
1406+
sage: k.convert_map_from(K) # needs sage.rings.padics
14041407
Reduction morphism:
14051408
From: 7-adic Unramified Extension Field in a defined by x^2 + 6*x + 3
14061409
To: Finite Field in a0 of size 7^2
14071410
14081411
Check that :trac:`8240 is resolved::
14091412
1410-
sage: R.<a> = Zq(81); k = R.residue_field()
1411-
sage: k.convert_map_from(R)
1413+
sage: R.<a> = Zq(81); k = R.residue_field() # needs sage.rings.padics
1414+
sage: k.convert_map_from(R) # needs sage.rings.padics
14121415
Reduction morphism:
14131416
From: 3-adic Unramified Extension Ring in a defined by x^4 + 2*x^3 + 2
14141417
To: Finite Field in a0 of size 3^4
@@ -1953,8 +1956,8 @@ cdef class FiniteField(Field):
19531956
sage: Frob = k.frobenius_endomorphism(); Frob
19541957
Frobenius endomorphism t |--> t^3 on Finite Field in t of size 3^5
19551958
1956-
sage: a = k.random_element()
1957-
sage: Frob(a) == a^3
1959+
sage: a = k.random_element() # needs sage.modules
1960+
sage: Frob(a) == a^3 # needs sage.modules
19581961
True
19591962
19601963
We can specify a power::
@@ -1990,8 +1993,8 @@ cdef class FiniteField(Field):
19901993
19911994
EXAMPLES::
19921995
1993-
sage: G = GF(3^6).galois_group()
1994-
sage: G
1996+
sage: # needs sage.groups
1997+
sage: G = GF(3^6).galois_group(); G
19951998
Galois group C6 of GF(3^6)
19961999
sage: F = G.gen()
19972000
sage: F^2
@@ -2047,13 +2050,14 @@ cdef class FiniteField(Field):
20472050
EXAMPLES::
20482051
20492052
sage: F.<a> = GF(2^4)
2050-
sage: F.dual_basis(basis=None, check=False)
2053+
sage: F.dual_basis(basis=None, check=False) # needs sage.modules
20512054
[a^3 + 1, a^2, a, 1]
20522055
20532056
We can test that the dual basis returned satisfies the defining
20542057
property of a dual basis:
20552058
`\mathrm{Tr}(e_i d_j) = \delta_{i,j}, 0 \leq i,j \leq n-1` ::
20562059
2060+
sage: # needs sage.modules
20572061
sage: F.<a> = GF(7^4)
20582062
sage: e = [4*a^3, 2*a^3 + a^2 + 3*a + 5,
20592063
....: 3*a^3 + 5*a^2 + 4*a + 2, 2*a^3 + 2*a^2 + 2]
@@ -2067,6 +2071,7 @@ cdef class FiniteField(Field):
20672071
We can test that if `d` is the dual basis of `e`, then `e` is the dual
20682072
basis of `d`::
20692073
2074+
sage: # needs sage.modules
20702075
sage: F.<a> = GF(7^8)
20712076
sage: e = [a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7]
20722077
sage: d = F.dual_basis(e, check=False); d
@@ -2085,12 +2090,12 @@ cdef class FiniteField(Field):
20852090
::
20862091
20872092
sage: F.<a> = GF(2^3)
2088-
sage: F.dual_basis([a], check=True)
2093+
sage: F.dual_basis([a], check=True) # needs sage.modules
20892094
Traceback (most recent call last):
20902095
...
20912096
ValueError: basis length should be 3, not 1
20922097
2093-
sage: F.dual_basis([a^0, a, a^0 + a], check=True)
2098+
sage: F.dual_basis([a^0, a, a^0 + a], check=True) # needs sage.modules
20942099
Traceback (most recent call last):
20952100
...
20962101
ValueError: value of 'basis' keyword is not a basis

src/sage/rings/finite_rings/finite_field_pari_ffelt.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,12 @@ def _pari_frobenius(self, k=1):
213213
TESTS::
214214
215215
sage: F = FiniteField(37^10, 'a', impl='pari_ffelt')
216-
sage: x = F.random_element()
217-
sage: all(x**(37**k) == F(F._pari_frobenius(k).ffmap(x)) for k in range(1, 30) if k % 10 != 0)
216+
sage: x = F.random_element() # optional - sage.modules
217+
sage: all(x**(37**k) == F(F._pari_frobenius(k).ffmap(x)) # optional - sage.modules
218+
....: for k in range(1, 30) if k % 10 != 0)
218219
True
219-
sage: F(F._pari_frobenius(-1).ffmap(x))**37 == x
220+
sage: F(F._pari_frobenius(-1).ffmap(x))**37 == x # optional - sage.modules
220221
True
221-
222222
"""
223223
k = k % self.degree()
224224
if k == 0:

src/sage/rings/finite_rings/integer_mod_ring.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -885,26 +885,27 @@ def multiplicative_generator(self):
885885
886886
EXAMPLES::
887887
888+
sage: # needs sage.groups sage.libs.pari
888889
sage: R = Integers(7); R
889890
Ring of integers modulo 7
890-
sage: R.multiplicative_generator() # needs sage.libs.pari
891+
sage: R.multiplicative_generator()
891892
3
892893
sage: R = Integers(9)
893-
sage: R.multiplicative_generator() # needs sage.libs.pari
894+
sage: R.multiplicative_generator()
894895
2
895896
sage: Integers(8).multiplicative_generator()
896897
Traceback (most recent call last):
897898
...
898899
ValueError: multiplicative group of this ring is not cyclic
899-
sage: Integers(4).multiplicative_generator() # needs sage.libs.pari
900+
sage: Integers(4).multiplicative_generator()
900901
3
901-
sage: Integers(25*3).multiplicative_generator() # needs sage.libs.pari
902+
sage: Integers(25*3).multiplicative_generator()
902903
Traceback (most recent call last):
903904
...
904905
ValueError: multiplicative group of this ring is not cyclic
905-
sage: Integers(25*3).unit_gens() # needs sage.libs.pari
906+
sage: Integers(25*3).unit_gens()
906907
(26, 52)
907-
sage: Integers(162).unit_gens() # needs sage.libs.pari
908+
sage: Integers(162).unit_gens()
908909
(83,)
909910
"""
910911
try:

src/sage/rings/finite_rings/residue_field.pyx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@ class ResidueField_generic(Field):
508508
sage: R.<t> = GF(29)[]; P = R.ideal(t^2 + 2); k.<a> = ResidueField(P); k
509509
Residue field in a of Principal ideal (t^2 + 2) of
510510
Univariate Polynomial Ring in t over Finite Field of size 29
511-
sage: type(k)
511+
sage: type(k) # needs sage.libs.linbox
512512
<class 'sage.rings.finite_rings.residue_field_givaro.ResidueFiniteField_givaro_with_category'>
513513
"""
514514
def __init__(self, p):
@@ -550,7 +550,7 @@ class ResidueField_generic(Field):
550550
551551
sage: TestSuite(F).run()
552552
553-
sage: # needs sage.rings.finite_rings
553+
sage: # needs sage.modules sage.rings.finite_rings
554554
sage: TestSuite(k).run()
555555
"""
556556
self.p = p
@@ -982,7 +982,7 @@ cdef class ReductionMap(Map):
982982
Univariate Polynomial Ring in t over Finite Field of size 2 (using GF2X)
983983
To: Residue field in tbar of Principal ideal (t^7 + t^6 + t^5 + t^4 + 1) of
984984
Univariate Polynomial Ring in t over Finite Field of size 2 (using GF2X)
985-
sage: type(k)
985+
sage: type(k) # needs sage.libs.linbox
986986
<class 'sage.rings.finite_rings.residue_field_givaro.ResidueFiniteField_givaro_with_category'>
987987
"""
988988
self._K = K
@@ -1099,7 +1099,7 @@ cdef class ReductionMap(Map):
10991099
sage: f(1/h)
11001100
Traceback (most recent call last):
11011101
...
1102-
ZeroDivisionError: division by zero in finite field
1102+
ZeroDivisionError...
11031103
11041104
An example to show that the issue raised in :trac:`1951`
11051105
has been fixed::

src/sage/rings/finite_rings/residue_field_pari_ffelt.pyx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class ResidueFiniteField_pari_ffelt(ResidueField_generic, FiniteField_pari_ffelt
6868
6969
We create a residue field with implementation ``pari_ffelt``::
7070
71+
sage: # needs sage.rings.number_field
7172
sage: x = polygen(ZZ, 'x')
7273
sage: K.<a> = NumberField(x^3 - 7)
7374
sage: P = K.ideal(923478923).factor()[0][0]

0 commit comments

Comments
 (0)