Skip to content

Commit af4ab84

Browse files
author
Release Manager
committed
gh-35314: `sage.schemes`: Reformat doctests, add `# optional` annotations <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> ### 📚 Description <!-- Describe your changes here in detail --> Adding doctest tags `# optional - sage.rings.finite_rings`, `...number_field`, `...padics`. While going through the doctests line by line, I also made the following changes: - some coding style fixes in the doctests (such as adding spaces around some operators and after commas, following PEP 8) - improved the readability of them in the HTML format by breaking long lines to avoid having to scroll horizontally - improved indentation of input and output, in particular when morphisms are displayed - made better use of the horizontal space in the doctests of some modules in `sage.schemes.toric`, which were formatted for a very narrow layout - improved the sphinx markup of some docstrings. <!-- Why is this change required? What problem does it solve? --> The doctest tags are preparation for being able to test parts of `sage.schemes` in a modularized setting, in which not all rings are available. See https://doc.sagemath.org/html/en/developer/packaging_sage _library.html#doctest-only-dependencies <!-- If it resolves an open issue, please link to the issue here. For example "Closes #1337" --> Part of: - #29705 ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [x] I have made sure that the title is self-explanatory and the description concisely explains the PR. - [x] I have linked an issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open pull requests that this PR logically depends on --> <!-- - #xyz: short description why this is a dependency - #abc: ... --> - Depends on #35230 (not merged here) for the definition of the feature `sage.rings.finite_rings`. The mass edits adding `# optional` tags were made using the following Emacs macro. ```elisp (defun sage-copy-optional-annotation () "In a 'sage: ' line of a docstring, copy '# optional' from a previous line and advance to the end of the next 'sage: ' line or to the end of the current docstring. If invoked elsewhere, just advance to the end of the next 'sage: ' line." (interactive) (if (save-excursion (beginning-of-line) (looking-at " *sage:")) (let ((tab-stop-list (list (save-excursion (previous-line) (end-of-line) (re-search-backward "# *optional.*$") (- (match-beginning 0) (save-excursion (beginning-of-line) (point))))))) (end-of-line) (just-one-space) (tab-to-tab-stop) (insert (match-string-no-properties 0)) (re-search-forward "sage: \\|\"\"\"") (end-of-line)) (re-search-forward "sage:") (end-of-line))) (with-eval-after-load "python-mode" (define-key python-mode-map (kbd "C-M-;") 'sage-copy-optional- annotation)) ``` URL: #35314 Reported by: Matthias Köppe Reviewer(s): Kwankyu Lee, Matthias Köppe
2 parents 4652693 + 912e520 commit af4ab84

File tree

112 files changed

+12645
-11482
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

112 files changed

+12645
-11482
lines changed

src/sage/schemes/affine/affine_homset.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -210,14 +210,14 @@ def points(self, **kwds):
210210
EXAMPLES: The bug reported at #11526 is fixed::
211211
212212
sage: A2 = AffineSpace(ZZ, 2)
213-
sage: F = GF(3)
214-
sage: A2(F).points()
213+
sage: F = GF(3) # optional - sage.rings.finite_rings
214+
sage: A2(F).points() # optional - sage.rings.finite_rings
215215
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
216216
217217
::
218218
219219
sage: A.<x,y> = ZZ[]
220-
sage: I = A.ideal(x^2-y^2-1)
220+
sage: I = A.ideal(x^2 - y^2 - 1)
221221
sage: V = AffineSpace(ZZ, 2)
222222
sage: X = V.subscheme(I)
223223
sage: M = X(ZZ)
@@ -227,9 +227,9 @@ def points(self, **kwds):
227227
::
228228
229229
sage: u = QQ['u'].0
230-
sage: K.<v> = NumberField(u^2 + 3)
231-
sage: A.<x,y> = AffineSpace(K, 2)
232-
sage: len(A(K).points(bound=2))
230+
sage: K.<v> = NumberField(u^2 + 3) # optional - sage.rings.number_field
231+
sage: A.<x,y> = AffineSpace(K, 2) # optional - sage.rings.number_field
232+
sage: len(A(K).points(bound=2)) # optional - sage.rings.number_field
233233
1849
234234
235235
::
@@ -244,16 +244,20 @@ def points(self, **kwds):
244244
sage: A.<x,y> = AffineSpace(CC, 2)
245245
sage: E = A.subscheme([y^3 - x^3 - x^2, x*y])
246246
sage: E(A.base_ring()).points()
247-
verbose 0 (...: affine_homset.py, points) Warning: computations in the numerical fields are inexact;points may be computed partially or incorrectly.
247+
verbose 0 (...: affine_homset.py, points)
248+
Warning: computations in the numerical fields are inexact;points
249+
may be computed partially or incorrectly.
248250
[(-1.00000000000000, 0.000000000000000),
249-
(0.000000000000000, 0.000000000000000)]
251+
(0.000000000000000, 0.000000000000000)]
250252
251253
::
252254
253255
sage: A.<x1,x2> = AffineSpace(CDF, 2)
254256
sage: E = A.subscheme([x1^2 + x2^2 + x1*x2, x1 + x2])
255257
sage: E(A.base_ring()).points()
256-
verbose 0 (...: affine_homset.py, points) Warning: computations in the numerical fields are inexact;points may be computed partially or incorrectly.
258+
verbose 0 (...: affine_homset.py, points)
259+
Warning: computations in the numerical fields are inexact;points
260+
may be computed partially or incorrectly.
257261
[(0.0, 0.0)]
258262
"""
259263
from sage.schemes.affine.affine_space import is_AffineSpace
@@ -388,14 +392,14 @@ def numerical_points(self, F=None, **kwds):
388392
389393
EXAMPLES::
390394
391-
sage: K.<v> = QuadraticField(3)
392-
sage: A.<x,y> = AffineSpace(K, 2)
393-
sage: X = A.subscheme([x^3 - v^2*y, y - v*x^2 + 3])
394-
sage: L = X(K).numerical_points(F=RR); L # abs tol 1e-14
395+
sage: K.<v> = QuadraticField(3) # optional - sage.rings.number_field
396+
sage: A.<x,y> = AffineSpace(K, 2) # optional - sage.rings.number_field
397+
sage: X = A.subscheme([x^3 - v^2*y, y - v*x^2 + 3]) # optional - sage.rings.number_field
398+
sage: L = X(K).numerical_points(F=RR); L # abs tol 1e-14 # optional - sage.rings.number_field
395399
[(-1.18738247880014, -0.558021142104134),
396400
(1.57693558184861, 1.30713548084184),
397401
(4.80659931965815, 37.0162574656220)]
398-
sage: L[0].codomain()
402+
sage: L[0].codomain() # optional - sage.rings.number_field
399403
Affine Space of dimension 2 over Real Field with 53 bits of precision
400404
401405
::

src/sage/schemes/affine/affine_morphism.py

Lines changed: 209 additions & 222 deletions
Large diffs are not rendered by default.

src/sage/schemes/affine/affine_point.py

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,9 @@ def global_height(self, prec=None):
194194
::
195195
196196
sage: R.<x> = PolynomialRing(QQ)
197-
sage: k.<w> = NumberField(x^2+5)
198-
sage: A = AffineSpace(k, 2, 'z')
199-
sage: A([3, 5*w+1]).global_height(prec=100)
197+
sage: k.<w> = NumberField(x^2 + 5) # optional - sage.rings.number_field
198+
sage: A = AffineSpace(k, 2, 'z') # optional - sage.rings.number_field
199+
sage: A([3, 5*w + 1]).global_height(prec=100) # optional - sage.rings.number_field
200200
2.4181409534757389986565376694
201201
202202
.. TODO::
@@ -289,24 +289,24 @@ def weil_restriction(self):
289289
290290
EXAMPLES::
291291
292-
sage: A.<x,y,z> = AffineSpace(GF(5^3, 't'), 3)
293-
sage: X = A.subscheme([y^2-x*z, z^2+y])
294-
sage: Y = X.weil_restriction()
295-
sage: P = X([1, -1, 1])
296-
sage: Q = P.weil_restriction();Q
292+
sage: A.<x,y,z> = AffineSpace(GF(5^3, 't'), 3) # optional - sage.rings.finite_rings
293+
sage: X = A.subscheme([y^2 - x*z, z^2 + y]) # optional - sage.rings.finite_rings
294+
sage: Y = X.weil_restriction() # optional - sage.rings.finite_rings
295+
sage: P = X([1, -1, 1]) # optional - sage.rings.finite_rings
296+
sage: Q = P.weil_restriction();Q # optional - sage.rings.finite_rings
297297
(1, 0, 0, 4, 0, 0, 1, 0, 0)
298-
sage: Q.codomain() == Y
298+
sage: Q.codomain() == Y # optional - sage.rings.finite_rings
299299
True
300300
301301
::
302302
303303
sage: R.<x> = QQ[]
304-
sage: K.<w> = NumberField(x^5-2)
305-
sage: R.<x> = K[]
306-
sage: L.<v> = K.extension(x^2+w)
307-
sage: A.<x,y> = AffineSpace(L, 2)
308-
sage: P = A([w^3-v,1+w+w*v])
309-
sage: P.weil_restriction()
304+
sage: K.<w> = NumberField(x^5 - 2) # optional - sage.rings.number_field
305+
sage: R.<x> = K[] # optional - sage.rings.number_field
306+
sage: L.<v> = K.extension(x^2 + w) # optional - sage.rings.number_field
307+
sage: A.<x,y> = AffineSpace(L, 2) # optional - sage.rings.number_field
308+
sage: P = A([w^3 - v, 1 + w + w*v]) # optional - sage.rings.number_field
309+
sage: P.weil_restriction() # optional - sage.rings.number_field
310310
(w^3, -1, w + 1, w)
311311
"""
312312
L = self.codomain().base_ring()
@@ -356,14 +356,14 @@ def intersection_multiplicity(self, X):
356356
357357
EXAMPLES::
358358
359-
sage: A.<x,y> = AffineSpace(GF(17), 2)
360-
sage: X = A.subscheme([y^2 - x^3 + 2*x^2 - x])
361-
sage: Y = A.subscheme([y - 2*x + 2])
362-
sage: Q1 = Y([1,0])
363-
sage: Q1.intersection_multiplicity(X)
359+
sage: A.<x,y> = AffineSpace(GF(17), 2) # optional - sage.rings.finite_rings
360+
sage: X = A.subscheme([y^2 - x^3 + 2*x^2 - x]) # optional - sage.rings.finite_rings
361+
sage: Y = A.subscheme([y - 2*x + 2]) # optional - sage.rings.finite_rings
362+
sage: Q1 = Y([1,0]) # optional - sage.rings.finite_rings
363+
sage: Q1.intersection_multiplicity(X) # optional - sage.rings.finite_rings
364364
2
365-
sage: Q2 = X([4,6])
366-
sage: Q2.intersection_multiplicity(Y)
365+
sage: Q2 = X([4,6]) # optional - sage.rings.finite_rings
366+
sage: Q2.intersection_multiplicity(Y) # optional - sage.rings.finite_rings
367367
1
368368
369369
::
@@ -416,27 +416,27 @@ def __hash__(self):
416416
417417
EXAMPLES::
418418
419-
sage: P.<x,y,z> = AffineSpace(GF(5), 3)
420-
sage: hash(P(2, 1, 2))
419+
sage: P.<x,y,z> = AffineSpace(GF(5), 3) # optional - sage.rings.finite_rings
420+
sage: hash(P(2, 1, 2)) # optional - sage.rings.finite_rings
421421
57
422422
423423
::
424424
425-
sage: P.<x,y,z> = AffineSpace(GF(7), 3)
426-
sage: X = P.subscheme(x^2-y^2)
427-
sage: hash(X(1, 1, 2))
425+
sage: P.<x,y,z> = AffineSpace(GF(7), 3) # optional - sage.rings.finite_rings
426+
sage: X = P.subscheme(x^2 - y^2) # optional - sage.rings.finite_rings
427+
sage: hash(X(1, 1, 2)) # optional - sage.rings.finite_rings
428428
106
429429
430430
::
431431
432-
sage: P.<x,y> = AffineSpace(GF(13), 2)
433-
sage: hash(P(3, 4))
432+
sage: P.<x,y> = AffineSpace(GF(13), 2) # optional - sage.rings.finite_rings
433+
sage: hash(P(3, 4)) # optional - sage.rings.finite_rings
434434
55
435435
436436
::
437437
438-
sage: P.<x,y> = AffineSpace(GF(13^3, 't'), 2)
439-
sage: hash(P(3, 4))
438+
sage: P.<x,y> = AffineSpace(GF(13^3, 't'), 2) # optional - sage.rings.finite_rings
439+
sage: hash(P(3, 4)) # optional - sage.rings.finite_rings
440440
8791
441441
"""
442442
p = self.codomain().base_ring().order()

src/sage/schemes/affine/affine_rational_point.py

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@
1717
1818
sage: from sage.schemes.affine.affine_rational_point import enum_affine_rational_field
1919
sage: A.<x,y,z> = AffineSpace(3, QQ)
20-
sage: S = A.subscheme([2*x-3*y])
20+
sage: S = A.subscheme([2*x - 3*y])
2121
sage: enum_affine_rational_field(S, 2)
2222
[(0, 0, -2), (0, 0, -1), (0, 0, -1/2), (0, 0, 0),
2323
(0, 0, 1/2), (0, 0, 1), (0, 0, 2)]
2424
2525
Affine over a finite field::
2626
2727
sage: from sage.schemes.affine.affine_rational_point import enum_affine_finite_field
28-
sage: A.<w,x,y,z> = AffineSpace(4, GF(2))
29-
sage: enum_affine_finite_field(A(GF(2)))
28+
sage: A.<w,x,y,z> = AffineSpace(4, GF(2)) # optional - sage.rings.finite_rings
29+
sage: enum_affine_finite_field(A(GF(2))) # optional - sage.rings.finite_rings
3030
[(0, 0, 0, 0), (0, 0, 0, 1), (0, 0, 1, 0), (0, 0, 1, 1), (0, 1, 0, 0),
3131
(0, 1, 0, 1), (0, 1, 1, 0), (0, 1, 1, 1), (1, 0, 0, 0), (1, 0, 0, 1),
3232
(1, 0, 1, 0), (1, 0, 1, 1), (1, 1, 0, 0), (1, 1, 0, 1), (1, 1, 1, 0),
@@ -77,15 +77,15 @@ def enum_affine_rational_field(X, B):
7777
sage: from sage.schemes.affine.affine_rational_point import enum_affine_rational_field
7878
sage: enum_affine_rational_field(A(QQ), 1)
7979
[(-1, -1, -1), (-1, -1, 0), (-1, -1, 1), (-1, 0, -1), (-1, 0, 0), (-1, 0, 1),
80-
(-1, 1, -1), (-1, 1, 0), (-1, 1, 1), (0, -1, -1), (0, -1, 0), (0, -1, 1),
81-
(0, 0, -1), (0, 0, 0), (0, 0, 1), (0, 1, -1), (0, 1, 0), (0, 1, 1), (1, -1, -1),
82-
(1, -1, 0), (1, -1, 1), (1, 0, -1), (1, 0, 0), (1, 0, 1), (1, 1, -1), (1, 1, 0),
83-
(1, 1, 1)]
80+
(-1, 1, -1), (-1, 1, 0), (-1, 1, 1), (0, -1, -1), (0, -1, 0), (0, -1, 1),
81+
(0, 0, -1), (0, 0, 0), (0, 0, 1), (0, 1, -1), (0, 1, 0), (0, 1, 1), (1, -1, -1),
82+
(1, -1, 0), (1, -1, 1), (1, 0, -1), (1, 0, 0), (1, 0, 1), (1, 1, -1), (1, 1, 0),
83+
(1, 1, 1)]
8484
8585
::
8686
8787
sage: A.<w,x,y,z> = AffineSpace(4, QQ)
88-
sage: S = A.subscheme([x^2-y*z+1, w^3+z+y^2])
88+
sage: S = A.subscheme([x^2 - y*z + 1, w^3 + z + y^2])
8989
sage: enum_affine_rational_field(S(QQ), 1)
9090
[(0, 0, -1, -1)]
9191
sage: enum_affine_rational_field(S(QQ), 2)
@@ -94,11 +94,11 @@ def enum_affine_rational_field(X, B):
9494
::
9595
9696
sage: A.<x,y> = AffineSpace(2, QQ)
97-
sage: C = Curve(x^2+y-x)
97+
sage: C = Curve(x^2 + y - x)
9898
sage: enum_affine_rational_field(C, 10) # long time (3 s)
9999
[(-2, -6), (-1, -2), (-2/3, -10/9), (-1/2, -3/4), (-1/3, -4/9),
100-
(0, 0), (1/3, 2/9), (1/2, 1/4), (2/3, 2/9), (1, 0),
101-
(4/3, -4/9), (3/2, -3/4), (5/3, -10/9), (2, -2), (3, -6)]
100+
(0, 0), (1/3, 2/9), (1/2, 1/4), (2/3, 2/9), (1, 0),
101+
(4/3, -4/9), (3/2, -3/4), (5/3, -10/9), (2, -2), (3, -6)]
102102
103103
AUTHORS:
104104
@@ -183,31 +183,32 @@ def enum_affine_number_field(X, **kwds):
183183
184184
OUTPUT:
185185
186-
- a list containing the affine points of ``X`` of absolute height up to ``B``,
187-
sorted.
186+
- a list containing the affine points of ``X`` of absolute height up to ``B``,
187+
sorted.
188188
189189
EXAMPLES::
190190
191191
sage: from sage.schemes.affine.affine_rational_point import enum_affine_number_field
192192
sage: u = QQ['u'].0
193-
sage: K = NumberField(u^2 + 2, 'v')
194-
sage: A.<x,y,z> = AffineSpace(K, 3)
195-
sage: X = A.subscheme([y^2 - x])
196-
sage: enum_affine_number_field(X(K), bound=2**0.5)
197-
[(0, 0, -1), (0, 0, -v), (0, 0, -1/2*v), (0, 0, 0), (0, 0, 1/2*v), (0, 0, v), (0, 0, 1),
198-
(1, -1, -1), (1, -1, -v), (1, -1, -1/2*v), (1, -1, 0), (1, -1, 1/2*v), (1, -1, v), (1, -1, 1),
199-
(1, 1, -1), (1, 1, -v), (1, 1, -1/2*v), (1, 1, 0), (1, 1, 1/2*v), (1, 1, v), (1, 1, 1)]
193+
sage: K = NumberField(u^2 + 2, 'v') # optional - sage.rings.number_field
194+
sage: A.<x,y,z> = AffineSpace(K, 3) # optional - sage.rings.number_field
195+
sage: X = A.subscheme([y^2 - x]) # optional - sage.rings.number_field
196+
sage: enum_affine_number_field(X(K), bound=2**0.5) # optional - sage.rings.number_field
197+
[(0, 0, -1), (0, 0, -v), (0, 0, -1/2*v), (0, 0, 0), (0, 0, 1/2*v),
198+
(0, 0, v), (0, 0, 1), (1, -1, -1), (1, -1, -v), (1, -1, -1/2*v),
199+
(1, -1, 0), (1, -1, 1/2*v), (1, -1, v), (1, -1, 1), (1, 1, -1),
200+
(1, 1, -v), (1, 1, -1/2*v), (1, 1, 0), (1, 1, 1/2*v), (1, 1, v), (1, 1, 1)]
200201
201202
::
202203
203-
sage: u = QQ['u'].0
204-
sage: K = NumberField(u^2 + 3, 'v')
205-
sage: A.<x,y> = AffineSpace(K, 2)
206-
sage: X=A.subscheme(x-y)
207204
sage: from sage.schemes.affine.affine_rational_point import enum_affine_number_field
208-
sage: enum_affine_number_field(X, bound=3**0.25)
209-
[(-1, -1), (-1/2*v - 1/2, -1/2*v - 1/2), (1/2*v - 1/2, 1/2*v - 1/2), (0, 0), (-1/2*v + 1/2, -1/2*v + 1/2),
210-
(1/2*v + 1/2, 1/2*v + 1/2), (1, 1)]
205+
sage: u = QQ['u'].0
206+
sage: K = NumberField(u^2 + 3, 'v') # optional - sage.rings.number_field
207+
sage: A.<x,y> = AffineSpace(K, 2) # optional - sage.rings.number_field
208+
sage: X = A.subscheme(x - y) # optional - sage.rings.number_field
209+
sage: enum_affine_number_field(X, bound=3**0.25) # optional - sage.rings.number_field
210+
[(-1, -1), (-1/2*v - 1/2, -1/2*v - 1/2), (1/2*v - 1/2, 1/2*v - 1/2),
211+
(0, 0), (-1/2*v + 1/2, -1/2*v + 1/2), (1/2*v + 1/2, 1/2*v + 1/2), (1, 1)]
211212
"""
212213
B = kwds.pop('bound')
213214
tol = kwds.pop('tolerance', 1e-2)
@@ -248,31 +249,31 @@ def enum_affine_finite_field(X):
248249
249250
EXAMPLES::
250251
251-
sage: F = GF(7)
252-
sage: A.<w,x,y,z> = AffineSpace(4, F)
253-
sage: C = A.subscheme([w^2+x+4, y*z*x-6, z*y+w*x])
254252
sage: from sage.schemes.affine.affine_rational_point import enum_affine_finite_field
255-
sage: enum_affine_finite_field(C(F))
253+
sage: F = GF(7) # optional - sage.rings.finite_rings
254+
sage: A.<w,x,y,z> = AffineSpace(4, F) # optional - sage.rings.finite_rings
255+
sage: C = A.subscheme([w^2 + x + 4, y*z*x - 6, z*y + w*x]) # optional - sage.rings.finite_rings
256+
sage: enum_affine_finite_field(C(F)) # optional - sage.rings.finite_rings
256257
[]
257-
sage: C = A.subscheme([w^2+x+4, y*z*x-6])
258-
sage: enum_affine_finite_field(C(F))
258+
sage: C = A.subscheme([w^2 + x + 4, y*z*x - 6]) # optional - sage.rings.finite_rings
259+
sage: enum_affine_finite_field(C(F)) # optional - sage.rings.finite_rings
259260
[(0, 3, 1, 2), (0, 3, 2, 1), (0, 3, 3, 3), (0, 3, 4, 4), (0, 3, 5, 6),
260-
(0, 3, 6, 5), (1, 2, 1, 3), (1, 2, 2, 5), (1, 2, 3, 1), (1, 2, 4, 6),
261-
(1, 2, 5, 2), (1, 2, 6, 4), (2, 6, 1, 1), (2, 6, 2, 4), (2, 6, 3, 5),
262-
(2, 6, 4, 2), (2, 6, 5, 3), (2, 6, 6, 6), (3, 1, 1, 6), (3, 1, 2, 3),
263-
(3, 1, 3, 2), (3, 1, 4, 5), (3, 1, 5, 4), (3, 1, 6, 1), (4, 1, 1, 6),
264-
(4, 1, 2, 3), (4, 1, 3, 2), (4, 1, 4, 5), (4, 1, 5, 4), (4, 1, 6, 1),
265-
(5, 6, 1, 1), (5, 6, 2, 4), (5, 6, 3, 5), (5, 6, 4, 2), (5, 6, 5, 3),
266-
(5, 6, 6, 6), (6, 2, 1, 3), (6, 2, 2, 5), (6, 2, 3, 1), (6, 2, 4, 6),
267-
(6, 2, 5, 2), (6, 2, 6, 4)]
261+
(0, 3, 6, 5), (1, 2, 1, 3), (1, 2, 2, 5), (1, 2, 3, 1), (1, 2, 4, 6),
262+
(1, 2, 5, 2), (1, 2, 6, 4), (2, 6, 1, 1), (2, 6, 2, 4), (2, 6, 3, 5),
263+
(2, 6, 4, 2), (2, 6, 5, 3), (2, 6, 6, 6), (3, 1, 1, 6), (3, 1, 2, 3),
264+
(3, 1, 3, 2), (3, 1, 4, 5), (3, 1, 5, 4), (3, 1, 6, 1), (4, 1, 1, 6),
265+
(4, 1, 2, 3), (4, 1, 3, 2), (4, 1, 4, 5), (4, 1, 5, 4), (4, 1, 6, 1),
266+
(5, 6, 1, 1), (5, 6, 2, 4), (5, 6, 3, 5), (5, 6, 4, 2), (5, 6, 5, 3),
267+
(5, 6, 6, 6), (6, 2, 1, 3), (6, 2, 2, 5), (6, 2, 3, 1), (6, 2, 4, 6),
268+
(6, 2, 5, 2), (6, 2, 6, 4)]
268269
269270
::
270271
271-
sage: A.<x,y,z> = AffineSpace(3, GF(3))
272-
sage: S = A.subscheme(x+y)
273-
sage: enum_affine_finite_field(S)
272+
sage: A.<x,y,z> = AffineSpace(3, GF(3)) # optional - sage.rings.finite_rings
273+
sage: S = A.subscheme(x + y) # optional - sage.rings.finite_rings
274+
sage: enum_affine_finite_field(S) # optional - sage.rings.finite_rings
274275
[(0, 0, 0), (0, 0, 1), (0, 0, 2), (1, 2, 0), (1, 2, 1), (1, 2, 2),
275-
(2, 1, 0), (2, 1, 1), (2, 1, 2)]
276+
(2, 1, 0), (2, 1, 1), (2, 1, 2)]
276277
277278
ALGORITHM:
278279

0 commit comments

Comments
 (0)