Skip to content

module numpy.util

Source: stdlib/numpy/util.codon


AxisError

Magic methods

__init__(self, message: str = "")


TooHardError

Magic methods

__init__(self, message: str = "")


tuple_get(tup, idx)


tuple_set(tup, idx, elm, init = 0)


tuple_add(tup, idx, inc, init = 0)


tuple_delete(tup, idx, init = 0)


tuple_insert(tup, idx, elm, init = 0)


tuple_swap(tup, idx1, idx2, init = 0)


tuple_perm(tup, perm)


tuple_perm_inv(perm)


tuple_apply(fn, tup1, tup2)


tuple_insert_tuple(tup, idx, ins, init = 0)


count(shape)


tuple_range(n: Literal[int])


tuple_equal(t1, t2)


broadcast(shape1, shape2)


normalize_index(idx: int, axis: int, n: int)


normalize_axis_index(axis: int, ndim: int, prefix: str = "")


has_duplicate(t)


normalize_axis_tuple(axis, ndim: int, argname: str = "", allow_duplicates: bool = False)


reconstruct_index(t1, t2, mask)


index_to_coords(index: int, limits)


index_to_fcoords(index: int, limits)


coords_to_index(coords: S, limits: S, S: type)


coords_to_findex(coords: S, limits: S, S: type)


sort(p: Ptr[T], n: int, key, T: type)


sort_by_stride(shape, strides)


median(arr, n: int)


multirange(limits)


fmultirange(limits)


noop(x: T, D: type, T: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret {=D} %x

zero(T: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret {=T} zeroinitializer

inf64() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret double 0x7FF0000000000000

inf32() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret float 0x7FF0000000000000

inf16() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret half 0x7FF0000000000000

inf(T: type)


nan64() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret double 0x7FF8000000000000

nan32() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret float 0x7FF8000000000000

nan16() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret half 0x7FF8000000000000

nan(T: type)


minnum64() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret double 0x10000000000000

minnum32() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret float 0x3810000000000000

minnum16() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret half 0xHFBFF

minnum(T: type)


maxnum64() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret double 0x7FEFFFFFFFFFFFFF

maxnum32() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret float 0x47EFFFFFE0000000

maxnum16() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret half 0xH7BFF

maxnum(T: type)


eps64() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret double 0x3CB0000000000000

eps32() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret float 0x3E80000000000000

eps16() @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

ret half 0xH1400

eps(T: type)


mantdig64()


mantdig32()


mantdig16()


mantdig(T: type)


maxexp64()


maxexp32()


maxexp16()


maxexp(T: type)


bitcast(x: T, D: type, T: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%y = bitcast {=T} %x to {=D}
ret {=D} %y

uitofp(x: T, D: type, T: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%y = uitofp {=T} %x to {=D}
ret {=D} %y

sitofp(x: T, D: type, T: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%y = sitofp {=T} %x to {=D}
ret {=D} %y

fptoui(x: T, D: type, T: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%y = fptoui {=T} %x to {=D}
ret {=D} %y

fptosi(x: T, D: type, T: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%y = fptosi {=T} %x to {=D}
ret {=D} %y

zext(x: T, D: type, T: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%y = zext {=T} %x to {=D}
ret {=D} %y

sext(x: T, D: type, T: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%y = sext {=T} %x to {=D}
ret {=D} %y

itrunc(x: T, D: type, T: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%y = trunc {=T} %x to {=D}
ret {=D} %y

fpext(x: T, D: type, T: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%y = fpext {=T} %x to {=D}
ret {=D} %y

fptrunc(x: T, D: type, T: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%y = fptrunc {=T} %x to {=D}
ret {=D} %y

fmin64(x: float, y: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.minimum.f64(double, double)
%z = call double @llvm.minimum.f64(double %x, double %y)
ret double %z

fmin32(x: float32, y: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.minimum.f32(float, float)
%z = call float @llvm.minimum.f32(float %x, float %y)
ret float %z

fmin16(x: float16, y: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.minimum.f16(half, half)
%z = call half @llvm.minimum.f16(half %x, half %y)
ret half %z

fmin(x, y)


fmax64(x: float, y: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.maximum.f64(double, double)
%z = call double @llvm.maximum.f64(double %x, double %y)
ret double %z

fmax32(x: float32, y: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.maximum.f32(float, float)
%z = call float @llvm.maximum.f32(float %x, float %y)
ret float %z

fmax16(x: float16, y: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.maximum.f16(half, half)
%z = call half @llvm.maximum.f16(half %x, half %y)
ret half %z

fmax(x, y)


fminnum64(x: float, y: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.minimumnum.f64(double, double)
%z = call double @llvm.minimumnum.f64(double %x, double %y)
ret double %z

fminnum32(x: float32, y: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.minimumnum.f32(float, float)
%z = call float @llvm.minimumnum.f32(float %x, float %y)
ret float %z

fminnum16(x: float16, y: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.minimumnum.f16(half, half)
%z = call half @llvm.minimumnum.f16(half %x, half %y)
ret half %z

fminnum(x, y)


fmaxnum64(x: float, y: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.maximumnum.f64(double, double)
%z = call double @llvm.maximumnum.f64(double %x, double %y)
ret double %z

fmaxnum32(x: float32, y: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.maximumnum.f32(float, float)
%z = call float @llvm.maximumnum.f32(float %x, float %y)
ret float %z

fmaxnum16(x: float16, y: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.maximumnum.f16(half, half)
%z = call half @llvm.maximumnum.f16(half %x, half %y)
ret half %z

fmaxnum(x, y)


bswap(x: T, T: type) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare {=T} @llvm.bswap.{=T}({=T})
%y = call {=T} @llvm.bswap.{=T}({=T} %x)
ret {=T} %y

isinf64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.fabs.f64(double)
%a = call double @llvm.fabs.f64(double %x)
%y = fcmp oeq double %a, 0x7FF0000000000000
%z = zext i1 %y to i8
ret i8 %z

isinf32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.fabs.f32(float)
%a = call float @llvm.fabs.f32(float %x)
%y = fcmp oeq float %a, 0x7FF0000000000000
%z = zext i1 %y to i8
ret i8 %z

isinf16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.fabs.f16(half)
%a = call half @llvm.fabs.f16(half %x)
%y = fcmp oeq half %a, 0x7FF0000000000000
%z = zext i1 %y to i8
ret i8 %z

isinf(x)


isnan64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%y = fcmp uno double %x, 0.000000e+00
%z = zext i1 %y to i8
ret i8 %z

isnan32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%y = fcmp uno float %x, 0.000000e+00
%z = zext i1 %y to i8
ret i8 %z

isnan16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%y = fcmp uno half %x, 0.000000e+00
%z = zext i1 %y to i8
ret i8 %z

isnan(x)


signbit64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%n = bitcast double %x to i64
%s = icmp slt i64 %n, 0
%b = zext i1 %s to i8
ret i8 %b

signbit32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%n = bitcast float %x to i32
%s = icmp slt i32 %n, 0
%b = zext i1 %s to i8
ret i8 %b

signbit16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%n = bitcast half %x to i16
%s = icmp slt i16 %n, 0
%b = zext i1 %s to i8
ret i8 %b

signbit(x)


fabs64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.fabs.f64(double)
%y = call double @llvm.fabs.f64(double %x)
ret double %y

fabs32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.fabs.f32(float)
%y = call float @llvm.fabs.f32(float %x)
ret float %y

fabs16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.fabs.f16(half)
%y = call half @llvm.fabs.f16(half %x)
ret half %y

fabs(x)


isfinite64(x: float)


isfinite32(x: float32)


isfinite16(x: float16)


isfinite(x)


rint64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.rint.f64(double)
%y = call double @llvm.rint.f64(double %x)
ret double %y

rint32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.rint.f32(float)
%y = call float @llvm.rint.f32(float %x)
ret float %y

rint16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.rint.f16(half)
%y = call half @llvm.rint.f16(half %x)
ret half %y

rint(x)


floor64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.floor.f64(double)
%y = call double @llvm.floor.f64(double %x)
ret double %y

floor32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.floor.f32(float)
%y = call float @llvm.floor.f32(float %x)
ret float %y

floor16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.floor.f16(half)
%y = call half @llvm.floor.f16(half %x)
ret half %y

floor(x)


ceil64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.ceil.f64(double)
%y = call double @llvm.ceil.f64(double %x)
ret double %y

ceil32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.ceil.f32(float)
%y = call float @llvm.ceil.f32(float %x)
ret float %y

ceil16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.ceil.f16(half)
%y = call half @llvm.ceil.f16(half %x)
ret half %y

ceil(x)


trunc64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.trunc.f64(double)
%y = call double @llvm.trunc.f64(double %x)
ret double %y

trunc32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.trunc.f32(float)
%y = call float @llvm.trunc.f32(float %x)
ret float %y

trunc16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.trunc.f16(half)
%y = call half @llvm.trunc.f16(half %x)
ret half %y

trunc(x)


exp64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.exp.f64(double)
%y = call double @llvm.exp.f64(double %x)
ret double %y

exp32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.exp.f32(float)
%y = call float @llvm.exp.f32(float %x)
ret float %y

exp16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.exp.f16(half)
%y = call half @llvm.exp.f16(half %x)
ret half %y

exp(x)


exp2_64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.exp2.f64(double)
%y = call double @llvm.exp2.f64(double %x)
ret double %y

exp2_32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.exp2.f32(float)
%y = call float @llvm.exp2.f32(float %x)
ret float %y

exp2_16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.exp2.f16(half)
%y = call half @llvm.exp2.f16(half %x)
ret half %y

exp2(x)


expm1_64(x: float)


expm1_32(x: float32)


expm1(x)


log64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.log.f64(double)
%y = call double @llvm.log.f64(double %x)
ret double %y

log32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.log.f32(float)
%y = call float @llvm.log.f32(float %x)
ret float %y

log16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.log.f16(half)
%y = call half @llvm.log.f16(half %x)
ret half %y

log(x)


log2_64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.log2.f64(double)
%y = call double @llvm.log2.f64(double %x)
ret double %y

log2_32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.log2.f32(float)
%y = call float @llvm.log2.f32(float %x)
ret float %y

log2_16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.log2.f16(half)
%y = call half @llvm.log2.f16(half %x)
ret half %y

log2(x)


log10_64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.log10.f64(double)
%y = call double @llvm.log10.f64(double %x)
ret double %y

log10_32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.log10.f32(float)
%y = call float @llvm.log10.f32(float %x)
ret float %y

log10_16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.log10.f16(half)
%y = call half @llvm.log10.f16(half %x)
ret half %y

log10(x)


log1p64(x: float)


log1p32(x: float32)


log1p(x)


sqrt64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.sqrt.f64(double)
%y = call double @llvm.sqrt.f64(double %x)
ret double %y

sqrt32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.sqrt.f32(float)
%y = call float @llvm.sqrt.f32(float %x)
ret float %y

sqrt16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.sqrt.f16(half)
%y = call half @llvm.sqrt.f16(half %x)
ret half %y

sqrt(x)


cbrt64(x: float)


cbrt32(x: float32)


cbrt(x)


sin64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.sin.f64(double)
%y = call double @llvm.sin.f64(double %x)
ret double %y

sin32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.sin.f32(float)
%y = call float @llvm.sin.f32(float %x)
ret float %y

sin16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.sin.f16(half)
%y = call half @llvm.sin.f16(half %x)
ret half %y

sin(x)


cos64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.cos.f64(double)
%y = call double @llvm.cos.f64(double %x)
ret double %y

cos32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.cos.f32(float)
%y = call float @llvm.cos.f32(float %x)
ret float %y

cos16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.cos.f16(half)
%y = call half @llvm.cos.f16(half %x)
ret half %y

cos(x)


tan64(x: float)


tan32(x: float32)


tan(x)


asin64(x: float)


asin32(x: float32)


asin(x)


acos64(x: float)


acos32(x: float32)


acos(x)


atan64(x: float)


atan32(x: float32)


atan(x)


sinh64(x: float)


sinh32(x: float32)


sinh(x)


cosh64(x: float)


cosh32(x: float32)


cosh(x)


tanh64(x: float)


tanh32(x: float32)


tanh(x)


asinh64(x: float)


asinh32(x: float32)


asinh(x)


acosh64(x: float)


acosh32(x: float32)


acosh(x)


atanh64(x: float)


atanh32(x: float32)


atanh(x)


atan2_64(x: float, y: float)


atan2_32(x: float32, y: float32)


atan2(x, y)


copysign64(x: float, y: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.copysign.f64(double, double)
%z = call double @llvm.copysign.f64(double %x, double %y)
ret double %z

copysign32(x: float32, y: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.copysign.f32(float, float)
%z = call float @llvm.copysign.f32(float %x, float %y)
ret float %z

copysign16(x: float16, y: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.copysign.f16(half, half)
%z = call half @llvm.copysign.f16(half %x, half %y)
ret half %z

copysign(x, y)


pow64(x: float, y: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.pow.f64(double, double)
%z = call double @llvm.pow.f64(double %x, double %y)
ret double %z

pow32(x: float32, y: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.pow.f32(float, float)
%z = call float @llvm.pow.f32(float %x, float %y)
ret float %z

pow16(x: float16, y: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare half @llvm.pow.f16(half, half)
%z = call half @llvm.pow.f16(half %x, half %y)
ret half %z

pow(x, y)


frexp64(x: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare { double, i32 } @llvm.frexp.f64(double)
%y = call { double, i32 } @llvm.frexp.f64(double %x)
%y0 = extractvalue { double, i32 } %y, 0
%y1 = extractvalue { double, i32 } %y, 1
%z1 = sext i32 %y1 to i64
%r0 = insertvalue { double, i64 } undef, double %y0, 0
%r1 = insertvalue { double, i64 } %r0, i64 %z1, 1
ret { double, i64 } %r1

frexp32(x: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare { float, i32 } @llvm.frexp.f32(float)
%y = call { float, i32 } @llvm.frexp.f32(float %x)
%y0 = extractvalue { float, i32 } %y, 0
%y1 = extractvalue { float, i32 } %y, 1
%z1 = sext i32 %y1 to i64
%r0 = insertvalue { float, i64 } undef, float %y0, 0
%r1 = insertvalue { float, i64 } %r0, i64 %z1, 1
ret { float, i64 } %r1

frexp16(x: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare { half, i32 } @llvm.frexp.f16(half)
%y = call { half, i32 } @llvm.frexp.f16(half %x)
%y0 = extractvalue { half, i32 } %y, 0
%y1 = extractvalue { half, i32 } %y, 1
%z1 = sext i32 %y1 to i64
%r0 = insertvalue { half, i64 } undef, half %y0, 0
%r1 = insertvalue { half, i64 } %r0, i64 %z1, 1
ret { half, i64 } %r1

frexp(x)


ldexp64(x: float, exp: int) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare double @llvm.ldexp.f64(double, i32)
%e = trunc i64 %exp to i32
%y = call double @llvm.ldexp.f64(double %x, i32 %e)
ret double %y

ldexp32(x: float32, exp: int) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare float @llvm.ldexp.f32(float, i32)
%e = trunc i64 %exp to i32
%y = call float @llvm.ldexp.f32(float %x, i32 %e)
ret float %y

ldexp16(x: float16, exp: int)


ldexp(x, exp: int)


LOGE2 = 0.693147180559945309417232121458176568


LOGE10 = 2.302585092994045684017991454684364208


LOG2E = 1.442695040888963407359924681001892137


LOG10E = 0.434294481903251827651128918916605082


SQRT2 = 1.414213562373095048801688724209698079


PI = 3.141592653589793238462643383279502884


PI_2 = 1.570796326794896619231321691639751442


E = 2.718281828459045235360287471352662498


logaddexp64(x: float, y: float)


logaddexp32(x: float32, y: float32)


logaddexp(x, y)


logaddexp2_64(x: float, y: float)


logaddexp2_32(x: float32, y: float32)


logaddexp2(x, y)


hypot64(x: float, y: float)


hypot32(x: float32, y: float32)


hypot(x, y)


modf64(x: float)


modf32(x: float32)


modf16(x: float16)


modf(x)


nextafter64(x: float, y: float)


nextafter32(x: float32, y: float32)


nextafter16(x: float16, y: float16)


nextafter(x, y)


cdiv_int(x: Int[N], y: Int[N], N: Literal[int]) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%z = sdiv i{=N} %x, %y
ret i{=N} %z

cdiv_int(x: int, y: int) @overload Function is overloaded @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%z = sdiv i64 %x, %y
ret i64 %z

cmod_int(x: Int[N], y: Int[N], N: Literal[int]) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%z = srem i{=N} %x, %y
ret i{=N} %z

cmod_int(x: int, y: int) @overload Function is overloaded @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%z = srem i64 %x, %y
ret i64 %z

pydiv(x: Int[N], y: Int[N], N: Literal[int])


pydiv(x: int, y: int) @overload Function is overloaded


pymod(x: Int[N], y: Int[N], N: Literal[int])


pymod(x: int, y: int) @overload Function is overloaded


cdiv64(x: float, y: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%z = fdiv double %x, %y
ret double %z

cdiv32(x: float32, y: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%z = fdiv float %x, %y
ret float %z

cdiv16(x: float16, y: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%z = fdiv half %x, %y
ret half %z

cdiv(x, y)


cmod64(x: float, y: float) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%z = frem double %x, %y
ret double %z

cmod32(x: float32, y: float32) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%z = frem float %x, %y
ret float %z

cmod16(x: float16, y: float16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%z = frem half %x, %y
ret half %z

cmod(x, y)


pyfmod(x, y)


i0_64(x: float)


i0_32(x: float32)


i0(x)


call_vectorized_loop(in1: Ptr[T], is1: int, in2: Ptr[T], is2: int, out: Ptr[T], os: int, n: int, func: Literal[str], T: type)


sizeof(X: type)


atomic(X: type)


free(p: Ptr[T], T: type)


realloc(p: Ptr[T], newsize: int, oldsize: int, T: type)


strides(shape, forder: bool, X: type)


cast(x, T: type)


coerce(T1: type, T2: type)


op_types(T1: type, T2: type)


to_float(x)


str_to_dtype(s: Literal[str])


dtype_to_str(dtype: type, include_byteorder: bool = True)