DET is not cheap. If the point of your computation is to solve a linear system, why not use SOLVE or INV? You're planning to abort if the matrix is nonsingular, anyway, so just try to solve the system. For a difference between SOLVE and INV, see p. 50-51 of Statistical Programming with SAS/IML Software, which is available as a free download at http://support.sas.com/publishing/authors/wicklin.html (Also, Ch 15 discusses performance considerations between the two functions.) Your code, as written, probably won't detect most matrices that are numerically singluar. For example, if DET returns 1E-100, your code won't set the error condition. Rick Wicklin SAS/IML Blog: http://blogs.sas.com/iml
... View more