Re: pseudoinverse

"Michael A. Koerber" <[email protected]> Fri, 22 Nov 2002 16:53:33 -0500
Newsgroups gmane.lisp.matlisp.user
Message-ID <[email protected]>
Tunc,


> Can you say something about the difference between
> your approach (using SVD) and the LAPACK routines called
> DGELS and DGELSD. Numerical stability?

DGELS will handle only full rank A, DGELSD will solve multiple
right hand sides of Ax = [b1 | b2 | ... ] (each bi a column vector).
An entity called PINV is not returned.  If PINV is not required,
then DGELSD might be a better choice.

> Your question on MACH pinpoints a fundamental issue in Matlisp.
> Almost all (if not all) Matlisp routines use the underlying
> fortran implementation to do the work.  Unless anything has
> changed, the MACH is the one that fortran would use by default.
> If this is not sufficient, or you need explicit access to this
> number, we need to do some extra work (most likely in the
> config file for matlisp). 

I haven't studied this enough yet, but it appears that D1MACH.LISP is
used via F2CL to provide MACH information to the FORTRAN routines in,
e.g., TOMS.  D1MACH draws its information from the CL implimentation
limits.  I don't know that this is the same as that produced by
underlying FORTRAN compiler's treatement of D1MACH.F.  Unless it
is the same, the numerically accuracy of the routines that rely
on it could be impacted.  This is just a concern on my part, not 
something that I have even looked at yet.  Perhaps you or Ray can
comment.

mike