Commit 56b054b5 authored by da-woods's avatar da-woods

Reduced duplication of code in builtin integer functions

parent 7b26b409
...@@ -94,28 +94,17 @@ builtin_function_table = [ ...@@ -94,28 +94,17 @@ builtin_function_table = [
is_strict_signature = True), is_strict_signature = True),
BuiltinFunction('abs', "f", "f", "fabsf", BuiltinFunction('abs', "f", "f", "fabsf",
is_strict_signature = True), is_strict_signature = True),
BuiltinFunction('abs', None, None, "__Pyx_abs_int", ] + list(
utility_code = UtilityCode.load("abs_int", "Builtins.c"), # uses getattr to get PyrexTypes.c_uint_type etc to allow easy iteration over a list
func_type = PyrexTypes.CFuncType( BuiltinFunction('abs', None, None, "__Pyx_abs_{0}".format(t),
PyrexTypes.c_uint_type, [ utility_code = UtilityCode.load("abs_{0}".format(t), "Builtins.c"),
PyrexTypes.CFuncTypeArg("arg", PyrexTypes.c_int_type, None)
],
is_strict_signature = True, nogil=True)),
BuiltinFunction('abs', None, None, "__Pyx_abs_long",
utility_code = UtilityCode.load("abs_long", "Builtins.c"),
func_type = PyrexTypes.CFuncType(
PyrexTypes.c_ulong_type, [
PyrexTypes.CFuncTypeArg("arg", PyrexTypes.c_long_type, None)
],
is_strict_signature = True, nogil=True)),
BuiltinFunction('abs', None, None, "__Pyx_abs_longlong",
utility_code = UtilityCode.load("abs_longlong", "Builtins.c"),
func_type = PyrexTypes.CFuncType( func_type = PyrexTypes.CFuncType(
PyrexTypes.c_ulonglong_type, [ getattr(PyrexTypes,"c_u{0}_type".format(t)), [
PyrexTypes.CFuncTypeArg("arg", PyrexTypes.c_longlong_type, None) PyrexTypes.CFuncTypeArg("arg", getattr(PyrexTypes,"c_{0}_type".format(t)), None)
], ],
is_strict_signature = True, nogil=True)), is_strict_signature = True, nogil=True))
] + list( for t in ("int", "long", "longlong")
) + list(
BuiltinFunction('abs', None, None, "__Pyx_c_abs{0}".format(t.funcsuffix), BuiltinFunction('abs', None, None, "__Pyx_c_abs{0}".format(t.funcsuffix),
func_type = PyrexTypes.CFuncType( func_type = PyrexTypes.CFuncType(
t.real_type, [ t.real_type, [
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment