#### D.5.4.5 rationalPointConic

Procedure from library `paraplanecurves.lib` (see paraplanecurves_lib).

Usage:
  rationalPointConic(p); p poly

Assume:
  assumes that p is an irreducible quadratic polynomial in the first three ring variables;
  ground field is expected to be Q.

Return:
  The method finds a point on the given conic. There are two possibilities:
  1) There is a rational point on the curve.
  2) There is no rational point on the curve.
  In the second case, the method creates a modification of the current basering which is a polynomial ring over some quadratic field extension Q(a) of Q. Apart from the replacement of Q by Q(a), the new polynomial ring, R say, is the same as the original basering. (In the first case, R is identical with the basering.) In both cases, the method will then define a (1x3) matrix named 'point' which lives in R and which contains the coordinates of the desired point on q.
  Finally, the method returns the ring R (which will in the 1st case be the original base ring).

Example:

    LIB "paraplanecurves.lib";
    ring R = 0, (x,y,z), dp;
    system("random", 4711);
    poly p = x^2 + 2*y^2 + 5*z^2 - 4*x*y + 3*x*z + 17*y*z;
    def S = rationalPointConic(p); // quadratic field extension,
    // minpoly = a^2 - 2
    testPointConic(p, S);
    ==> conic: x2-4xy+2y2+3xz+17yz+5z2
    ==> point: (-1/4a), (-1/4a+1/4), 0
    ==> minpoly: (a2-2)
    ==> 1
    setring R;
    p = x^2 - 1857669520 * y^2 + 86709575222179747132487270400 * z^2;
    S = rationalPointConic(p); // same as current basering,
    // no extension needed
    testPointConic(p, S);
    ==> conic: x2-1857669520y2+86709575222179747132487270400z2
    ==> point: 819398304609269135405871919690911280, 4998995645707055256041604614\
       16220, 73117135886813712113057
    ==> 1

User manual for Singular version 4-0-3, 2016, generated by texi2html.