#### D.5.4.9 paraConic

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

Usage:
  paraConic(q); q poly

Assume:
  The basering must be a polynomial ring in three variables with coefficients in Q.
  The polynomial q must be homogeneous of degree 2 and absolutely irreducible.

Note:
  The procedure might fail or give a wrong output if the assumptions do not hold.

Return:
  ring with an ideal PARACONIC. The ring should be considered as the homogeneous coordinate ring of PP^1, the ideal defines a rational parametrization PP^1 --> C2 = {q=0}.

Theory:
  We compute a point on C2 via rationalPointConic. The pencil of lines through this point projects C2 birationally to PP^1. Inverting the projection gives the result.

Example:

    LIB "paraplanecurves.lib";
    ring R = 0,(x,y,z),dp;
    poly f = y^8-x^3*(z+x)^5;
    ideal adj = adjointIdeal(f);
    def Rn = invertBirMap(adj,ideal(f));
    ==> // 'invertBirMap' created a ring together with two ideals J and psi.
    ==> // Supposing you typed, say,  def RPn = invertBirMap(phi,I);
    ==> // you may access the ideals by typing
    ==> //      setring RPn; J; psi;
    setring(Rn);
    J;
    ==> J[1]=y(5)*y(6)-y(4)*y(7)
    ==> J[2]=y(4)*y(6)-y(3)*y(7)
    ==> J[3]=y(2)*y(6)-y(1)*y(7)
    ==> J[4]=y(4)*y(5)-y(2)*y(7)
    ==> J[5]=y(3)*y(5)-y(1)*y(7)
    ==> J[6]=y(1)*y(5)-y(7)^2
    ==> J[7]=y(4)^2-y(1)*y(7)
    ==> J[8]=y(3)*y(4)-y(1)*y(6)
    ==> J[9]=y(2)*y(4)-y(7)^2
    ==> J[10]=y(1)*y(4)-y(6)*y(7)
    ==> J[11]=y(2)*y(3)-y(6)*y(7)
    ==> J[12]=y(1)*y(3)-y(6)^2
    ==> J[13]=y(2)^2-y(5)*y(7)
    ==> J[14]=y(1)*y(2)-y(4)*y(7)
    ==> J[15]=y(1)^2-y(3)*y(7)
    ==> J[16]=y(1)*y(6)^2-y(3)^2*y(7)
    ==> J[17]=y(6)^4-y(3)^3*y(7)
    def Rc = rncItProjEven(J);
    PHI;
    ==> PHI[1]=-y(7)
    ==> PHI[2]=-y(2)
    ==> PHI[3]=-y(5)
    setring Rc;
    CONIC;
    ==> y(2)^2-y(1)*y(3)
    def RPc = paraConic(CONIC);
    ==> // 'paraConic' created a ring together with an ideal RNC.
    ==> // Supposing you typed, say,  def RP1 = paraConic(q);
    ==> // you may access the ideal by typing
    ==> //      setring RP1; PARACONIC;
    setring RPc;
    PARACONIC;
    ==> PARACONIC[1]=s2
    ==> PARACONIC[2]=st
    ==> PARACONIC[3]=t2

See also: rationalPointConic.

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