[back] [prev] [next] [index] [root]
ModuleDet
Returns the determinant of the given module.
Syntax:
det := ModuleDet(M)
See also: ModuleModul
Description:
If the module is represented by a square pseudomatrix,
the product of the coefficient ideals multiplied
by the determinant of the matrix is computed.
Otherwise there are more columns than rows in the representation.
In this case the gcd of the determinants of all n-subpseudomatrices
of the pseudomatrix is computed. For further information have
a look at Hop1.
If there are many more columns than rows it would be impractiacal to
compute all determinants (because there are exponentially
many of them) so this function considers just a few (set
PRINTLEVEL(ORDER_MODULE_DET,1) to see how many)
determinants and gets a reasonable multiple of the
degree minor gcd.
Example:
kash> O := OrderMaximal(Poly(Zx,[1, 5, -6, -53, 3, 206, 244]));;
kash> Ids:=[ Ideal(5, Elt(O,[-27, 1, -2, 1, -3, 15])),
> Ideal(1, Elt(O,[-18, 0, -3, 3, -1, 0]/5)) ];
[ <5, [-27, 1, -2, 1, -3, 15]>, <1, [-18, 0, -3, 3, -1, 0] / 5> ]
kash> M := Module(Ids,Mat(O,[[1,2],[2,1]])/15);
{<5, [-27, 1, -2, 1, -3, 15]><1, [-18, 0, -3, 3, -1, 0] / 5>
[1 / 15 2 / 15]
[2 / 15 1 / 15]
}
kash> ModuleDet(M);
> <
[-5 0 0 -1 -4 0]
[ 0 -5 0 -1 -4 0]
[ 0 0 -5 -2 -1 0]
[ 0 0 0 -1 0 0]
[ 0 0 0 0 -1 0]
[ 0 0 0 0 0 -5]
/375>
<- back[back] [prev] [next] [index] [root]