diff --git a/quaternionic/utilities.py b/quaternionic/utilities.py index 1af6929..56108ac 100644 --- a/quaternionic/utilities.py +++ b/quaternionic/utilities.py @@ -4,6 +4,7 @@ import sys import functools +import numpy as np ufunc_attributes = [ 'nin', 'nout', 'nargs', 'ntypes', 'types', 'identity', 'signature', @@ -69,7 +70,6 @@ def convert_numpy_ufunc_type_to_numba_ftylist(typelist): # 'e': numba.half, # numba.half doesn't exist # 'f': numba.single, # numba.single doesn't exist 'f': numba.float32, # probably closest - 'd': numba.float_, # 'g': numba.longfloat, # numba.longfloat doesn't exist 'g': numba.double, # probably closest # 'F': numba.csingle, # numba.csingle doesn't exist @@ -78,6 +78,10 @@ def convert_numpy_ufunc_type_to_numba_ftylist(typelist): 'D': numba.complex128, # probably closest # 'G': numba.clongfloat, # numba.clongfloat doesn't exist } + try: # This is broken on numpy >= 2.0 + map_numpy_typecode_to_numba_type["d"] = numba.float_ + except: + pass ftylist = [] for types in typelist: diff --git a/tests/test_utilities.py b/tests/test_utilities.py index a988057..515c6fa 100644 --- a/tests/test_utilities.py +++ b/tests/test_utilities.py @@ -70,7 +70,7 @@ def f1(a, b, c): def test_types_to_ftylist(): import numba types_to_ftylist = quaternionic.utilities.convert_numpy_ufunc_type_to_numba_ftylist - types = '?bhilqpBHILQPfdgF->D' + types = '?bhilqpBHILQPfgF->D' ftylist = numba.complex128( numba.boolean, numba.byte, @@ -86,7 +86,6 @@ def test_types_to_ftylist(): numba.ulonglong, numba.uintp, numba.float32, - numba.float_, numba.double, numba.complex64, )