#11930: function to check if hyperelliptic curve is singular in the sense of
hyperelliptic curves
--------------------------------------------------------------------------------------------+
   Reporter:  dkrenn                                                            
            |          Owner:  cremona                                  
       Type:  enhancement                                                       
            |         Status:  needs_work                               
   Priority:  minor                                                             
            |      Milestone:  sage-4.8                                 
  Component:  elliptic curves                                                   
            |       Keywords:  hyperelliptic curve, singular, sd35      
Work_issues:  add singular examples to the documentation of the constructor, do 
some tests  |       Upstream:  N/A                                      
   Reviewer:  Marco Streng, Damiano Testa                                       
            |         Author:  Daniel Krenn, Marco Streng, Damiano Testa
     Merged:                                                                    
            |   Dependencies:                                           
--------------------------------------------------------------------------------------------+
Changes (by newvalueoldvalue):

  * work_issues:  => add singular examples to the documentation of the
                  constructor, do some tests
  * author:  Daniel Krenn => Daniel Krenn, Marco Streng, Damiano Testa


Old description:

> We have
> {{{
> sage: R.<x> = PolynomialRing(GF(3))
> sage: H=HyperellipticCurve(x^5+1)
> sage: H.is_singular()
> True
> }}}
> but `H` is a non-singular hyperelliptic curve. Although this is '''not'''
> an error, since all hyperelliptic curves, where the degree of the
> defining polynomial is at least 5, have a singularity at infinity.
>
> The term non-singular hyperelliptic curve is used to say that all finite
> points are non-singular. Therefore it would be nice to have a function
> that returns the (non-)singularity of the finite points of an
> hyperelliptic curve.

New description:

 We have
 {{{
 sage: R.<x> = PolynomialRing(GF(3))
 sage: H=HyperellipticCurve(x^5+1)
 sage: H.is_singular()
 True
 }}}
 but `H` is a non-singular hyperelliptic curve.

 Hyperelliptic curves are smooth curves mathematically. In Sage, they are
 implemented as plane curves with a singularity at infinity, but that
 singularity can always be resolved.

 Apply

  * [attachment:11930_singular_hyperelliptic.patch]
  * [attachment:11930_is_singular.patch]

--

Comment:

 Apply 11930_singular_hyperelliptic.patch and 11930_is_singular.patch

 The first of these patches (written by Damiano and I) adds tests to the
 HyperellipticCurve constructor. It tests whether the input polynomials
 f(x) and h(x) really make sense. In other words, it checks if there is
 some g such that, when f and h are homogenized wrt x to degrees 2g+2 and
 g+1 respectively, one gets a smooth projective curve. We compared it with
 the independent implementation in Magma, and the test turns out to be
 equivalent to Magma's test for all input polynomials over GF(2) and GF(3)
 where deg(f) is 5 or 6 and deg(h) <= 3.

 The second patch is Daniel's function, but with a simpler algorithm that
 uses the fact that only smooth curves are constructed.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11930#comment:8>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
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