[SciPy-Dev] Speeding up scipy.special.erf()?
Julian Taylor
jtaylor.debian at googlemail.com
Fri Mar 20 18:02:54 EDT 2015
On 20.03.2015 22:08, Pauli Virtanen wrote:
> 20.03.2015, 20:29, Will Adler kirjoitti:
> [clip]
>> Is there anything that can be done to speed up SciPy’s erf()?
>
> Possibly.
>
> https://github.com/scipy/scipy/blob/master/scipy/special/cephes/ndtr.c#L483
>
> The simplest thing would probably be just to write the Pade approximant
> in a form the C compiler can inline. erf and erfc are also in C99, so
> glibc may have a fast implementation.
>
using glibc is unlikely to be faster, as they focus on correctness and
not speed. Though its worth a try.
The two 4 coefficient evaluations can be perfectly vectorized, just
needs rearranging the static coefficient tables, that should give a
decent speedup.
Also the isnan call could be turned into a builtin instead of the
function call gcc/glibc does.
In total with this implementation I guess 40-50% improvement should be
possible.
More information about the SciPy-Dev
mailing list