[SciPy-dev] symeig integration ready

Tiziano Zito opossumnano at gmail.com
Tue Nov 18 13:05:44 EST 2008


Dear devs, 

I have managed to integrate symeig in scipy, but before
doing a commit I would like to get your feedback:

- scipy.linalg.eigh gets the following signature:
  eigh(a, b=None, lower=True, eigvals_only=False, overwrite_a=False,
      overwrite_b=False, turbo=True, eigvals=None, type=1):

  this is different from the current signature:
  eigh(a, lower=True, eigvals_only=False, overwrite_a=False):

  Is it OK to break backward-compatibility? Code would only break if
  someone was specifing keyword arguments as positional arguments...
  Same thing for the eigvalsh routine.

- I added the pyf wrappers for the new lapack routines in
  generic_lapack.pyf . They look somewhat different from all other
  wrappers (they were written 6 years ago without scipy in mind). 
  In the long run I think those fortran routines should get the same
  kind of wrappers all others have, but I can not do such a
  rewriting without the guidance of the guy who wrote the
  generic_XXX.pyf in the first place, which I assume is pearu. In
  particular the calc_lwork.f module puzzles me. 
  The new lapack routine get the minimum "lwork" and not the optimal
  one, which should be delivered by calc_lwork, if I only knew
  how...

- I added 129 tests to test_decomp.py using the marvelous nose
  parametric tests feature. They run pretty fast, and they excercise
  all relevant lapack routines with most (but not all) combinations
  of parameters.  Is it OK? Should I flag those tests as "less"
  important so that they are not run by default?

If everything is all right with you I would commit the changes
tomorrow. I will also continue to provide symeig as a standalone
module until scipy 0.7 is released and a corresponding debian
package is available. A new release with all changes (and bug-fixes
:-)) I made to incorporate it in scipy will be released soon.

Let me know,
tiziano




More information about the SciPy-Dev mailing list