4.3BSD/usr/contrib/apl/lib/fn/det

z { det a ; l;n;i;j
 n { (Ra)[1]
 i { 0
 z { 1
l1: } (n= i{ i+1)/ fin
 w { |(i-1)Ua[;i]
 j { (i-1)+wIS/w
 }(i=j) /skip
 a[i,j;]{a[j,i;]
 z { -z
skip: } (0=z { zX a[i;i]) / 0
 l { ((iR0),iUa[;i])%a[i;i]
 a { a-lJ.Xa[i;]
 }l1
fin: z { zXa[n;n]