Hopefully you'll find that much easier to read than the template file.
Hi Moritz,
The cython code isn't a part of the repository, but if you build the code, the template system will generate pyx files (which in turn generate C files and then .so files). So after building, you should be able to find the Cython code here:
- bottleneck/bottleneck/src/func/nn.pyx
Hopefully you'll find that much easier to read than the template file.
Good luck with your work! If it works out and you wind up distributing code adapted from bottleneck, remember to include the license.
-Steven
Okay, I see. Bottleneck gets distributed with the C files (so that cython isn't a requirement), so `python setup.py build` will just use those C files.
To build the pyx files from the templates, try running `make pyx`. You can check the Makefile for details if you want.
So if the next question is silly feel free to point me to numpy C documentation but I'm surprised that the little test `if ai == ai` (in `nanmean_1d_float64_axisNone`, for instance) is really the fastest way to ignore NaNs. So when I loop over two vectors and want to apply the same mask to them, do you reckon that `if ai == ai and bi == bi` is still the fastest way to go?