dgeev and dgesvd arguments and return values



Robert Dodier wrote:
> Ray,
> 
> I wonder if we can make the arguments and return values
> of dgeev and dgesvd consistent. I'll recommend the following:
> 
> dgeev(A, leftp, rightp) => [eigenvalues, if leftp then (left
> eigenvectors) else false, if rightp then (right eigenvectors) else
> false]
> dgeev(A, leftp) = dgeev(A, leftp, false)
> dgeev(A) = dgeev(A, false, false)
> 
> dgesvd(A, leftp, rightp) => [singular values, if leftp then (left
> singular vectors) else false, if rightp then (right singular vectors)
> else false)]
> dgesvd(A, leftp) = dgesvd(A, leftp, false)
> dgesvd(A) = dgesvd(A, false, false)
> 
> At present dgeev returns a list of one, two, or three elements,
> depending on whether the optional boolean flags for right and
> left eigenvectors (in that order) are turned on.

This fine with me.  I guess I was just experimenting with what I wanted 
to do.

I'll make the change shortly.  I have also been lazy with documentation 
since I was hoping someone could propose something better than the 
underlying LAPACK names.  But perhaps that's the right name.  It makes 
it easier for someone to find things, if they're already familiar with 
LAPACK.  (Harder, if you're not.  You probably couldn't figure out dgeev 
produces eigenvalues/vectors.  You could probably find dgesvd for SVD.)

Ray