Yes, determinant ignores matrix_element_* currently.
I have added a little code in CVS to handle this case. It only works when
ratmx=false and sparse=false. I am also including the code below. I would
appreciate it if you could exercise this code to make sure it works
properly.
-s
(defun compumd (id row)
(prog (e minor i d sign ans)
(setq ans 0 sign -1 i id)
loop (when (null i) (return ans))
(setq d (car i) i (cdr i) sign (* -1 sign))
(cond ((equal (setq e (ith row d)) 0)
(go loop))
((equal (setq minor (assoo (delete d (copy-tree id) :test
#'equal) mdl)) 0)
(go loop)))
(setq ans
(if (and (eq $matrix_element_mult '|&*|)
(eq $matrix_element_add '|&+|))
(add ans (mul sign e minor)) ;fast common case
(mapply $matrix_element_add
(list ans
(mapply $matrix_element_mult
(list sign e minor)
$matrix_element_mult))
$matrix_element_add)))
(go loop)))