# detComplex -- This function calculates the determinant of a graded ChainComplex with respect to a subset of the variables of the polynomial ring in a fixed degree.

## Synopsis

• Usage:
deteriminantComplex = detComplex(d,v,C)
• Inputs:
• c, an integer, integer corresponding to the degree of the strand of the chain complex.
• v, a list, list of variables of the polynomial ring R to take into account for elimination
• C, , a chain complex of free modules over a polynomial ring
• Optional inputs:
• Strategy => ..., default value null, choose between Exact and Numeric algorithms
• Outputs:
• aPolynomialList, a list, an element in frac(R) that is the alternate product of the elements in the list 'listDetComplex'

## Description

This function calculates the determinant of a graded ChainComplex with respect to a subset of the variables of the polynomial ring in a fixed degree. It corresponds to the alternate product of the elements in the list listDetComplex

The input ChainComplex needs to be an exact complex of free modules over a polynomial ring. The polynomial ring must contain the list v as variables.

It is recommended not to defines rings as R=QQ[x,y][a,b,c] when the variables to eliminate are '{x,y}'. In this case, see flattenRing for passing from $R=QQ[x,y][a,b,c]$ to QQ[x,y,a,b,c].

 i1 : R=QQ[a,b,c,x,y] o1 = R o1 : PolynomialRing i2 : f1 = a*x^2+b*x*y+c*y^2 2 2 o2 = a*x + b*x*y + c*y o2 : R i3 : f2 = 2*a*x+b*y o3 = 2a*x + b*y o3 : R i4 : M = matrix{{f1,f2}} o4 = | ax2+bxy+cy2 2ax+by | 1 2 o4 : Matrix R <--- R i5 : l = {x,y} o5 = {x, y} o5 : List i6 : dHPM = detComplex (2,l,koszul M) 2 2 o6 = - a*b + 4a c o6 : frac R i7 : dHPM = detComplex (3,l,koszul M) 2 2 o7 = - a*b + 4a c o7 : frac R
 i8 : R=QQ[a,b,c,d,e,f,g,h,i,x,y,z] o8 = R o8 : PolynomialRing i9 : f1 = a*x+b*y+c*z o9 = a*x + b*y + c*z o9 : R i10 : f2 = d*x+e*y+f*z o10 = d*x + e*y + f*z o10 : R i11 : f3 = g*x+h*y+i*z o11 = g*x + h*y + i*z o11 : R i12 : M = matrix{{f1,f2,f3}} o12 = | ax+by+cz dx+ey+fz gx+hy+iz | 1 3 o12 : Matrix R <--- R i13 : l = {x,y,z} o13 = {x, y, z} o13 : List i14 : dHPM = detComplex (1,l,koszul M) o14 = - c*e*g + b*f*g + c*d*h - a*f*h - b*d*i + a*e*i o14 : frac R i15 : dHPM = detComplex (2,l,koszul M) o15 = - c*e*g + b*f*g + c*d*h - a*f*h - b*d*i + a*e*i o15 : frac R i16 : dHPM = detComplex (1,l,koszul M, Strategy => Exact) o16 = - c*e*g + b*f*g + c*d*h - a*f*h - b*d*i + a*e*i o16 : frac R i17 : dHPM = detComplex (1,l,koszul M, Strategy => Numeric) o17 = - c*e*g + b*f*g + c*d*h - a*f*h - b*d*i + a*e*i o17 : frac R