[SciPy-dev] newscipy, band matrix routines
nwagner at mecha.uni-stuttgart.de
Wed Nov 9 04:36:41 CST 2005
Arnd Baecker wrote:
>a while ago I created f2py wrappers for
>which deal with eigenvalue/vector computation,
>LU decomposition, ... for band matrices.
>The present version of this, including examples/tests and
>a little bit of documentation is at
>I would like to get this into newscipy but we need some assistance:
>- should the wrappers be added to generic_flapack.pyf ?
> (+adding the new functions to setup_linalg.py so that the
> corresponding single precision wrappers can be skipped)
>- Are the only scipy specific tricks the use of
> <tchar=s,d,c,z> and <type_in>
> to support the different types?
>- For testing/development purpuses, is there
> a way to put this into a separate sandbox
> or is it just easier to use all the tools which
> are provided by Lib/linalg/?
>- it would be great if an expert (Pearu - are you listening? ;-)
> has a look at the wrapper (either already now, or
> when the above steps are done) - see also the questions below.
>Any further guidance/comments/suggestions are welcome!
>Some more technical questions
> a) abstol parameter:
> from dsbev.f:
> "Eigenvalues will be computed most accurately when ABSTOL is
> set to twice the underflow threshold 2*DLAMCH('S'), not zero."
> Maybe the easiest (best?) is to wrap DLAMCH as well (easy)
> and let the user provide the value, if necessary?
> ((Even nicer would be to compute this value internally -
> is this possible with f2py ? If not, I am not sure if adding this
> is worth the effort...))
> b) Presently I suppress the array q
> Q (output) DOUBLE PRECISION array, dimension (LDQ, N)
> If JOBZ = 'V', the N-by-N orthogonal matrix used in the
> reduction to tridiagonal form.
> If JOBZ = 'N', the array Q is not referenced.
> Should one better return this as well and therefore replace
> double precision dimension(ldq,ldq),intent(hide),depend(ldq) :: q
> double precision dimension(ldq,ldq),intent(out),depend(ldq) :: q
> c) Should one make vl,vu,il,iu, optional as well ?
> Background: dsbevx allows to compute
> range: 0 = 'A': all eigenvalues will be found;
> 1 = 'V': all eigenvalues in the half-open interval (vl,vu]
> will be found;
> 2 = 'I': the il-th through iu-th eigenvalues will be found.
> so we may have that either vl,vu or il,iu or neither of
> the two pairs are used.
> If one makes all vl,vu,il,iu, optional, one could set
> set the defaults to
> il=0 iu=10
> vl=0.0 vu=20.0 # this of course absolutely
> # dependent on the problem,
> # i.e in general nonsense...
>Scipy-dev mailing list
>Scipy-dev at scipy.net
There is also some progress in improving LAPACK in this context.
More information about the Scipy-dev