# Singular          #### 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=y(5)*y(6)-y(4)*y(7) ==> J=y(4)*y(6)-y(3)*y(7) ==> J=y(2)*y(6)-y(1)*y(7) ==> J=y(4)*y(5)-y(2)*y(7) ==> J=y(3)*y(5)-y(1)*y(7) ==> J=y(1)*y(5)-y(7)^2 ==> J=y(4)^2-y(1)*y(7) ==> J=y(3)*y(4)-y(1)*y(6) ==> J=y(2)*y(4)-y(7)^2 ==> J=y(1)*y(4)-y(6)*y(7) ==> J=y(2)*y(3)-y(6)*y(7) ==> J=y(1)*y(3)-y(6)^2 ==> J=y(2)^2-y(5)*y(7) ==> J=y(1)*y(2)-y(4)*y(7) ==> J=y(1)^2-y(3)*y(7) ==> J=y(1)*y(6)^2-y(3)^2*y(7) ==> J=y(6)^4-y(3)^3*y(7) def Rc = rncItProjEven(J); PHI; ==> PHI=-y(7) ==> PHI=-y(2) ==> PHI=-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=s2 ==> PARACONIC=st ==> PARACONIC=t2 ``` 