#4990: [with patch, with positive review] Add code to compute Hilbert class
polynomials
--------------------------------------+-------------------------------------
 Reporter:  mabshoff                  |        Owner:  AlexGhitza
     Type:  enhancement               |       Status:  closed    
 Priority:  major                     |    Milestone:  sage-3.4.1
Component:  number theory             |   Resolution:  fixed     
 Keywords:  hilbert class polynomial  |  
--------------------------------------+-------------------------------------

Comment(by cremona):

 Posted to sage-nt 2009-04-20:

 Ticket #4990 implemented a hilbert_class_polynomial() method for
 imaginary quadratic fields.  It is actually a function of the field's
 discriminant, i.e. of a fundamental (negative) discriminant.  It was
 written by      Eduardo Ocampo Alvarez and  Andrey Timofeev  from
 Essen and is in sage/rings/number_field/number_field.py.

 We also have a function in sage/schemes/elliptic_curves/cm.py called
 hilbert_class_polynomial(D), which uses Magma to find more general
 H.C.polys (D is any negative integer congruent to 0,1 mod 4).

 For fundamental discriminants D, these give the same answer, i.e.
 QuadraticField(D,'a').hilbert_class_polynomial() ==
 hilbert_class_polynomial(D).

 Question 1: does the code at #4990 (now merged actually work for
 non-fundamental discriminants?  Someone might know;  testing it would
 need a bit of coding, and I haven't done so.

 Assuming that the answer is "yes",

 Question 2: should we re-write the stand-alone function which takes as
 its argument any negative discriminant (not necessarily fundamental)
 and returns the appropriate H.C.poly, using the code now in
 number_field.py instead of calling Magma;  and then change the current
 method in number_field.py to just call that?  If so, where should the
 stand-alone function go:  (a) where it now is, in
 sage/schemes/elliptic_curves/cm.py, (b) in
 sage/rings/number_field/somewhere, (c) somewhere else ?  We could then
 also make the H.C.poly a function of (possibly non-maximal) orders in
 (imaginary quadratic) number fields.

 John

 PS I found this out while converting cm.py to ReST for inclusion in
 the manual.  Isn't it amazing what you find!

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/4990#comment:10>
Sage <http://sagemath.org/>
Sage - Open Source Mathematical Software: Building the Car Instead of 
Reinventing the Wheel

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to