#20895: Computing ordinary models of plane curves
-------------------------------------+-------------------------------------
       Reporter:  gjorgenson         |        Owner:
           Type:  enhancement        |       Status:  new
       Priority:  minor              |    Milestone:  sage-7.3
      Component:  algebraic          |   Resolution:
  geometry                           |
       Keywords:  gsoc2016           |    Merged in:
        Authors:  Grayson Jorgenson  |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/gjorgenson/ticket/20895          |  dd402019c59ce2889d22933d3167079f0faf5997
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by gjorgenson):

 Alright, I experimented with embedding into numberfields, but after doing
 some timing analysis, I found that the biggest use of time was finding
 intersection points of a given curve with the lines used to create a
 change of coordinates map to move the curve into excellent position. I
 tried revising the excellent_position and ordinary_model functions in the
 first of the last three commits to reduce the costs of these computations,
 but they still used a lot of time even for simple examples.

 In the last two commits I tried a different approach and gave the
 excellent_position function an option to accept a list/tuple of three
 points to use to create the transformation (without checks), and modified
 the ordinary model function so that it now creates lists of vertices
 incrementally without explicitly checking that they put the curve into
 excellent position and passes them to excellent_position. To verify that
 the nonordinary singularities do become resolved, I'm using that after
 every application of excellent_position + quadratic_transformation, if the
 given curve was actually put into excellent position, the resulting curve
 should either have a smaller apparent genus (arithmetic genus - sum
 m*(m-1)/2 as m runs over the curve's singular point multiplicities), or
 should have fewer nonordinary singularities. This gives an upper bound for
 the number of applications of excellent_position +
 quadratic_transformation needed to resolve the nonordinary singularities,
 and so if the nonordinary singularities are not resolved after this number
 of transformations, a new set of vertices is used.

 So far this seems to work pretty quickly for curves of degree < 5, but is
 somewhat hit-or-miss for higher degree curves. The transformed curves can
 also have high degrees when multiple transformations are needed to resolve
 all of the nonordinary singularities, and sometimes don't seem very
 practically useful. I think the code is a bit too much of a mess right now
 for this to be ready for review, but does the method of implementation
 seem okay so far? Do you think there's a way I can make the
 transformations nicer?

--
Ticket URL: <https://trac.sagemath.org/ticket/20895#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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to