> Until now we have neither C nor C++ nor Fortran code in statsmodels.
Hm, I thought statsmodels/src/bspline_*.c were being used. Is this
just old cruft?
> All our C extensions are created using cython, which removes a large
> number of the error prone gory details of having to maintain c
> extensions.
Okay, I didn't notice the *.pyx files. I can probably work with Cython
instead, thanks for pointing that out. Is the C++ stdlib available
from Cython? I can't tell this at a glance.
> As Nathaniel just replied. Recent versions of numpy have partial
n> sorting which can be used if a user has a recent enough numpy
> installed.
Hm, it's annnoying when I have to depend on a recent version of numpy.
Numpy is not easy to backport, and if I can't convince my sysadmin to
install a recent enough version to fix my problem right away on our
servers, it may just be easier to use my own C++ implementation.
I'll see what I can do. I need to solve my own problem first, and
later see if I can make you accept the solution that worked for me.
It really is kind of remarkable that there is no fast free
implementation of medcouple except in an R package. They used C there
and relied on the R API instead of the C++ stdlib as I'm planning to.
> I wrote the medcouple and related functions as a "first commit" - I
> didn't think anyone would use it for anything really.
Well, I need it now because it turns out that adjusted boxplots work
very well for identifying outliers in my data. It's very important for
us to have very good outlier identification, so the effort of getting
a fast medcouple is worth it
At worst, if we cannot come to an agreement on the virtues of the GPL,
you could do what Scipy does with FFTW, and banish the GPL'ed code to
a "contrib" location where the end user does not obtain it unless they
want more performant code and they specifically request it.
Either a gist or a small repo would be a nice way to distribute it. If you want a challenge, you could see if you can get a numba version which is really nice for end users since it will perform similarly to Cython without any compilation. In fact, it is simple to copy paste numba code from a gist, unlike a Cython which requires a bit of setup to work.