Subject: dgeev and dgesvd arguments and return values
From: Raymond Toy (RT/EUS)
Date: Mon, 22 Oct 2007 09:02:32 -0400
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