| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | | |
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
specialize the sqrt ufunc for float and double and vectorize it using
SSE2.
improves performance by 4/2 for float/double if one is not memory bound
due to non-cached data.
performance is always better on all tested machines (amd phenom X2,
intel xeon 5xxx/7xxx, core2duo, corei7)
This version will not set errno on invalid input, but numpy only checks
the fpu flags so the behavior is the same.
In principle the compiler could autovectorize it when setting ffast-math
(for no errno) and specializing the loop for the vectorizable strides
and giving it some hints (restrict, __builtin_assume_aligned, etc.),
but its simpler and more reliable to simply vectorize it by hand.
|
| |/ /
|/| |
| | |
| | |
| | | |
implicit declarations, wrong declarations, unused variables and fixes a
comparison typo bug in multiarraymodule.c
|
|\ \ \
| |/ /
|/| | |
Make comparison function (gt, ge, ...) respect __array_priority__.
|
| | |
| | |
| | |
| | | |
@seberg saw this.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
This reverts commit aa7a04741146c44ab1735782a89a60b038028bf2.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The f2py executable has a shebang which uses the default python, rather
than the python it was compiled for. This causes issues for deployment
of numpy (+f2py) across systems which have different environments.
This fix uses sys.executable to determine the resulting hardcoded
python to use.
|
| | |
| | |
| | |
| | | |
This function is no longer required for building with msvc on AMD64
|
|\ \ \
| | | |
| | | | |
BLD: fix setuptools-specific easy_install issue. Closes gh-3160.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
An error is raised by setuptools when trying to write to /dev/null. Was fixed
in distribute, but not in setuptools.
No multi-arch support with plain setuptools should be OK, because multi-arch is
Ubuntu specific (at least for now), and they ship distribute.
|
|\ \ \ \
| |/ / /
|/| | | |
DOC: Min max docstrings
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
ENH: improved, faster algorithm for array padding
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
New padding method which scales much better with dimensionality.
This new implementation is fully vectorized, builds each abstracted
n-dimensional padding block in a single step, and takes advantage
of separability. The API is completely preserved, and the old
algorithm is used if a vector function is input for `mode`.
The new algorithm is faster for all tested combinations of inputs,
and scales much better with dimensionality. Execution time reductions
from ~25% for small rank 1 arrays to >99% for rank 4+ arrays observed.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
BUG: Correctly pass on ddof paramter on inside np.ma.corrcoef
|
| | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | | |
While ddof has basically no effect on corrcoef, it exists,
but it was not passed on correctly (instead only bias would
be passed on). Fixes gh-3336
|
| |_|/ /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Byteswapping is implemented in hardware on x86 cpus which is more than
double as fast than the existing implementation.
The masked version used for 32bit plays better with compiler pattern
matching so it can be optimized also by non-gcc/clang compilers.
|
|\ \ \ \
| | | | |
| | | | | |
ENH: use intrinsics for isnan, isfinite and isinf
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Use of intrinsics avoids expensive function calls in tight loops on x86
cpus where these operations are implemented in hardware while still
retaining same portability.
More than doubles performance of np.isnan/isinf/isfinite.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Create ufunc for struct array
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
- Add New api method PyUFunc_RegisterLoopForStructType for creating new ufunc for structured array
- Add arg_dtypes array to PyUFunc_Loop1d object. This keeps track of each struct dtype that the ufunc can handle.
- Add arg_dtypes parameter to ufunc_loop_matches function so that struct dtypes can be compared for NPY_VOID type num
|