id summary reporter owner description type status priority milestone component resolution keywords cc merged author reviewer upstream work_issues branch commit dependencies stopgaps
14217 basic iteration functionality for affine and projective morphisms bhutz bhutz "This patch implements most of the initial dynamics functionality problems proposed at the 2012 ICERM semester in Complex and Arithmetic dynamics. There are two more patches (not yet open) that follow this one that will complete this functionality.
Building on #13130
* finishes dividing affine/projective points/polynomial morphisms into ring/field/finite_field classes.
* implements the following functions
Affine_space:
* dimension : returns the dimension of the space
* change_ring: changes the base ring of the space
Affine_polynomial_morphism
* homogenize: using the embedding An into Pn
* dynatomic_polynomial: related to preperoidic points, see function description for details
* nth_iterate: determine the nth iterate of the point
* nth_iterate_map: determine nth iterate of the map
* orbit: determine a list of points in the orbit of P by f
for finite fields
* cyclegraph: the Digraph of orbits over the finite field
Affine point morphism: finite fields
* _hash_ : hash value of the point
* orbit_structure: determine the period and preperiod of P by f
Projective space:
* change_ring: change the base ring of the projective space
* base_ring: return the base_ring of the projective space
* coordinate_ring: return the coordinate ring of the projective space
Projective_polynomial:
* change_ring: change the base ring of the morphism
* base_ring: return the base_ring of the morphism
* dynatomic_polynomial: related to preperoidic points, see function description for details
* nth_iterate: determine the nth iterate of the point
* nth_iterate_map: determine the map
* orbit: determine a list of points in the orbit of P by f
* degree: return the degree of the morphism
* dehomogenize: dehomogenize to the appropriate affine space
* is_morphism: determine the coordinate functions of f have any common zeros
* resultant: for maps on P1, determines the resultant of f[0],f[1]
* primes_of_bad_reduction: determines primes of bad reduction
* conjugate: determine the conjugate morphism by the given matrix
for finite fields
* orbit_structure: determine the period and preperiod of P by f
* cyclegraph: the Digraph of orbits over the finite field
projective point morphism
* dehomogenize: dehomogenize the point to the appropriate affine space
* normalize_coordinates: clear any common factors of coordinates
* clear_denominators: scale so that each coordinate is in the ring (of the base_ring)
for finite fields
* _hash_: determine the hash value of a point
Functions that take both maps and points as input are callable in member functions of either class, but duplicated in the lists above
Restructured the schemes directories to have an affine and a projective directory. Moved the appropriate code into those directories from {{{generic.morphism.py, generic.affine_space.py, generic.projective_space.py, generic.homset.py, generic.rational_point.py}}}. The morphism code was also divided into separate files for points and maps. This required changes to the documentation structure as well.
Apply:
* [attachment:trac_14217_base_functionality.patch]" enhancement closed major sage-5.10 algebraic geometry fixed iteration, dynamics, projective, affine sage-5.10.beta3 Ben Hutz Adam Towsley N/A #13130