#14219: rational preperiodic points for projective morphisms
-----------------------------------------+---------------------------------
       Reporter:  bhutz                  |        Owner:  bhutz
           Type:  enhancement            |       Status:  needs_work
       Priority:  major                  |    Milestone:  sage-5.13
      Component:  algebraic geometry     |   Resolution:
       Keywords:  dynamics, sage-days55  |    Merged in:
        Authors:  Ben Hutz               |    Reviewers:  Vincent Delecroix
Report Upstream:  N/A                    |  Work issues:
         Branch:                         |       Commit:
   Dependencies:  #14218                 |     Stopgaps:
-----------------------------------------+---------------------------------

Comment (by vdelecroix):

 To be modified in projective_morphism.py

 1) trailing whitespaces in at lines 1663, 1754, 1954, 1971, 1982, 1985,
 1992, 1998, 2085, 2106, 2158, 2169, 2221, 2257, 2273, 2317, 2352,

 2) why do you use Hom(P,P) instead of End(P) ?

 3) problem of upper case/lower case at line 1746 (Periods instead of
 periods)

 4) prefer (line 1743-1746)
 {{{
 return sorted(periods)
 }}}
 instead of
 {{{
 periods=list(periods)
 periods.sort()
 return(periods)
 }}}

 5) in method dynatomic_polynomial the argument is called period but is
 refered in the documentation as n. Moreover the specification of arguments
 are given too late. In the examples it might be good to check that the
 dynatomic polynomial actually gives you solution!
 {{{
 sage: P.<x,y> = ProjectiveSpace(QQ,1)
 sage: H = Hom(P,P)
 sage: f = H([x^2+y^2,y^2])
 sage: f.dynatomic_polynomial(2)
 x^2 + x*y + 2*y^2
 sage: K.<c> = NumberField(X^2 + X + 2, 'c')
 sage: PP = P.change_ring(K)
 sage: ff = f.change_ring(K)
 sage: p = PP((c,1))
 sage: ff(ff(p)) == p
 }}}
 Here I get troubles with coercions (this is why I defined PP and ff):
 there should be some canonical coercions as there is for polynomials (this
 will go in another ticket)
 {{{
 sage: R.<x> = PolynomialRing(QQ,'x')
 sage: K.<c> = NumberField(x^2 + 3*x + 1, 'c')
 sage: P = x^6 + 3*x + 19
 sage: P(c)
 -141*c - 36
 }}}

 6) The rational for the choice of putting methods in projective_point.py
 instead in projective_morphism.py is not at all clear to me. Why orbit,
 canonical_heights, etc methods of points and not of morphisms ?

 7) docbuild troubles
 [schemes  ] /opt/sage/local/lib/python2.7/site-
 packages/sage/schemes/projective/projective_morphism.py:docstring of
 
sage.schemes.projective.projective_morphism.SchemeMorphism_polynomial_projective_space_field.rational_periodic_points:4:
 WARNING: Inline literal start-string without end-string.
 [schemes  ] /opt/sage/local/lib/python2.7/site-
 packages/sage/schemes/projective/projective_morphism.py:docstring of
 
sage.schemes.projective.projective_morphism.SchemeMorphism_polynomial_projective_space_field.rational_periodic_points:72:
 WARNING: Inline strong start-string without end-string.
 [schemes  ] /opt/sage/local/lib/python2.7/site-
 packages/sage/schemes/projective/projective_morphism.py:docstring of
 sage.schemes.projective.projective_morphism:7: WARNING: Bullet list ends
 without a blank line; unexpected unindent.
 [schemes  ] /opt/sage/local/lib/python2.7/site-
 packages/sage/schemes/projective/projective_morphism.py:docstring of
 
sage.schemes.projective.projective_morphism.SchemeMorphism_polynomial_projective_space_field.rational_preperiodic_points:4:
 WARNING: Inline literal start-string without end-string.
 [schemes  ] /opt/sage/local/lib/python2.7/site-
 packages/sage/schemes/projective/projective_morphism.py:docstring of
 sage.schemes.projective.projective_morphism:12: WARNING: Bullet list ends
 without a blank line; unexpected unindent.

 8) I have serious trouble concerning the green function and canonical
 heights of points (I know that this was implemented in another ticket). In
 those two methods, there is no care about the fact that there are errors
 introduced by the fact that the floating points you are working with are
 with fixed precision. In particular, with floating points, the result of
 `x+y` is *not* the sum `x` + `y` but only an approximation of it. I really
 think that it should be reimplemented either using real interval fields
 (it will make it slower but at least you get a proven answer).

--
Ticket URL: <http://trac.sagemath.org/ticket/14219#comment:17>
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 http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to