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