Opened 10 years ago

Closed 9 years ago

Last modified 9 years ago

#11526 closed defect (fixed)

count_points() error for generic schemes. (includes patch)

Reported by: mmarco Owned by: AlexGhitza
Priority: major Milestone: sage-4.8
Component: algebraic geometry Keywords:
Cc: Merged in: sage-4.8.alpha4
Authors: Miguel Marco, David Eklund, Frithjof Schulze Reviewers: Johan Bosman, Julian Rueth
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by saraedum)

sage raises an error when trying to count the number of points of a subscheme of an affine scheme.

See, for instance:

sage: F=FiniteField(3)
sage: R.<x,y>=F[]
sage: A=AffineSpace(F,2)
sage: I=R.ideal(x^2-y^2-1)
sage: S=A.subscheme(I)
sage: S.count_points(2)



---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)

/home/mmarco/sage-4.6.2/<ipython console> in <module>()

/usr/lib64/python2.7/site-packages/sage/schemes/generic/scheme.py in count_points(self, n)
    531             F1 = GF(q**i, name='z')
    532             S1 = self.base_extend(F1)
--> 533             a.append(len(S1.rational_points()))
    534         return(a)
    535     

/usr/lib64/python2.7/site-packages/sage/schemes/generic/algebraic_scheme.py in rational_points(self, F, bound)
   1129                 raise TypeError, "Unable to enumerate points over %s."%F
   1130         try:
-> 1131             return X.points()
   1132         except TypeError:
   1133             raise TypeError, "Unable to enumerate points over %s."%F

/usr/lib64/python2.7/site-packages/sage/schemes/generic/homset.py in points(self, B)
    162         except TypeError:
    163             raise TypeError, "Domain of argument must be of the form Spec(S)."
--> 164         if is_RationalField(R) or R == Z:
    165             if not B > 0:
    166                 raise TypeError, "A positive bound B (= %s) must be specified."%B

NameError: global name 'Z' is not defined

Apply:

trac_11526_final.patch

Attachments (5)

trac_11526_solves_error.patch (863 bytes) - added by mmarco 10 years ago.
trac_11526_bugfix_with_doctest.patch (1.3 KB) - added by davideklund 10 years ago.
In addition to fixing the bug, the patch includes a doctest illustrating this.
trac_11526_bugfix_with_docstring.patch (1.7 KB) - added by davideklund 9 years ago.
In addition to earlier changes, the patch includes INPUT and OUTPUT info.
trac_11526_bugfix_with_docstring.2.patch (2.1 KB) - added by fschulze 9 years ago.
The same patch as above together with the fix in the projective case.
trac_11526_final.patch (2.1 KB) - added by saraedum 9 years ago.
fixes the bug (also for the projective case), docstring with Input and Output.

Download all attachments as: .zip

Change History (15)

Changed 10 years ago by mmarco

comment:1 Changed 10 years ago by mmarco

  • Description modified (diff)

comment:2 Changed 10 years ago by mmarco

  • Status changed from new to needs_review

comment:3 Changed 10 years ago by davideklund

The patch makes sense, it fixes a bug in the method points() of the class SchemeHomset_affine_coordinates.

Note: the same typo (Z instead of ZZ) seems to occur in the method points() of the class SchemeHomset_projective_coordinates_ring, which is not implemented yet.

Changed 10 years ago by davideklund

In addition to fixing the bug, the patch includes a doctest illustrating this.

comment:4 Changed 10 years ago by davideklund

  • Description modified (diff)

The patch trac_11526_bugfix_with_doctest.patch was made using Sage 4.7.1.

comment:5 Changed 10 years ago by johanbosman

  • Status changed from needs_review to needs_work

Now that you're working on the docstring anyway, it would be good to add INPUT and OUTPUT sections to it, as is the standard convention.

Changed 9 years ago by davideklund

In addition to earlier changes, the patch includes INPUT and OUTPUT info.

comment:6 Changed 9 years ago by davideklund

  • Description modified (diff)
  • Status changed from needs_work to needs_review

The patch trac_11526_bugfix_with_docstring.patch was made using Sage 4.7.1.

Changed 9 years ago by fschulze

The same patch as above together with the fix in the projective case.

Changed 9 years ago by saraedum

fixes the bug (also for the projective case), docstring with Input and Output.

comment:7 Changed 9 years ago by saraedum

  • Authors changed from Miguel Marco to Miguel Marco, davideklund, Frithjof Schulze
  • Description modified (diff)
  • Reviewers set to Johan Bosman, Julian Rueth
  • Status changed from needs_review to positive_review

Apply trac_11526_final.patch

Tested against sage-4.8.alpha3 and doctests pass.

trac_11526_final.patch is identical to [trac_11526_bugfix_with_docstring.2.patch] except for the commit message which I replaced with something that makes hopefully more sense to somebody who does not know this ticket.

We still don't have a docstring for SchemeHomset?_projective_coordinates_ring.points() but I guess that is acceptable since there wasn't any before and it's not implemented anyway.

I'm unsure if "Reviewers" should only mention the person who clicked "positive review" or everybody who was part of the review process. Anyway, I added some authors and reviewers, I hope nobody minds.

Btw. davideklund, your name is not in the AccountNamesMappedtoRealNames? on the trac wiki start page.

comment:8 Changed 9 years ago by vbraun

I fixed this long ago in #11599 which also contains some other important additions IMHO. I think it would be more productive if somebody could review #11599.

comment:9 Changed 9 years ago by jdemeyer

  • Merged in set to sage-4.8.alpha4
  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:10 Changed 9 years ago by jdemeyer

  • Authors changed from Miguel Marco, davideklund, Frithjof Schulze to Miguel Marco, David Eklund, Frithjof Schulze
Note: See TracTickets for help on using tickets.