# Singular

#### D.15.1.5 autXhat

Procedure from library `autgradalg.lib` (see autgradalg_lib).

Usage:
autXhat(RL, w0, TOR): RL is an ideal, w an intvec, TOR a list of integers

Assume:
the basering is multigraded, the elements of TOR stand for the torsion rows of the matrix getVariableWeights(), w is an ample class or the free part of such a class.

Purpose:
compute an ideal J such that V(J) in some GL(n) is isomorphic to the H-equivariant automorphisms \widehat X --> \widehat X.

Example:
 ```LIB "autgradalg.lib"; intmat Q[3][5] = 1,1,1,1,1, 1,-1,0,0,1, 1,1,1,0,0; list TOR = 2; ring R = 0,T(1..5),dp; setBaseMultigrading(Q); ideal I = T(1)*T(2) + T(3)^2 + T(4)^2; list TOR = 2; ==> // ** redefining TOR (list TOR = 2;) intvec w0 = 2,1,0; def RR = autXhat(I, w0, TOR); ==> // coefficients: QQ ==> // number of vars : 30 ==> // block 1 : ordering dp ==> // : names T(1) T(2) T(3) T(4) T(5) Y(1) Y(2) Y(3) Y(\ 4) Y(5) Y(6) Y(7) Y(8) Y(9) Y(10) Y(11) Y(12) Y(13) Y(14) Y(15) Y(16) Y(1\ 7) Y(18) Y(19) Y(20) Y(21) Y(22) Y(23) Y(24) Y(25) ==> // block 2 : ordering C ==> // ** redefining adMons ( list adMons;) ==> // ** redefining k (int k = 1;) setring RR; RES; ==> [1]: ==> [1]: ==> _[1,1]=Y(1) ==> _[1,2]=0 ==> _[1,3]=0 ==> _[1,4]=0 ==> _[1,5]=0 ==> _[2,1]=0 ==> _[2,2]=Y(7) ==> _[2,3]=0 ==> _[2,4]=0 ==> _[2,5]=0 ==> _[3,1]=0 ==> _[3,2]=0 ==> _[3,3]=Y(13) ==> _[3,4]=0 ==> _[3,5]=0 ==> _[4,1]=0 ==> _[4,2]=0 ==> _[4,3]=0 ==> _[4,4]=Y(19) ==> _[4,5]=0 ==> _[5,1]=0 ==> _[5,2]=0 ==> _[5,3]=0 ==> _[5,4]=0 ==> _[5,5]=Y(25) ==> [2]: ==> 1,0,0, ==> 0,1,0, ==> 0,0,1 ==> [3]: ==> _[1]=Y(2) ==> _[2]=Y(3) ==> _[3]=Y(4) ==> _[4]=Y(5) ==> _[5]=Y(6) ==> _[6]=Y(8) ==> _[7]=Y(9) ==> _[8]=Y(10) ==> _[9]=Y(11) ==> _[10]=Y(12) ==> _[11]=Y(14) ==> _[12]=Y(15) ==> _[13]=Y(16) ==> _[14]=Y(17) ==> _[15]=Y(18) ==> _[16]=Y(20) ==> _[17]=Y(21) ==> _[18]=Y(22) ==> _[19]=Y(23) ==> _[20]=Y(24) ==> _[21]=Y(1)*Y(7)*Y(13)*Y(19)*Y(25)*Z-1 ==> _[22]=Y(13)^2-Y(19)^2 ==> _[23]=Y(1)*Y(7)-Y(13)^2 ==> [2]: ==> [1]: ==> _[1,1]=Y(1) ==> _[1,2]=0 ==> _[1,3]=0 ==> _[1,4]=0 ==> _[1,5]=0 ==> _[2,1]=0 ==> _[2,2]=Y(7) ==> _[2,3]=0 ==> _[2,4]=0 ==> _[2,5]=0 ==> _[3,1]=0 ==> _[3,2]=0 ==> _[3,3]=0 ==> _[3,4]=Y(14) ==> _[3,5]=0 ==> _[4,1]=0 ==> _[4,2]=0 ==> _[4,3]=Y(18) ==> _[4,4]=0 ==> _[4,5]=0 ==> _[5,1]=0 ==> _[5,2]=0 ==> _[5,3]=0 ==> _[5,4]=0 ==> _[5,5]=Y(25) ==> [2]: ==> 1,0,0, ==> 0,1,0, ==> 1,1,1 ==> [3]: ==> _[1]=Y(2) ==> _[2]=Y(3) ==> _[3]=Y(4) ==> _[4]=Y(5) ==> _[5]=Y(6) ==> _[6]=Y(8) ==> _[7]=Y(9) ==> _[8]=Y(10) ==> _[9]=Y(11) ==> _[10]=Y(12) ==> _[11]=Y(13) ==> _[12]=Y(15) ==> _[13]=Y(16) ==> _[14]=Y(17) ==> _[15]=Y(19) ==> _[16]=Y(20) ==> _[17]=Y(21) ==> _[18]=Y(22) ==> _[19]=Y(23) ==> _[20]=Y(24) ==> _[21]=-Y(1)*Y(7)*Y(14)*Y(18)*Y(25)*Z-1 ==> _[22]=-Y(14)^2+Y(18)^2 ==> _[23]=Y(1)*Y(7)-Y(18)^2 kill RR, Q, R; ```