summaryrefslogtreecommitdiff
path: root/numpy/core/src
diff options
context:
space:
mode:
authorGanesh Kathiresan <ganesh3597@gmail.com>2021-03-08 14:18:23 +0530
committerGanesh Kathiresan <ganesh3597@gmail.com>2021-03-20 16:22:13 +0530
commit6b2fb9e6a567e24a8940d0c8d78410a310c531a1 (patch)
treea2ee093f4f46da0b2e215fddb23f90b365243924 /numpy/core/src
parent50752aa920be32b74c1a7d0e4242e84b15ffa73c (diff)
downloadnumpy-6b2fb9e6a567e24a8940d0c8d78410a310c531a1.tar.gz
ENH, SIMD: Use integer dispatch
Diffstat (limited to 'numpy/core/src')
-rw-r--r--numpy/core/src/umath/loops.c.src16
-rw-r--r--numpy/core/src/umath/loops.h.src13
2 files changed, 12 insertions, 17 deletions
diff --git a/numpy/core/src/umath/loops.c.src b/numpy/core/src/umath/loops.c.src
index 68e209fe9..04665dc52 100644
--- a/numpy/core/src/umath/loops.c.src
+++ b/numpy/core/src/umath/loops.c.src
@@ -1015,22 +1015,6 @@ NPY_NO_EXPORT NPY_GCC_OPT_3 void
}
NPY_NO_EXPORT void
-@TYPE@_divide(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func))
-{
- BINARY_LOOP {
- const @type@ in1 = *(@type@ *)ip1;
- const @type@ in2 = *(@type@ *)ip2;
- if (in2 == 0) {
- npy_set_floatstatus_divbyzero();
- *((@type@ *)op1) = 0;
- }
- else {
- *((@type@ *)op1)= in1/in2;
- }
- }
-}
-
-NPY_NO_EXPORT void
@TYPE@_remainder(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func))
{
BINARY_LOOP {
diff --git a/numpy/core/src/umath/loops.h.src b/numpy/core/src/umath/loops.h.src
index b3a19be12..0301aa5ed 100644
--- a/numpy/core/src/umath/loops.h.src
+++ b/numpy/core/src/umath/loops.h.src
@@ -53,6 +53,17 @@ BOOL_@kind@(char **args, npy_intp const *dimensions, npy_intp const *steps, void
*****************************************************************************
*/
+#ifndef NPY_DISABLE_OPTIMIZATION
+ #include "loops_arithmetic.dispatch.h"
+#endif
+
+/**begin repeat
+ * #TYPE = UBYTE, USHORT, UINT, ULONG, ULONGLONG#
+ */
+ NPY_CPU_DISPATCH_DECLARE(NPY_NO_EXPORT void @TYPE@_divide,
+ (char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func)))
+/**end repeat**/
+
/**begin repeat
* #TYPE = BYTE, SHORT, INT, LONG, LONGLONG#
*/
@@ -141,7 +152,7 @@ NPY_NO_EXPORT void
@S@@TYPE@_sign(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func));
NPY_NO_EXPORT void
-@S@@TYPE@_divide(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func));
+@TYPE@_divide(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func));
NPY_NO_EXPORT void
@S@@TYPE@_remainder(char **args, npy_intp const *dimensions, npy_intp const *steps, void *NPY_UNUSED(func));