[SciPy-Dev] Make orthogonal eval_* ufuncs?

Pauli Virtanen pav@iki...
Sun Oct 7 06:19:17 CDT 2012


Hi,

22.09.2012 19:45, Eric Moore kirjoitti:
> There are some issues with the eval_* routines for orthogonal polynomials.
> 
> 1. They appear to support out parameters, but they don't.
> 2. They choke when handed lists rather than arrays. (This is ticket #1435)
> 3. special.binom is exported but doesn't appear in the docs on scipy.org.
> 
> I started to fix these issues this morning by turning them into ufuncs 
> and calling hyp2f1, Gamma and lgam from cephes.h and hyp1f1_wrap from 
> specfun_wrappers.h directly.  However the various error handling 
> routines defined in _cephesmodule.c (line 1185+) are actually called in 
> cephes/mtherr.c.  This means that I can't actually do it that way, 
> unless I move some things around.  I'd propose moving all of the eval_* 
> functions defined in orthogonal_eval.pyx to _cephesmodule.c and turning 
> them all into ufuncs.
> 
> Thoughts?

This might be useful.

There's a pull request currently that tries to make the organization and
adding more ufuncs easier:

    https://github.com/scipy/scipy/pull/333

Once this is merged, you can write the kernel functions of the ufunc
loops in orthogonal_eval.pxd directly in Cython, by using the usual
Cython C interface to deal with Cephes et al.

The drawback here is that you need separate kernel functions for
complex-valued types.

Or, if you want so start right away, you can work on a branch based on
that PR:

    git remote add pv git://github.com/pv/scipy-work.git
    git fetch pv
    git checkout -b my-ortheval-fixes pv/special-cleanup

-- 
Pauli Virtanen








More information about the SciPy-Dev mailing list