@@ -338,11 +338,11 @@ cdef class FiniteField(Field):
338
338
339
339
sage: L = []
340
340
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
344
342
[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"))))
345
344
[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
346
346
[0, 1, z, z + 1, z^2, z^2 + 1, z^2 + z, z^2 + z + 1]
347
347
"""
348
348
cdef Py_ssize_t n = self .degree()
@@ -1123,12 +1123,12 @@ cdef class FiniteField(Field):
1123
1123
EXAMPLES::
1124
1124
1125
1125
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
1127
1127
True
1128
1128
1129
1129
Passes extra positional or keyword arguments through::
1130
1130
1131
- sage: k. random_element( prob=0)
1131
+ sage: k. random_element( prob=0) # needs sage . modules
1132
1132
0
1133
1133
1134
1134
"""
@@ -1145,7 +1145,7 @@ cdef class FiniteField(Field):
1145
1145
EXAMPLES::
1146
1146
1147
1147
sage: k = GF(2^8,'a')
1148
- sage: k.some_elements() # random output
1148
+ sage: k.some_elements() # random output # needs sage.modules
1149
1149
[a^4 + a^3 + 1, a^6 + a^4 + a^3, a^5 + a^4 + a, a^2 + a]
1150
1150
"""
1151
1151
return [self .random_element() for i in range (4 )]
@@ -1206,9 +1206,10 @@ cdef class FiniteField(Field):
1206
1206
1207
1207
EXAMPLES::
1208
1208
1209
- sage: GF(27,'a').vector_space(map=False)
1209
+ sage: GF(27,'a').vector_space(map=False) # needs sage.modules
1210
1210
Vector space of dimension 3 over Finite Field of size 3
1211
1211
1212
+ sage: # needs sage.modules
1212
1213
sage: F = GF(8)
1213
1214
sage: E = GF(64)
1214
1215
sage: V, from_V, to_V = E.vector_space(F, map=True)
@@ -1223,6 +1224,7 @@ cdef class FiniteField(Field):
1223
1224
sage: all(to_V(c * e) == c * to_V(e) for e in E for c in F)
1224
1225
True
1225
1226
1227
+ sage: # needs sage.modules
1226
1228
sage: basis = [E.gen(), E.gen() + 1]
1227
1229
sage: W, from_W, to_W = E.vector_space(F, basis, map=True)
1228
1230
sage: all(from_W(to_W(e)) == e for e in E)
@@ -1235,6 +1237,7 @@ cdef class FiniteField(Field):
1235
1237
(1, 0)
1236
1238
(0, 1)
1237
1239
1240
+ sage: # needs sage.modules
1238
1241
sage: F = GF(9, 't', modulus=x^2 + x - 1)
1239
1242
sage: E = GF(81)
1240
1243
sage: h = Hom(F,E).an_element()
@@ -1399,16 +1402,16 @@ cdef class FiniteField(Field):
1399
1402
1400
1403
EXAMPLES::
1401
1404
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
1404
1407
Reduction morphism:
1405
1408
From: 7-adic Unramified Extension Field in a defined by x^2 + 6*x + 3
1406
1409
To: Finite Field in a0 of size 7^2
1407
1410
1408
1411
Check that :trac:`8240 is resolved::
1409
1412
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
1412
1415
Reduction morphism:
1413
1416
From: 3-adic Unramified Extension Ring in a defined by x^4 + 2*x^3 + 2
1414
1417
To: Finite Field in a0 of size 3^4
@@ -1953,8 +1956,8 @@ cdef class FiniteField(Field):
1953
1956
sage: Frob = k.frobenius_endomorphism(); Frob
1954
1957
Frobenius endomorphism t |--> t^3 on Finite Field in t of size 3^5
1955
1958
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
1958
1961
True
1959
1962
1960
1963
We can specify a power::
@@ -1990,8 +1993,8 @@ cdef class FiniteField(Field):
1990
1993
1991
1994
EXAMPLES::
1992
1995
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
1995
1998
Galois group C6 of GF( 3^ 6)
1996
1999
sage: F = G. gen( )
1997
2000
sage: F^ 2
@@ -2047,13 +2050,14 @@ cdef class FiniteField(Field):
2047
2050
EXAMPLES::
2048
2051
2049
2052
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
2051
2054
[a^3 + 1, a^2, a, 1 ]
2052
2055
2053
2056
We can test that the dual basis returned satisfies the defining
2054
2057
property of a dual basis:
2055
2058
`\m athrm{Tr}( e_i d_j) = \d elta_{i,j}, 0 \l eq i,j \l eq n-1` ::
2056
2059
2060
+ sage: # needs sage. modules
2057
2061
sage: F. <a> = GF( 7^ 4)
2058
2062
sage: e = [4*a^3, 2*a^3 + a^2 + 3*a + 5,
2059
2063
....: 3*a^3 + 5*a^2 + 4*a + 2, 2*a^3 + 2*a^2 + 2 ]
@@ -2067,6 +2071,7 @@ cdef class FiniteField(Field):
2067
2071
We can test that if `d` is the dual basis of `e`, then `e` is the dual
2068
2072
basis of `d`::
2069
2073
2074
+ sage: # needs sage. modules
2070
2075
sage: F. <a> = GF( 7^ 8)
2071
2076
sage: e = [a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7 ]
2072
2077
sage: d = F. dual_basis( e, check=False) ; d
@@ -2085,12 +2090,12 @@ cdef class FiniteField(Field):
2085
2090
::
2086
2091
2087
2092
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
2089
2094
Traceback ( most recent call last) :
2090
2095
...
2091
2096
ValueError: basis length should be 3, not 1
2092
2097
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
2094
2099
Traceback ( most recent call last) :
2095
2100
...
2096
2101
ValueError: value of 'basis' keyword is not a basis
0 commit comments