#19001: Conic diagonalization fails on some base fields
----------------------------------+-----------------------
   Reporter:  lackermans          |            Owner:
       Type:  enhancement         |           Status:  new
   Priority:  minor               |        Milestone:
  Component:  algebraic geometry  |         Keywords:
  Merged in:                      |          Authors:
  Reviewers:                      |  Report Upstream:  N/A
Work issues:                      |           Branch:
     Commit:                      |     Dependencies:
   Stopgaps:                      |
----------------------------------+-----------------------
 The function
 `sage.schemes.plane_conics.con_field.ProjectiveConic_field.hom()` with
 codomain argument `Y` given fails on base fields for which sage doesn't
 know how to simplify fractions of polynomials. Consequently
 `diagonalization()` fails for cases that I need to implement #6881.

 My current workaround is to, in case of characteristic 0, convert the
 fraction `q` to a symbolic expression and back. I'm not sure if this is
 mathematically okay, and this still leaves infinite fields of positive
 characteristic.

 But is it really necessary for `diagonalization()` to check if the found
 matrix transformation gives the required morphism?

 '''Example:'''

 {{{
 #!python
 sage: K = FractionField(PolynomialRing(QQ, 't')); (t,) = K.gens(); C =
 Conic(K, [1/2,0, 1, 2, 0, 3])
 sage: C.diagonalization()
 ---------------------------------------------------------------------------
 ValueError                                Traceback (most recent call
 last)
 <ipython-input-2-c3844e29eb5c> in <module>()
 ----> 1 C.diagonalization()

 /home/lennart/sage-build/sage-6.7/local/lib/python2.7/site-
 packages/sage/schemes/plane_conics/con_field.pyc in diagonalization(self,
 names)
     339         D, T = self.diagonal_matrix()
     340         con = Conic(D, names = names)
 --> 341         return con, con.hom(T, self), self.hom(T.inverse(), con)
     342
     343     def gens(self):

 /home/lennart/sage-build/sage-6.7/local/lib/python2.7/site-
 packages/sage/schemes/plane_conics/con_field.pyc in hom(self, x, Y)
     656                     raise ValueError("The matrix x (= %s) does not
 define a " \
     657                                       "map from self (= %s) to Y
 (= %s)" % \
 --> 658                                       (x, self, Y))
     659             x = Sequence(x*vector(self.ambient_space().gens()))
     660             return self.Hom(Y)(x, check = False)

 ValueError: The matrix x (= [ 1  0 -1]
 [ 0  1  0]
 [ 0  0  1]) does not define a map from self (= Projective Conic Curve over
 Fraction Field of Univariate Polynomial Ring in t over Rational Field
 defined by 1/2*x^2 + 2*y^2 + 5/2*z^2) to Y (= Projective C
 onic Curve over Fraction Field of Univariate Polynomial Ring in t over
 Rational Field defined by 1/2*x^2 + 2*y^2 + x*z + 3*z^2)
 }}}

--
Ticket URL: <http://trac.sagemath.org/ticket/19001>
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/d/optout.

Reply via email to