Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: matdetint Section: linear_algebra C-Name: detint Prototype: G Help: matdetint(B): some multiple of the determinant of the lattice generated by the columns of B (0 if not of maximal rank). Useful with mathnfmod. Doc: Let $B$ be an $m\times n$ matrix with integer coefficients. The \emph{determinant} $D$ of the lattice generated by the columns of $B$ is the square root of $\det(B^T B)$ if $B$ has maximal rank $m$, and $0$ otherwise. This function uses the Gauss-Bareiss algorithm to compute a positive \emph{multiple} of $D$. When $B$ is square, the function actually returns $D = |\det B|$. This function is useful in conjunction with \kbd{mathnfmod}, which needs to know such a multiple. If the rank is maximal but the matrix is nonsquare, you can obtain $D$ exactly using \bprog matdet( mathnfmod(B, matdetint(B)) ) @eprog\noindent Note that as soon as one of the dimensions gets large ($m$ or $n$ is larger than 20, say), it will often be much faster to use \kbd{mathnf(B, 1)} or \kbd{mathnf(B, 4)} directly.