Opened 4 years ago
Closed 4 years ago
#18281 closed enhancement (fixed)
implement critical point functionality including is_pcf for projective morphisms
Reported by:  bhutz  Owned by:  bhutz 

Priority:  major  Milestone:  sage6.8 
Component:  algebraic geometry  Keywords:  
Cc:  Merged in:  
Authors:  Ben Hutz  Reviewers:  Grayson Jorgenson 
Report Upstream:  N/A  Work issues:  
Branch:  f904d5d (Commits)  Commit:  f904d5df326f0874a531b288d5303a285442e5e1 
Dependencies:  Stopgaps: 
Description
Implement computing the critical point locus for a morphism of projective space and checking if that morphism is postcritically finite (all critical points are preperiodic). We can also construction to critical point portrait.
Change History (10)
comment:1 Changed 4 years ago by
 Branch set to u/bhutz/ticket/18281
 Created changed from 04/22/15 15:30:20 to 04/22/15 15:30:20
 Modified changed from 04/22/15 15:30:20 to 04/22/15 15:30:20
comment:2 Changed 4 years ago by
 Commit set to 83242df1ca8b49344cc0cbc58c4b197d36a2c41b
 Status changed from new to needs_review
comment:3 Changed 4 years ago by
 Reviewers set to Grayson Jorgenson
 Status changed from needs_review to needs_work
change_ring (for both SchemeMorphism_polynomial and SchemeMorphism_point):
 Before creating an embedding into QQbar, need check that the map is defined over a number field, change_ring breaks otherwise:
P.<x,y> = ProjectiveSpace(ZZ,1) H = End(P) f = H([3*x^2,y^2]) f.change_ring(QQbar)
 There is also an issue when trying to change_ring from QQbar to QQbar:
P.<x,y> = ProjectiveSpace(QQbar,1) H = End(P) f = H([3*x^2,y^2]) f.change_ring(QQbar)
_preperiodic_points_to_cyclegraph:
 maybe add more comments explaining how equal points with different representations are dealt with
wronskian_ideal:
 in line 2497, change format of NotImplementedError? to the standard format
 change "== false" checks to "not" for faster performance
critical_points:
 rational_points should return a list, so the list conversion in the return statement is not needed
is_postcritically_finite
 remove extra lines in documentation, lines 2560 and 2595
 subscheme check not needed since the check is present in critical_points
 perhaps restrict to only maps defined over number fields
critical_point_portrait:
 copying crit_points list not needed, instead could loop over crit_points by index, stopping when the index is the original length of the crit_points list
 subscheme and endomorphism checks not needed since they are present in critical_points
critical_height:
 maybe include a note that the keywords are optional
 subscheme and endomorphism checks are already done in critical_points
comment:4 Changed 4 years ago by
 Commit changed from 83242df1ca8b49344cc0cbc58c4b197d36a2c41b to 5a9f9356ef6459e8a42d2f0bbdb39961d81da980
Branch pushed to git repo; I updated commit sha1. New commits:
5a9f935  18281: changes from review

comment:5 Changed 4 years ago by
 Status changed from needs_work to needs_review
I made the changes. I changed the descriptions of the kwds for heights in a number of places.
I also decided that critical heights over number field orders was ok and moved the function to the 'rings' section.
comment:6 Changed 4 years ago by
I tested is_postcritically_finite
and critical_point_portrait
on examples of pcf maps.
Everything looks good, but there is one instance of whitespace in line 2184 of projective_morphism
comment:7 Changed 4 years ago by
 Commit changed from 5a9f9356ef6459e8a42d2f0bbdb39961d81da980 to f904d5df326f0874a531b288d5303a285442e5e1
Branch pushed to git repo; I updated commit sha1. New commits:
f904d5d  18281 removing trailing white space

comment:8 Changed 4 years ago by
 Milestone changed from sage6.7 to sage6.8
comment:9 Changed 4 years ago by
 Status changed from needs_review to positive_review
comment:10 Changed 4 years ago by
 Branch changed from u/bhutz/ticket/18281 to f904d5df326f0874a531b288d5303a285442e5e1
 Resolution set to fixed
 Status changed from positive_review to closed
New commits:
18281: critical point functionality for projective morphisms