#6881: Solving conics over polynomial rings.
-------------------------------------+-------------------------------------
       Reporter:  victor             |        Owner:  lackermans
           Type:  enhancement        |       Status:  positive_review
       Priority:  major              |    Milestone:  sage-6.10
      Component:  algebraic          |   Resolution:
  geometry                           |    Merged in:
       Keywords:  conic, curve,      |    Reviewers:  Marco Streng
  function field                     |  Work issues:
        Authors:  Lennart Ackermans  |       Commit:
Report Upstream:  N/A                |  ee31fca60f6045b675dde0186f84f8eb983d8bf6
         Branch:                     |     Stopgaps:
  public/conics_rational_function_field|
   Dependencies:                     |
-------------------------------------+-------------------------------------
Changes (by mstreng):

 * status:  needs_review => positive_review


Comment:

 All tests pass. Documentation looks good.

 The functions do not work perfectly in all cases due to #20003, but after
 bypassing {{{squarefree_decomposition}}}, I get:



 {{{
 sage: K.<t> = PolynomialRing(GF(7))
 sage: C = Conic([5*t^2+4, t^2+3*t+3, 6*t^2+3*t+2, 5*t^2+5, 4*t+3,
 4*t^2+t+5])
 sage: C.has_rational_point()
 True
 }}}

 and

 {{{
 sage: F = FiniteField(7)
 sage: P.<t> = F[]
 sage: K = P.fraction_field()
 sage: for i in range(50):
     c = [K.random_element() for j in range(6)]
     C = Conic(c)
     C.has_rational_point(point=True)
 ....:
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (True,
  ((2*t^8 + 5*t^7 + 6*t^6 + 5*t^5 + 4*t^4 + 5*t^2 + 3*t + 2)/(t^8 + 5*t^7 +
 5*t^6
  + 4*t^5 + 3*t^4 + 2*t^3 + t^2 + 5*t + 6) : (t^8 + 2*t^7 + t^5 + t^4 +
 2*t^3 + 2
 *t^2 + 4*t + 4)/(t^8 + 6*t^7 + t^6 + 4*t^5 + t^4 + 2*t^2 + 5*t + 3) : 1))
 (False, None)
 (False, None)
 (False, None)
 (True,
  ((2*t^8 + t^7 + 6*t^6 + 4*t^5 + 6*t^4 + 5*t^2 + 1)/(t^8 + 2*t^7 + 6*t^6 +
 3*t^5
  + 3*t^4 + 6*t^3 + 6*t^2 + 6*t) : (2*t^8 + 4*t^7 + 5*t^6 + 3*t^5 + t^4 +
 5*t + 1
 )/(t^8 + 2*t^7 + 6*t^6 + 3*t^5 + 3*t^4 + 6*t^3 + 6*t^2 + 6*t) : 1))
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (True,
  ((2*t^4 + 2*t^3 + 3*t^2)/(t^7 + t^6 + 5*t^4 + t^2 + t + 4) : (5*t^7 +
 3*t^6 + t
 ^5 + 5*t^4 + 6*t^3 + 2*t^2 + 4*t)/(t^7 + t^6 + 5*t^4 + t^2 + t + 4) : 1))
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (True,
  ((t^8 + 5*t^7 + 2*t^6 + 2*t^5 + 3*t^3 + t^2 + 3)/(t^7 + t^6 + 6*t^4 +
 5*t^3 + 6
 *t^2 + 2*t + 2) : (4*t^5 + 2*t^4 + 5*t^3 + 4*t^2 + 5*t + 2)/(t^4 + 2*t^3 +
 5*t^2
  + 4*t + 5) : 1))
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 (True,
  ((2*t^11 + 3*t^10 + 6*t^9 + t^8 + 6*t^7 + 4*t^6 + t^5 + 4*t^4 + 2*t^3 +
 3*t + 5
 )/(t^11 + 5*t^10 + 5*t^9 + t^8 + t^7 + 6*t^6 + 6*t^5 + 4*t^4 + 6*t^3 +
 4*t) : (2
 *t^9 + 4*t^8 + 4*t^7 + 6*t^6 + 5*t^5 + 5*t^4 + 4*t^3 + t^2 + 6*t +
 1)/(t^10 + 5*
 t^8 + 4*t^7 + 2*t^6 + 3*t^5 + 5*t^4 + 6*t^2 + 5*t) : 1))
 (False, None)
 (False, None)
 (False, None)
 (False, None)
 }}}

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

Reply via email to