# Singular

#### D.5.4.4 rncAntiCanonicalMap

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

Usage:
rncAntiCanonicalMap(I); I ideal

Assume:
I is a homogeneous ideal in the basering
defining a rational normal curve C in PP^n.

Note:
The procedure will fail or give a wrong output if I is not the ideal of a rational normal curve.

Return:
ideal defining the anticanonical map C --> PP^(n-2).
Note that the entries of the ideal should be considered as representatives of elements in R/I, where R is the basering.

Theory:
The anti-canonical map of a rational normal curve
maps C isomorpically to a rational normal curve in PP^(n-2).

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 = mapToRatNormCurve(f,adj); ==> //'mapToRatNorm' created a ring together with an ideal RNC. ==> // Supposing you typed, say, def RPn = mapToRatNorm(f,AI); ==> // you may access the ideal by typing ==> // setring RPn; RNC; setring(Rn); RNC; ==> RNC[1]=y(5)*y(6)-y(4)*y(7) ==> RNC[2]=y(4)*y(6)-y(3)*y(7) ==> RNC[3]=y(2)*y(6)-y(1)*y(7) ==> RNC[4]=y(4)*y(5)-y(2)*y(7) ==> RNC[5]=y(3)*y(5)-y(1)*y(7) ==> RNC[6]=y(1)*y(5)-y(7)^2 ==> RNC[7]=y(4)^2-y(1)*y(7) ==> RNC[8]=y(3)*y(4)-y(1)*y(6) ==> RNC[9]=y(2)*y(4)-y(1)*y(5) ==> RNC[10]=y(1)*y(4)-y(6)*y(7) ==> RNC[11]=y(2)*y(3)-y(6)*y(7) ==> RNC[12]=y(1)*y(3)-y(6)^2 ==> RNC[13]=y(2)^2-y(5)*y(7) ==> RNC[14]=y(1)*y(2)-y(4)*y(7) ==> RNC[15]=y(1)^2-y(3)*y(7) ==> RNC[16]=y(1)*y(6)^2-y(3)^2*y(7) ==> RNC[17]=y(6)^4-y(3)^3*y(7) rncAntiCanonicalMap(RNC); ==> _[1]=y(1) ==> _[2]=-y(2) ==> _[3]=-y(5) ==> _[4]=-y(4) ==> _[5]=-y(7) ```