| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
ENH: Extend the functionlty of C++ type `np::Half`
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- optimize float/double conversions on x86, requires for now
raising up the baseline features to `f16c` at least
during the build.
- optimize float/double conversions on ppc64le, requires for now
raising up the baseline features to `VSX3` at least
during the build.
- Brings `np::Half` to npymath
|
|/
|
|
|
|
|
| |
This gets rid of undefined symbol issues for `assert`.
Closes gh-23122
Closes gh-23595
|
|\
| |
| | |
ENH: Raise C++ standard to C++17
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
| |
- DOC: update git clone command in doc to initialize submodules
- BLD: Check for submodules before building
- CI: update meson.build check and Cirrus for new git submodule
[skip ci]
Co-authored-by: Ralf Gommers <ralf.gommers@gmail.com>
|
|\
| |
| | |
SIMD: Get rid of attribute-based CPU dispatching
|
| | |
|
| | |
|
|/ |
|
|\
| |
| | |
ENH: Vectorize quicksort for 16-bit and 64-bit dtype using AVX512
|
| | |
|
| | |
|
| |
| |
| |
| | |
For a Few C++ More
|
| | |
|
| |
| |
| |
| | |
This reverts commit 138ba7583253e7540a206e7f0df3edcd5e26c518.
|
| | |
|
| |
| |
| |
| | |
This reverts commit 225c8bab83d239d8888bc7b688efed97ab2284cf.
|
| | |
|
| | |
|
| |
| |
| |
| | |
no performance gain with AVX512 enabled except for absolute
|
|/ |
|
|\
| |
| |
| |
| | |
Developer-Ecosystem-Engineering/simd_isnan_isinf_isfinite_signbit
ENH: Implement SIMD versions of isnan,isinf, isfinite and signbit
|
| |
| |
| |
| | |
this new code into a new file
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a follow up to gh-22679 which addressed gh-22673.
The main thing is that we want the functions to be available after
importing NumPy, so they need to be part of multiarray.
However, `npymath` is a static library, so the symbols are not really
exported there. The former PR did actually work in practice but this
seems like it is technically the right place?
For some reason, I had to add nextafter to be able to do:
from scipy.spatial.distance import euclidean
with the SciPy 1.9.3 wheels. SciPy test collection works with this for
the 1.9.3 wheel, so this should be all the symbols hopefully.
|
|\
| |
| | |
BUG, SIMD: Fix invalid value encountered in several ufuncs
|
| | |
|
| | |
|
|/
|
|
|
|
| |
NumPy has SIMD versions of BOOL `logical_and`, `logical_or`, `logical_not`, and `absolute` for SSE2. The changes here replace that implementation with one that uses their universal intrinsics. This allows other architectures to have SIMD versions of the functions too.
BOOL `logical_and` and `logical_or` are particularly important for NumPy as that's how `np.any()` / `np.all()` are implemented.
|
|\
| |
| | |
ENH: Add SIMD versions of negative
|
| |
| |
| |
| | |
NumPy already has SSE2 versions of `negative`. Changes here convert that to universal intrinsics so other architectures can benefit. Previously there was no unroll and SIMD was only used in contiguous cases. We're now unrolling 4x/2x depending on whether destination is contiguous. x86 doesn't perform as well for non-contiguous cases here, so we leave previous implementation / fall back to scalar. Additionally, we've added SIMD versions for ints.
|
|/ |
|
|
|
|
|
|
|
|
|
| |
(#22684)
* make isnan, isinf, isfinite, signbit, nextafter aliases
* fixes from review
Co-authored-by: Sebastian Berg <sebastianb@nvidia.com>
|
|\
| |
| | |
BLD: revert function() -> #define for 3 npymath functions
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This enables building with NumPy on Linux and macOS. Windows support
should be complete to, but is untested as of now and may need a few
tweaks. This contains:
- A set of `meson.build` files and related code generation script
tweaks, header templates, etc.
- One CI job on Linux
- Basic docs on using Meson to build NumPy (not yet integrated in the
html docs, it's too early for that - this is for early adopters right
now).
The build should be complete, with the major exception of SIMD support.
The full test suite passes. See gh-22546 for the tracking issue with
detailed notes on the plan for switching NumPy to Meson as its build
system.
Co-authored-by: Stefan van der Walt <stefanv@berkeley.edu>
|
|\
| |
| |
| |
| | |
Developer-Ecosystem-Engineering/remove_Avx_when_not_used
ENH: Remove AVX related functions from non x86 based builds
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Apple silicon builds of NumPy have extra functions in them for AVX2/AVX512. The changes here remove those implementations if we're not building for x86.
Apple silicon:
- original size: 3946035 bytes
- new size: 3657731 bytes
- savings: 288304 bytes (7.31%)
Changes pass all tests on M1 native, M1 Rosetta, and iMacPro (AVX512). We've verified performance is the same before/after for Rosetta and iMacPro. We've also verified that binaries are exactly the same size and have the same number of symbols in them.
|
|\ \
| | |
| | | |
MAINT: simplify complex math function handling in npymath
|
| | | |
|
|/ / |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
[ci skip]
Co-authored-by: h-vetinari <h.vetinari@gmx.com>
|
| |
|