cov_twist_alex.sa
Generated by gen_html_sa_files from ICSI. Contact gomes@icsi.berkeley.edu for details
class TWIST_ALEX_COV
class TWIST_ALEX_COV is
-- twisted Alexander polynomial for the covering.
twist_alex(tcode:TCODE, stack:REP_STACK) is
rep,repr:ARRAY{MAT_POLYS_INTI};
gens::=tcode.number_gen; rep:=#(gens+1); repr:=#(gens+1);
loop g::=1.upto!(gens); s::=stack.st[g];
mat:MAT_POLYS_INTI:=#(stack.Jn,stack.Jn); mat.clear;
loop i::=1.upto!(stack.Jn);
mat[i-1][s[i]-1]:=POLYS_INTI::one;
end;
rep[g]:=mat; repr[g]:=mat.trans;
end;
ALEXMAT_TWIST::AlexMat(tcode,rep,repr);
end;
end;
class TWIST_ALEX_SL2P
class TWIST_ALEX_SL2P is
-- twisted Alexander polynomial for the covering.
twist_alex(tcode:TCODE, stack:SL2P_STACK) is
rep,repr:ARRAY{MAT_POLYS_FP};
gens::=tcode.number_gen; rep:=#(gens+1); repr:=#(gens+1);
loop g:CARD:=1.upto!(gens); s::=stack.st[g];
mat:MAT_POLYS_FP:=#(2,2); mat.clear;
mat[0][0]:=#POLYS_FP(s.mat.m[0][0]); mat[0][1]:=#POLYS_FP(s.mat.m[0][1]);
mat[1][0]:=#POLYS_FP(s.mat.m[1][0]); mat[1][1]:=#POLYS_FP(s.mat.m[1][1]);
rep[g]:=mat;
dr::=s.mat.det.inverse;
mat:=#(2,2); mat.clear;
mat[0][0]:=#POLYS_FP(s.mat.m[1][1]*dr); mat[0][1]:=-#POLYS_FP(s.mat.m[0][1]*dr);
mat[1][0]:=-#POLYS_FP(s.mat.m[1][0]*dr); mat[1][1]:=#POLYS_FP(s.mat.m[0][0]*dr);
repr[g]:=mat;
end;
ALEXMAT_TWIST_FP::AlexMat(tcode,rep,repr);
end;
end;