determinant slightly buggy



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)))