numba.targets package

Submodules

numba.targets.base module

class numba.targets.base.BaseContext(typing_context)

Bases: object

Most objects are lowered as plain-old-data structure in the generated llvm. They are passed around by reference (a pointer to the structure). Only POD structure can life across function boundaries by copying the data.

add_exception(exc)
add_libs(libs)
call_class_method(builder, func, signature, args)
call_external_function(builder, callee, argtys, args)
call_function(builder, callee, resty, argtys, args)
call_function_pointer(builder, funcptr, signature, args)
cast(builder, val, fromty, toty)
debug_print(builder, text)
declare_external_function(module, fndesc)
declare_function(module, fndesc)
get_abi_sizeof(lty)
get_argument_type(ty)
get_argument_value(builder, ty, val)

Argument representation to local value representation

get_arguments(func)
get_attribute(val, typ, attr)
get_constant(ty, val)
get_constant_null(ty)
get_constant_struct(builder, ty, val)
get_constant_undef(ty)
get_data_type(ty)

Get a data representation of the type

Returns None if it is an opaque pointer

get_dummy_type()
get_dummy_value()
get_executable(func, fndesc)
get_external_function_type(fndesc)
get_function(fn, sig)
get_function_type(fndesc)
Returns: -2 for return none in native function;
-1 for failure with python exception set;
0 for success;

>0 for user error code.

Return value is passed by reference as the first argument. It MUST NOT be used if the function is in nopython mode. Actual arguments starts at the 2nd argument position. Caller is responsible to allocate space for return value.

get_python_api(builder)
get_return_status(builder, code)
get_return_type(ty)
get_return_value(builder, ty, val)

Local value representation to return type representation

get_setattr(attr, sig)
get_struct_type(struct)
get_user_function(func)
get_value_as_argument(builder, ty, val)

Prepare local value representation as argument type representation

get_value_type(ty)
implement_pow_as_math_call = False
implement_powi_as_math_call = False
init()

For subclasses to add initializer

insert_attr_defn(defns)
insert_class(cls, attrs)
insert_const_string(mod, string)
insert_func_defn(defns)
insert_user_function(func, fndesc, libs=())
is_struct_type(ty)
is_true(builder, typ, val)
localized()

Returns a localized context that contains extra environment information

make_array(typ)
make_complex(typ)
make_constant_array(builder, typ, ary)
make_unituple_iter(typ)
mangler = None
optimize(module)
pack_value(builder, ty, value, ptr)

Pack data for array storage

print_string(builder, text)
return_errcode(builder, code)
return_errcode_propagate(builder, code)
return_exc(builder)
return_native_none(builder)
return_user_exc(builder, code)
return_value(builder, retval)
unpack_value(builder, ty, ptr)

Unpack data from array storage

class numba.targets.base.Overloads

Bases: object

append(impl)
find(sig)
class numba.targets.base.Status

Bases: tuple

Status(code, ok, err, exc, none)

code

Alias for field number 0

err

Alias for field number 2

exc

Alias for field number 3

none

Alias for field number 4

ok

Alias for field number 1

numba.targets.builtins module

class numba.targets.builtins.Complex128(context, builder, value=None, ref=None)

Bases: numba.cgutils.Structure

class numba.targets.builtins.Complex64(context, builder, value=None, ref=None)

Bases: numba.cgutils.Structure

class numba.targets.builtins.RangeIter32(context, builder, value=None, ref=None)

Bases: numba.cgutils.Structure

class numba.targets.builtins.RangeIter64(context, builder, value=None, ref=None)

Bases: numba.cgutils.Structure

class numba.targets.builtins.RangeState32(context, builder, value=None, ref=None)

Bases: numba.cgutils.Structure

class numba.targets.builtins.RangeState64(context, builder, value=None, ref=None)

Bases: numba.cgutils.Structure

class numba.targets.builtins.Slice(context, builder, value=None, ref=None)

Bases: numba.cgutils.Structure

numba.targets.builtins.array_len(context, builder, sig, args)
numba.targets.builtins.array_ndim(context, builder, typ, value, attr)
numba.targets.builtins.array_record_getattr(context, builder, typ, value, attr)
numba.targets.builtins.array_shape(context, builder, typ, value, attr)
numba.targets.builtins.array_size(context, builder, typ, value, attr)
numba.targets.builtins.array_strides(context, builder, typ, value, attr)
numba.targets.builtins.caster(restype)
numba.targets.builtins.cls

alias of Complex128

numba.targets.builtins.complex128_imag_impl(context, builder, typ, value, attr)
numba.targets.builtins.complex128_power_impl(context, builder, sig, args)
numba.targets.builtins.complex128_real_impl(context, builder, typ, value, attr)
numba.targets.builtins.complex64_imag_impl(context, builder, typ, value, attr)
numba.targets.builtins.complex64_real_impl(context, builder, typ, value, attr)
numba.targets.builtins.complex_add_impl(context, builder, sig, args)
numba.targets.builtins.complex_div_impl(context, builder, sig, args)

z = c^2 + d^2 (a+bi)/(c+di) = (ac + bd) / z, (bc - ad) / z

numba.targets.builtins.complex_impl(context, builder, sig, args)
numba.targets.builtins.complex_mult_impl(context, builder, sig, args)

(a+bi)(c+di)=(ac-bd)+i(ad+bc)

numba.targets.builtins.complex_negate_impl(context, builder, sig, args)
numba.targets.builtins.complex_positive_impl(context, builder, sig, args)
numba.targets.builtins.complex_sub_impl(context, builder, sig, args)
numba.targets.builtins.float_impl(context, builder, sig, args)
numba.targets.builtins.get_complex_info(ty)
numba.targets.builtins.getitem_array1d_intp(context, builder, sig, args)
numba.targets.builtins.getitem_array1d_slice(context, builder, sig, args)
numba.targets.builtins.getitem_array_tuple(context, builder, sig, args)
numba.targets.builtins.getitem_array_unituple(context, builder, sig, args)
numba.targets.builtins.getitem_unituple(context, builder, sig, args)
numba.targets.builtins.getiter_range32_impl(context, builder, sig, args)
numba.targets.builtins.getiter_range64_impl(context, builder, sig, args)
numba.targets.builtins.getiter_range_generic(context, builder, iterobj, start, stop, step)
numba.targets.builtins.getiter_unituple(context, builder, sig, args)
numba.targets.builtins.int_abs_impl(context, builder, sig, args)
numba.targets.builtins.int_add_impl(context, builder, sig, args)
numba.targets.builtins.int_and_impl(context, builder, sig, args)
numba.targets.builtins.int_ashr_impl(context, builder, sig, args)
numba.targets.builtins.int_divmod(context, builder, x, y)

Reference Objects/intobject.c xdivy = x / y; xmody = (long)(x - (unsigned long)xdivy * y); /* If the signs of x and y differ, and the remainder is non-0,

  • C89 doesn’t define whether xdivy is now the floor or the
  • ceiling of the infinitely precise quotient. We want the floor,
  • and we have it iff the remainder’s sign matches y’s.

*/

if (xmody && ((y ^ xmody) < 0) /* i.e. and signs differ */) {
xmody += y; –xdivy; assert(xmody && ((y ^ xmody) >= 0));

} *p_xdivy = xdivy; *p_xmody = xmody;

numba.targets.builtins.int_eq_impl(context, builder, sig, args)
numba.targets.builtins.int_impl(context, builder, sig, args)
numba.targets.builtins.int_invert_impl(context, builder, sig, args)
numba.targets.builtins.int_lshr_impl(context, builder, sig, args)
numba.targets.builtins.int_mul_impl(context, builder, sig, args)
numba.targets.builtins.int_ne_impl(context, builder, sig, args)
numba.targets.builtins.int_negate_impl(context, builder, sig, args)
numba.targets.builtins.int_or_impl(context, builder, sig, args)
numba.targets.builtins.int_positive_impl(context, builder, sig, args)
numba.targets.builtins.int_power_func_body(context, builder, x, y)
numba.targets.builtins.int_sdiv_impl(context, builder, sig, args)
numba.targets.builtins.int_sfloordiv_impl(context, builder, sig, args)
numba.targets.builtins.int_sge_impl(context, builder, sig, args)
numba.targets.builtins.int_sgt_impl(context, builder, sig, args)
numba.targets.builtins.int_shl_impl(context, builder, sig, args)
numba.targets.builtins.int_sign_impl(context, builder, sig, args)
numba.targets.builtins.int_sle_impl(context, builder, sig, args)
numba.targets.builtins.int_slt_impl(context, builder, sig, args)
numba.targets.builtins.int_spower_impl(context, builder, sig, args)
numba.targets.builtins.int_srem_impl(context, builder, sig, args)
numba.targets.builtins.int_struediv_impl(context, builder, sig, args)
numba.targets.builtins.int_sub_impl(context, builder, sig, args)
numba.targets.builtins.int_udiv_impl(context, builder, sig, args)
numba.targets.builtins.int_ufloordiv_impl(context, builder, sig, args)
numba.targets.builtins.int_uge_impl(context, builder, sig, args)
numba.targets.builtins.int_ugt_impl(context, builder, sig, args)
numba.targets.builtins.int_ule_impl(context, builder, sig, args)
numba.targets.builtins.int_ult_impl(context, builder, sig, args)
numba.targets.builtins.int_upower_impl(context, builder, sig, args)
numba.targets.builtins.int_urem_impl(context, builder, sig, args)
numba.targets.builtins.int_utruediv_impl(context, builder, sig, args)
numba.targets.builtins.int_xor_impl(context, builder, sig, args)
numba.targets.builtins.iternext_range32_impl(context, builder, sig, args)
numba.targets.builtins.iternext_range64_impl(context, builder, sig, args)
numba.targets.builtins.iternextsafe_unituple(context, builder, sig, args)
numba.targets.builtins.itervalid_range32_impl(context, builder, sig, args)
numba.targets.builtins.itervalid_range64_impl(context, builder, sig, args)
numba.targets.builtins.make_array(ty)
numba.targets.builtins.make_unituple_iter(tupiter)
numba.targets.builtins.math_e_impl(context, builder, typ, value, attr)
numba.targets.builtins.math_pi_impl(context, builder, typ, value, attr)
numba.targets.builtins.max_impl(context, builder, sig, args)
numba.targets.builtins.min_impl(context, builder, sig, args)
numba.targets.builtins.number_as_bool_impl(context, builder, sig, args)
numba.targets.builtins.number_not_impl(context, builder, sig, args)
numba.targets.builtins.range1_32_impl(context, builder, sig, args)
numba.targets.builtins.range1_64_impl(context, builder, sig, args)
numba.targets.builtins.range2_32_impl(context, builder, sig, args)
numba.targets.builtins.range2_64_impl(context, builder, sig, args)
numba.targets.builtins.range3_32_impl(context, builder, sig, args)
numba.targets.builtins.range3_64_impl(context, builder, sig, args)
numba.targets.builtins.real_abs_impl(context, builder, sig, args)
numba.targets.builtins.real_add_impl(context, builder, sig, args)
numba.targets.builtins.real_div_impl(context, builder, sig, args)
numba.targets.builtins.real_divmod(context, builder, x, y)
numba.targets.builtins.real_divmod_func_body(context, builder, vx, wx)
numba.targets.builtins.real_eq_impl(context, builder, sig, args)
numba.targets.builtins.real_ge_impl(context, builder, sig, args)
numba.targets.builtins.real_gt_impl(context, builder, sig, args)
numba.targets.builtins.real_le_impl(context, builder, sig, args)
numba.targets.builtins.real_lt_impl(context, builder, sig, args)
numba.targets.builtins.real_mod_impl(context, builder, sig, args)
numba.targets.builtins.real_mul_impl(context, builder, sig, args)
numba.targets.builtins.real_ne_impl(context, builder, sig, args)
numba.targets.builtins.real_negate_impl(context, builder, sig, args)
numba.targets.builtins.real_positive_impl(context, builder, sig, args)
numba.targets.builtins.real_power_impl(context, builder, sig, args)
numba.targets.builtins.real_sign_impl(context, builder, sig, args)
numba.targets.builtins.real_sub_impl(context, builder, sig, args)
numba.targets.builtins.round_impl_f32(context, builder, sig, args)
numba.targets.builtins.round_impl_f64(context, builder, sig, args)
numba.targets.builtins.setitem_array1d(context, builder, sig, args)
numba.targets.builtins.setitem_array_tuple(context, builder, sig, args)
numba.targets.builtins.setitem_array_unituple(context, builder, sig, args)
numba.targets.builtins.slice0_empty_impl(context, builder, sig, args)
numba.targets.builtins.slice0_none_none_impl(context, builder, sig, args)
numba.targets.builtins.slice1_start_impl(context, builder, sig, args)
numba.targets.builtins.slice1_stop_impl(context, builder, sig, args)
numba.targets.builtins.slice2_impl(context, builder, sig, args)
numba.targets.builtins.slice3_impl(context, builder, sig, args)
numba.targets.builtins.uint_abs_impl(context, builder, sig, args)

numba.targets.cpu module

class numba.targets.cpu.CPUContext(typing_context)

Bases: numba.targets.base.BaseContext

build_pass_manager()
dynamic_map_function(func)
get_abi_sizeof(lty)
get_executable(func, fndesc)

(cfunc, fnptr)

  • cfunc

    callable function (Can be None)

  • fnptr

    callable function address

init()
map_math_functions()
map_numpy_math_functions()
optimize(module)
optimize_pythonapi(func)
prepare_for_call(func, fndesc)
class numba.targets.cpu.CPUTargetOptions

Bases: numba.targets.options.TargetOptions

OPTIONS = {'forceobj': <type 'bool'>, 'boundcheck': <type 'bool'>, 'nopython': <type 'bool'>, 'looplift': <type 'bool'>, 'wraparound': <type 'bool'>}
numba.targets.cpu.remove_null_refct_call(bb)

Remove refct api calls to NULL pointer

numba.targets.cpu.remove_refct_calls(func)

Remove redundant incref/decref within on a per block basis

numba.targets.cpu.remove_refct_pairs(bb)

Remove incref decref pairs on the same variable

numba.targets.descriptors module

Target Descriptors

class numba.targets.descriptors.TargetDescriptor

Bases: object

numba.targets.imputils module

class numba.targets.imputils.Registry

Bases: object

register(item)
register_attr(item)
numba.targets.imputils.impl_attribute(ty, attr, rtype)
numba.targets.imputils.impl_attribute_generic(ty)
numba.targets.imputils.implement(func, *argtys)
numba.targets.imputils.python_attr_impl(cls, attr, atyp)
numba.targets.imputils.user_function(func, fndesc, libs)

numba.targets.intrinsics module

LLVM pass that converts intrinsic into other math calls

class numba.targets.intrinsics.DivmodFixer

Bases: object

Fix 64-bit div/mod on 32-bit machines

I64 = <llvm.core.IntegerType object at 0x1081b1350>
NAMES = ('sdiv', 'udiv', 'srem', 'urem')
declare(module, fname)
run(module)
run_on_func(func)
class numba.targets.intrinsics.IntrinsicMapping(context, mapping=None, availintr=None)

Bases: object

apply_mapping(module)
run(module)
translate_intrinsic_to_cmath(module)
numba.targets.intrinsics.powi_as_pow(context, fn)

numba.targets.mathimpl module

Provide math calls that uses intrinsics or libc math functions.

numba.targets.mathimpl.atan2_f32_impl(context, builder, sig, args)
numba.targets.mathimpl.atan2_f64_impl(context, builder, sig, args)
numba.targets.mathimpl.atan2_s64_impl(context, builder, sig, args)
numba.targets.mathimpl.atan2_u64_impl(context, builder, sig, args)
numba.targets.mathimpl.degrees_f32_impl(context, builder, sig, args)
numba.targets.mathimpl.degrees_f64_impl(context, builder, sig, args)
numba.targets.mathimpl.hypot_f32_impl(context, builder, sig, args)
numba.targets.mathimpl.hypot_f64_impl(context, builder, sig, args)
numba.targets.mathimpl.hypot_s64_impl(context, builder, sig, args)
numba.targets.mathimpl.hypot_u64_impl(context, builder, sig, args)
numba.targets.mathimpl.isinf_f32_impl(context, builder, sig, args)
numba.targets.mathimpl.isinf_f64_impl(context, builder, sig, args)
numba.targets.mathimpl.isinf_s64_impl(context, builder, sig, args)
numba.targets.mathimpl.isinf_u64_impl(context, builder, sig, args)
numba.targets.mathimpl.isnan_f32_impl(context, builder, sig, args)
numba.targets.mathimpl.isnan_f64_impl(context, builder, sig, args)
numba.targets.mathimpl.isnan_s64_impl(context, builder, sig, args)
numba.targets.mathimpl.isnan_u64_impl(context, builder, sig, args)
numba.targets.mathimpl.radians_f32_impl(context, builder, sig, args)
numba.targets.mathimpl.radians_f64_impl(context, builder, sig, args)
numba.targets.mathimpl.unary_math_extern(fn, f32extern, f64extern)
numba.targets.mathimpl.unary_math_int_impl(fn, f64impl)
numba.targets.mathimpl.unary_math_intr(fn, intrcode)

numba.targets.npyimpl module

class numba.targets.npyimpl.npy

This will be used as an index of the npy_* functions

acos = 'acos'
acosh = 'acosh'
asin = 'asin'
asinh = 'asinh'
atan = 'atan'
atanh = 'atanh'
ceil = 'ceil'
cos = 'cos'
cosh = 'cosh'
deg2rad = 'deg2rad'
exp = 'exp'
exp2 = 'exp2'
expm1 = 'expm1'
floor = 'floor'
log = 'log'
log10 = 'log10'
log1p = 'log1p'
log2 = 'log2'
rad2deg = 'rad2deg'
sin = 'sin'
sinh = 'sinh'
sqrt = 'sqrt'
tan = 'tan'
tanh = 'tanh'
trunc = 'trunc'
numba.targets.npyimpl.numpy_binary_ufunc(funckey, divbyzero=False, scalar_inputs=False, asfloat=False)
numba.targets.npyimpl.numpy_scalar_unary_ufunc(funckey, asfloat=True)
numba.targets.npyimpl.numpy_unary_ufunc(funckey, asfloat=False, scalar_input=False)
numba.targets.npyimpl.register_binary_ufunc(ufunc, operator, asfloat=False, divbyzero=False)
numba.targets.npyimpl.register_unary_ufunc(ufunc, operator, asfloat=False)
numba.targets.npyimpl.unary_npy_math_extern(fn)

numba.targets.operatorimpl module

numba.targets.options module

Target Options

class numba.targets.options.TargetOptions

Bases: object

OPTIONS = {}
from_dict(dic)
classmethod parse_as_flags(flags, options)
set_flags(flags)

Provide default flags setting logic. Subclass can override.

numba.targets.printimpl module

This file implements print functionality for the CPU.

numba.targets.printimpl.int_print_impl(context, builder, sig, args)
numba.targets.printimpl.print_charseq(context, builder, sig, args)
numba.targets.printimpl.print_varargs(context, builder, sig, args)
numba.targets.printimpl.real_print_impl(context, builder, sig, args)

numba.targets.registry module

class numba.targets.registry.CPUOverloaded(py_func, locals={}, targetoptions={})

Bases: numba.dispatcher.Overloaded

targetdescr = <numba.targets.registry.CPUTarget object at 0x1085ac6d0>
class numba.targets.registry.CPUTarget

Bases: numba.targets.descriptors.TargetDescriptor

options

alias of CPUTargetOptions

target_context = <numba.targets.cpu.CPUContext object at 0x1085a7b10>
typing_context = <numba.typing.context.Context object at 0x10850ce50>
class numba.targets.registry.TargetRegistry(*args, **kws)

Bases: numba.utils.UniqueDict

ondemand:

A dictionary of target-name -> function, where function is executed the first time a target is used. It is used for deferred initialization for some targets (e.g. gpu).

Module contents