Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add is_polynomial and normal_form to projective morphism #20650

Closed
sagetrac-rlmiller mannequin opened this issue May 21, 2016 · 20 comments
Closed

Add is_polynomial and normal_form to projective morphism #20650

sagetrac-rlmiller mannequin opened this issue May 21, 2016 · 20 comments

Comments

@sagetrac-rlmiller
Copy link
Mannequin

sagetrac-rlmiller mannequin commented May 21, 2016

Added function to determine whether an equation is a polynomial or not by checking if it has a totally ramified fixed point. (is_polynomial)

Then used this function to create make_look_poly, which puts polynomials in the form "xn + a*x(n-2) +...+c", where a and c are constants.

Needs more examples, specifically for errors.

CC: @bhutz

Component: algebraic geometry

Author: Rebecca Lauren Miller, Ben Hutz

Branch/Commit: 2da7679

Reviewer: Ben Hutz, Rebecca Lauren Miller

Issue created by migration from https://trac.sagemath.org/ticket/20650

@sagetrac-rlmiller sagetrac-rlmiller mannequin added this to the sage-7.3 milestone May 21, 2016
@sagetrac-rlmiller
Copy link
Mannequin Author

sagetrac-rlmiller mannequin commented May 21, 2016

Branch: u/rlmiller/polynomials

@sagetrac-rlmiller
Copy link
Mannequin Author

sagetrac-rlmiller mannequin commented May 21, 2016

Commit: 753f9ad

@sagetrac-rlmiller
Copy link
Mannequin Author

sagetrac-rlmiller mannequin commented May 21, 2016

New commits:

753f9ad20650 Created is_polynomial and make_look_poly functionc

@sagetrac-rlmiller sagetrac-rlmiller mannequin self-assigned this May 21, 2016
@bhutz
Copy link

bhutz commented May 22, 2016

comment:5
  • The documentation does not build
[schemes  ] /home/ben/sage/sage-test/local/lib/python2.7/site-packages/sage/schemes/projective/projective_morphism.py:docstring of sage.schemes.projective.projective_morphism.SchemeMorphism_polynomial_projective_space_finite_field.make_look_poly:13: ERROR: Unexpected indentation.
Error building the documentation.
  • Totally Rmified Fixed Point does not need initial caps.

  • "xn + a*x(n-2) +...+c" should not be "

  • the examples sage:: should only have one :.

  • the doc tests pass, but only because the examples with :: are not being run.

  • formatting of the code needs some attention, such as spaces around =

  • these two functions were added to the finite field section of polynomial morphism. Should they work over other rings/fields as well?

  • make_look_poly could use a better name. How about 'normal_form'? Since it has only one keyword, you should use the keyword instead of the dict kwds

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 27, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

c19032f20650 fixed documentaion

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 27, 2016

Changed commit from 753f9ad to c19032f

@bhutz
Copy link

bhutz commented May 27, 2016

Changed branch from u/rlmiller/polynomials to u/bhutz/polynomials

@bhutz
Copy link

bhutz commented May 27, 2016

comment:9

I did some code clean-up. No functionality was changed except that instead of having to compute the inverses of the conjugation it now just computes the right one to start with.

There are still a few functionality issues: Other base rings that should work do not such as QQ

P.<x,y>=ProjectiveSpace(QQ,1)
H=End(P)
f=H([x^2+y^2,y^2])
f.is_polynomial()

I think it likely these will work for finite fields as well

P.<x,y>=ProjectiveSpace(GF(13),1)
H=End(P)
f=H([x^2+y^2,y^2])
f.is_polynomial()

Function field base rings are not going to work, but this error isn't very informative

R.<c>=PolynomialRing(QQ)
P.<x,y>=ProjectiveSpace(FractionField(R),1)
H=End(P)
f=H([x^2+c*y^2,y^2])
f.is_polynomial()
R.<c>=FunctionField(QQ)
P.<x,y>=ProjectiveSpace(R,1)
H=End(P)
f=H([x^2+c*y^2,y^2])
f.is_polynomial()

The single rational preimage check is not sufficient

K.<w>=QuadraticField(4/27)
P.<x,y>=ProjectiveSpace(K,1)
H=End(P)
S=P.coordinate_ring()
f=H([x^3+w*y^3,x*y^2])
f.is_polynomial()

New commits:

530a58520650: code clean up

@bhutz
Copy link

bhutz commented May 27, 2016

Changed commit from c19032f to 530a585

@bhutz
Copy link

bhutz commented May 27, 2016

Reviewer: Ben Hutz

@bhutz
Copy link

bhutz commented May 27, 2016

comment:10

One more thing: in dimension > 1 it should return a NotImplmentedError

@sagetrac-rlmiller
Copy link
Mannequin Author

sagetrac-rlmiller mannequin commented May 27, 2016

Changed branch from u/bhutz/polynomials to u/rlmiller/polynomials

@sagetrac-rlmiller
Copy link
Mannequin Author

sagetrac-rlmiller mannequin commented May 27, 2016

Changed commit from 530a585 to f913bde

@sagetrac-rlmiller
Copy link
Mannequin Author

sagetrac-rlmiller mannequin commented May 27, 2016

New commits:

f913bde20650 Fixed errors with finite field and QQ

@bhutz
Copy link

bhutz commented Jun 1, 2016

Changed branch from u/rlmiller/polynomials to u/bhutz/polynomials

@bhutz
Copy link

bhutz commented Jun 1, 2016

comment:14

Going all the way to the splitting field was causing some slow performance, so I've reworked it to manage the fields directly. This includes special casing finite fields and managing the embeddings as well.

it should be noted that a simple error in projective_morphism.conjugation() was corrected in this ticket as well as a simple error in affine_morphism.homogenize()

The new version is ready for review now.


New commits:

2da767920650: rework functions for speed, finite fields

@bhutz
Copy link

bhutz commented Jun 1, 2016

Changed author from Rebecca Lauren Miller to Rebecca Lauren Miller, Ben Hutz

@bhutz
Copy link

bhutz commented Jun 1, 2016

Changed commit from f913bde to 2da7679

@bhutz bhutz changed the title Add is_polynomial and make_look_poly to projective morphism Add is_polynomial and normal_form to projective morphism Jun 1, 2016
@sagetrac-rlmiller
Copy link
Mannequin Author

sagetrac-rlmiller mannequin commented Jun 7, 2016

Changed reviewer from Ben Hutz to Ben Hutz, Rebecca Lauren Miller

@vbraun
Copy link
Member

vbraun commented Jun 8, 2016

Changed branch from u/bhutz/polynomials to 2da7679

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants