Skip to content

module internal.types.float

Source: stdlib/internal/types/float.codon


float @extend Class is extended to add given methods

Properties

real @property Method is a class property

imag @property Method is a class property

Magic methods

__new__()

__new__(what) @overload Function is overloaded

__repr__(self)

__copy__(self)

__deepcopy__(self)

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

%0 = fptosi double %self to i64
ret i64 %0

__float__(self)

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

%0 = fcmp une double %self, 0.000000e+00
%1 = zext i1 %0 to i8
ret i8 %1

__pos__(self)

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

%0 = fneg double %self
ret double %0

__add__(a: float, b: float) @pure Function has no side effects and returns same value for same inputs @commutative Binary operator is commutative @llvm Function is implemented with inline LLVM IR

%tmp = fadd double %a, %b
ret double %tmp

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

%tmp = fsub double %a, %b
ret double %tmp

__mul__(a: float, b: float) @pure Function has no side effects and returns same value for same inputs @commutative Binary operator is commutative @llvm Function is implemented with inline LLVM IR

%tmp = fmul double %a, %b
ret double %tmp

__floordiv__(self, other: float)

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

%tmp = fdiv double %a, %b
ret double %tmp

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

%tmp = frem double %a, %b
ret double %tmp

__divmod__(self, other: float)

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

%tmp = fcmp oeq double %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp une double %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp olt double %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp ogt double %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp ole double %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp oge double %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

__abs__(a: 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)
%tmp = call double @llvm.fabs.f64(double %a)
ret double %tmp

__floor__(a: 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 %a)
%tmp = call double @llvm.floor.f64(double %a)
ret double %tmp

__ceil__(a: 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 %a)
%tmp = call double @llvm.ceil.f64(double %a)
ret double %tmp

__trunc__(a: 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 %a)
%tmp = call double @llvm.trunc.f64(double %a)
ret double %tmp

__round__(a: 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.round.f64(double %a)
%tmp = call double @llvm.round.f64(double %a)
ret double %tmp

__pow__(a: float, b: 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 %a, double %b)
%tmp = call double @llvm.pow.f64(double %a, double %b)
ret double %tmp

__atomic_xchg__(d: Ptr[float], b: float) @nocapture Function does not capture arguments (return value might capture) @llvm Function is implemented with inline LLVM IR

%tmp = atomicrmw xchg ptr %d, double %b seq_cst
ret {} {}

__atomic_add__(d: Ptr[float], b: float) @nocapture Function does not capture arguments (return value might capture) @llvm Function is implemented with inline LLVM IR

0:
%1 = load atomic i64, ptr %d monotonic, align 8
%2 = bitcast i64 %1 to double
%3 = fadd double %2, %b
%4 = bitcast double %3 to i64
%5 = cmpxchg weak ptr %d, i64 %1, i64 %4 seq_cst monotonic, align 8
%6 = extractvalue { i64, i1 } %5, 1
br i1 %6, label %15, label %7
7:                                                ; preds = %0, %7
%8 = phi { i64, i1 } [ %13, %7 ], [ %5, %0 ]
%9 = extractvalue { i64, i1 } %8, 0
%10 = bitcast i64 %9 to double
%11 = fadd double %10, %b
%12 = bitcast double %11 to i64
%13 = cmpxchg weak ptr %d, i64 %9, i64 %12 seq_cst monotonic, align 8
%14 = extractvalue { i64, i1 } %13, 1
br i1 %14, label %15, label %7
15:                                               ; preds = %7, %0
%16 = phi double [ %2, %0 ], [ %10, %7 ]
ret double %16

__atomic_sub__(d: Ptr[float], b: float) @nocapture Function does not capture arguments (return value might capture) @llvm Function is implemented with inline LLVM IR

0:
%1 = load atomic i64, ptr %d monotonic, align 8
%2 = bitcast i64 %1 to double
%3 = fsub double %2, %b
%4 = bitcast double %3 to i64
%5 = cmpxchg weak ptr %d, i64 %1, i64 %4 seq_cst monotonic, align 8
%6 = extractvalue { i64, i1 } %5, 1
br i1 %6, label %15, label %7
7:                                                ; preds = %0, %7
%8 = phi { i64, i1 } [ %13, %7 ], [ %5, %0 ]
%9 = extractvalue { i64, i1 } %8, 0
%10 = bitcast i64 %9 to double
%11 = fsub double %10, %b
%12 = bitcast double %11 to i64
%13 = cmpxchg weak ptr %d, i64 %9, i64 %12 seq_cst monotonic, align 8
%14 = extractvalue { i64, i1 } %13, 1
br i1 %14, label %15, label %7
15:                                               ; preds = %7, %0
%16 = phi double [ %2, %0 ], [ %10, %7 ]
ret double %16

__hash__(self)

__match__(self, obj: float)

__add__(self: float, b: int) @commutative Binary operator is commutative @overload Function is overloaded

__sub__(self: float, b: int) @overload Function is overloaded

__mul__(self: float, b: int) @commutative Binary operator is commutative @overload Function is overloaded

__floordiv__(self, b: int) @overload Function is overloaded

__truediv__(self: float, b: int) @overload Function is overloaded

__mod__(self: float, b: int) @overload Function is overloaded

__divmod__(self, b: int) @overload Function is overloaded

__eq__(self: float, b: int) @overload Function is overloaded

__ne__(self: float, b: int) @overload Function is overloaded

__lt__(self: float, b: int) @overload Function is overloaded

__gt__(self: float, b: int) @overload Function is overloaded

__le__(self: float, b: int) @overload Function is overloaded

__ge__(self: float, b: int) @overload Function is overloaded

__pow__(self: float, b: int) @overload Function is overloaded

Methods

sqrt(a: 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 %a)
%tmp = call double @llvm.sqrt.f64(double %a)
ret double %tmp

sin(a: 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 %a)
%tmp = call double @llvm.sin.f64(double %a)
ret double %tmp

cos(a: 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 %a)
%tmp = call double @llvm.cos.f64(double %a)
ret double %tmp

exp(a: 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 %a)
%tmp = call double @llvm.exp.f64(double %a)
ret double %tmp

exp2(a: 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 %a)
%tmp = call double @llvm.exp2.f64(double %a)
ret double %tmp

log(a: 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 %a)
%tmp = call double @llvm.log.f64(double %a)
ret double %tmp

log10(a: 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 %a)
%tmp = call double @llvm.log10.f64(double %a)
ret double %tmp

log2(a: 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 %a)
%tmp = call double @llvm.log2.f64(double %a)
ret double %tmp

rint(a: 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 %a)
%tmp = call double @llvm.rint.f64(double %a)
ret double %tmp

nearbyint(a: 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.nearbyint.f64(double %a)
%tmp = call double @llvm.nearbyint.f64(double %a)
ret double %tmp

min(a: float, b: 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.minnum.f64(double %a, double %b)
%tmp = call double @llvm.minnum.f64(double %a, double %b)
ret double %tmp

max(a: float, b: 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.maxnum.f64(double %a, double %b)
%tmp = call double @llvm.maxnum.f64(double %a, double %b)
ret double %tmp

copysign(a: float, b: 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 %a, double %b)
%tmp = call double @llvm.copysign.f64(double %a, double %b)
ret double %tmp

fma(a: float, b: float, c: 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.fma.f64(double %a, double %b, double %c)
%tmp = call double @llvm.fma.f64(double %a, double %b, double %c)
ret double %tmp

float32 @extend Class is extended to add given methods

Magic methods

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

%0 = fptrunc double %self to float
ret float %0

__new__(what: float32) @overload Function is overloaded

__new__(what: str) @overload Function is overloaded

__new__() @overload Function is overloaded

__repr__(self)

__format__(self, format_spec: str)

__copy__(self)

__deepcopy__(self)

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

%0 = fptosi float %self to i64
ret i64 %0

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

%0 = fpext float %self to double
ret double %0

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

%0 = fcmp une float %self, 0.000000e+00
%1 = zext i1 %0 to i8
ret i8 %1

__pos__(self)

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

%0 = fneg float %self
ret float %0

__add__(a: float32, b: float32) @pure Function has no side effects and returns same value for same inputs @commutative Binary operator is commutative @llvm Function is implemented with inline LLVM IR

%tmp = fadd float %a, %b
ret float %tmp

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

%tmp = fsub float %a, %b
ret float %tmp

__mul__(a: float32, b: float32) @pure Function has no side effects and returns same value for same inputs @commutative Binary operator is commutative @llvm Function is implemented with inline LLVM IR

%tmp = fmul float %a, %b
ret float %tmp

__floordiv__(self, other: float32)

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

%tmp = fdiv float %a, %b
ret float %tmp

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

%tmp = frem float %a, %b
ret float %tmp

__divmod__(self, other: float32)

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

%tmp = fcmp oeq float %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp une float %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp olt float %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp ogt float %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp ole float %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp oge float %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

__abs__(a: 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)
%tmp = call float @llvm.fabs.f32(float %a)
ret float %tmp

__floor__(a: 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 %a)
%tmp = call float @llvm.floor.f32(float %a)
ret float %tmp

__ceil__(a: 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 %a)
%tmp = call float @llvm.ceil.f32(float %a)
ret float %tmp

__trunc__(a: 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 %a)
%tmp = call float @llvm.trunc.f32(float %a)
ret float %tmp

__round__(a: 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.round.f32(float %a)
%tmp = call float @llvm.round.f32(float %a)
ret float %tmp

__pow__(a: float32, b: 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 %a, float %b)
%tmp = call float @llvm.pow.f32(float %a, float %b)
ret float %tmp

__atomic_xchg__(d: Ptr[float32], b: float32) @nocapture Function does not capture arguments (return value might capture) @llvm Function is implemented with inline LLVM IR

%tmp = atomicrmw xchg ptr %d, float %b seq_cst
ret {} {}

__atomic_add__(d: Ptr[float32], b: float32) @nocapture Function does not capture arguments (return value might capture) @llvm Function is implemented with inline LLVM IR

0:
%1 = load atomic i32, ptr %d monotonic, align 4
%2 = bitcast i32 %1 to float
%3 = fadd float %2, %b
%4 = bitcast float %3 to i32
%5 = cmpxchg weak ptr %d, i32 %1, i32 %4 seq_cst monotonic, align 4
%6 = extractvalue { i32, i1 } %5, 1
br i1 %6, label %15, label %7
7:                                                ; preds = %0, %7
%8 = phi { i32, i1 } [ %13, %7 ], [ %5, %0 ]
%9 = extractvalue { i32, i1 } %8, 0
%10 = bitcast i32 %9 to float
%11 = fadd float %10, %b
%12 = bitcast float %11 to i32
%13 = cmpxchg weak ptr %d, i32 %9, i32 %12 seq_cst monotonic, align 4
%14 = extractvalue { i32, i1 } %13, 1
br i1 %14, label %15, label %7
15:                                               ; preds = %7, %0
%16 = phi float [ %2, %0 ], [ %10, %7 ]
ret float %16

__atomic_sub__(d: Ptr[float32], b: float32) @nocapture Function does not capture arguments (return value might capture) @llvm Function is implemented with inline LLVM IR

0:
%1 = load atomic i32, ptr %d monotonic, align 4
%2 = bitcast i32 %1 to float
%3 = fsub float %2, %b
%4 = bitcast float %3 to i32
%5 = cmpxchg weak ptr %d, i32 %1, i32 %4 seq_cst monotonic, align 4
%6 = extractvalue { i32, i1 } %5, 1
br i1 %6, label %15, label %7
7:                                                ; preds = %0, %7
%8 = phi { i32, i1 } [ %13, %7 ], [ %5, %0 ]
%9 = extractvalue { i32, i1 } %8, 0
%10 = bitcast i32 %9 to float
%11 = fsub float %10, %b
%12 = bitcast float %11 to i32
%13 = cmpxchg weak ptr %d, i32 %9, i32 %12 seq_cst monotonic, align 4
%14 = extractvalue { i32, i1 } %13, 1
br i1 %14, label %15, label %7
15:                                               ; preds = %7, %0
%16 = phi float [ %2, %0 ], [ %10, %7 ]
ret float %16

__hash__(self)

__match__(self, obj: float32)

__add__(self: float32, b: int) @commutative Binary operator is commutative @overload Function is overloaded

__sub__(self: float32, b: int) @overload Function is overloaded

__mul__(self: float32, b: int) @commutative Binary operator is commutative @overload Function is overloaded

__floordiv__(self, b: int) @overload Function is overloaded

__truediv__(self: float32, b: int) @overload Function is overloaded

__mod__(self: float32, b: int) @overload Function is overloaded

__divmod__(self, b: int) @overload Function is overloaded

__eq__(self: float32, b: int) @overload Function is overloaded

__ne__(self: float32, b: int) @overload Function is overloaded

__lt__(self: float32, b: int) @overload Function is overloaded

__gt__(self: float32, b: int) @overload Function is overloaded

__le__(self: float32, b: int) @overload Function is overloaded

__ge__(self: float32, b: int) @overload Function is overloaded

__pow__(self: float32, b: int) @overload Function is overloaded

Methods

sqrt(a: 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 %a)
%tmp = call float @llvm.sqrt.f32(float %a)
ret float %tmp

sin(a: 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 %a)
%tmp = call float @llvm.sin.f32(float %a)
ret float %tmp

cos(a: 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 %a)
%tmp = call float @llvm.cos.f32(float %a)
ret float %tmp

exp(a: 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 %a)
%tmp = call float @llvm.exp.f32(float %a)
ret float %tmp

exp2(a: 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 %a)
%tmp = call float @llvm.exp2.f32(float %a)
ret float %tmp

log(a: 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 %a)
%tmp = call float @llvm.log.f32(float %a)
ret float %tmp

log10(a: 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 %a)
%tmp = call float @llvm.log10.f32(float %a)
ret float %tmp

log2(a: 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 %a)
%tmp = call float @llvm.log2.f32(float %a)
ret float %tmp

rint(a: 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 %a)
%tmp = call float @llvm.rint.f32(float %a)
ret float %tmp

nearbyint(a: 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.nearbyint.f32(float %a)
%tmp = call float @llvm.nearbyint.f32(float %a)
ret float %tmp

min(a: float32, b: 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.minnum.f32(float %a, float %b)
%tmp = call float @llvm.minnum.f32(float %a, float %b)
ret float %tmp

max(a: float32, b: 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.maxnum.f32(float %a, float %b)
%tmp = call float @llvm.maxnum.f32(float %a, float %b)
ret float %tmp

copysign(a: float32, b: 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 %a, float %b)
%tmp = call float @llvm.copysign.f32(float %a, float %b)
ret float %tmp

fma(a: float32, b: float32, c: 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.fma.f32(float %a, float %b, float %c)
%tmp = call float @llvm.fma.f32(float %a, float %b, float %c)
ret float %tmp

float16 @extend Class is extended to add given methods

Magic methods

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

%0 = fptrunc double %self to half
ret half %0

__new__(what: float16) @overload Function is overloaded

__new__(what: str) @overload Function is overloaded

__new__() @overload Function is overloaded

__repr__(self)

__format__(self, format_spec: str)

__copy__(self)

__deepcopy__(self)

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

%0 = fptosi half %self to i64
ret i64 %0

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

%0 = fpext half %self to double
ret double %0

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

%0 = fcmp une half %self, 0.000000e+00
%1 = zext i1 %0 to i8
ret i8 %1

__pos__(self)

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

%0 = fneg half %self
ret half %0

__add__(a: float16, b: float16) @pure Function has no side effects and returns same value for same inputs @commutative Binary operator is commutative @llvm Function is implemented with inline LLVM IR

%tmp = fadd half %a, %b
ret half %tmp

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

%tmp = fsub half %a, %b
ret half %tmp

__mul__(a: float16, b: float16) @pure Function has no side effects and returns same value for same inputs @commutative Binary operator is commutative @llvm Function is implemented with inline LLVM IR

%tmp = fmul half %a, %b
ret half %tmp

__floordiv__(self, other: float16)

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

%tmp = fdiv half %a, %b
ret half %tmp

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

%tmp = frem half %a, %b
ret half %tmp

__divmod__(self, other: float16)

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

%tmp = fcmp oeq half %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp une half %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp olt half %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp ogt half %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp ole half %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

%tmp = fcmp oge half %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

__abs__(a: 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)
%tmp = call half @llvm.fabs.f16(half %a)
ret half %tmp

__floor__(a: 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 %a)
%tmp = call half @llvm.floor.f16(half %a)
ret half %tmp

__ceil__(a: 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 %a)
%tmp = call half @llvm.ceil.f16(half %a)
ret half %tmp

__trunc__(a: 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 %a)
%tmp = call half @llvm.trunc.f16(half %a)
ret half %tmp

__round__(a: 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.round.f16(half %a)
%tmp = call half @llvm.round.f16(half %a)
ret half %tmp

__pow__(a: float16, b: 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 %a, half %b)
%tmp = call half @llvm.pow.f16(half %a, half %b)
ret half %tmp

__hash__(self)

__match__(self, obj: float16)

__add__(self: float16, b: int) @commutative Binary operator is commutative @overload Function is overloaded

__sub__(self: float16, b: int) @overload Function is overloaded

__mul__(self: float16, b: int) @commutative Binary operator is commutative @overload Function is overloaded

__floordiv__(self, b: int) @overload Function is overloaded

__truediv__(self: float16, b: int) @overload Function is overloaded

__mod__(self: float16, b: int) @overload Function is overloaded

__divmod__(self, b: int) @overload Function is overloaded

__eq__(self: float16, b: int) @overload Function is overloaded

__ne__(self: float16, b: int) @overload Function is overloaded

__lt__(self: float16, b: int) @overload Function is overloaded

__gt__(self: float16, b: int) @overload Function is overloaded

__le__(self: float16, b: int) @overload Function is overloaded

__ge__(self: float16, b: int) @overload Function is overloaded

__pow__(self: float16, b: int) @overload Function is overloaded

Methods

sqrt(a: 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 %a)
%tmp = call half @llvm.sqrt.f16(half %a)
ret half %tmp

sin(a: 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 %a)
%tmp = call half @llvm.sin.f16(half %a)
ret half %tmp

cos(a: 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 %a)
%tmp = call half @llvm.cos.f16(half %a)
ret half %tmp

exp(a: 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 %a)
%tmp = call half @llvm.exp.f16(half %a)
ret half %tmp

exp2(a: 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 %a)
%tmp = call half @llvm.exp2.f16(half %a)
ret half %tmp

log(a: 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 %a)
%tmp = call half @llvm.log.f16(half %a)
ret half %tmp

log10(a: 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 %a)
%tmp = call half @llvm.log10.f16(half %a)
ret half %tmp

log2(a: 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 %a)
%tmp = call half @llvm.log2.f16(half %a)
ret half %tmp

rint(a: 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 %a)
%tmp = call half @llvm.rint.f16(half %a)
ret half %tmp

nearbyint(a: 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.nearbyint.f16(half %a)
%tmp = call half @llvm.nearbyint.f16(half %a)
ret half %tmp

min(a: float16, b: 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.minnum.f16(half %a, half %b)
%tmp = call half @llvm.minnum.f16(half %a, half %b)
ret half %tmp

max(a: float16, b: 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.maxnum.f16(half %a, half %b)
%tmp = call half @llvm.maxnum.f16(half %a, half %b)
ret half %tmp

copysign(a: float16, b: 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 %a, half %b)
%tmp = call half @llvm.copysign.f16(half %a, half %b)
ret half %tmp

fma(a: float16, b: float16, c: 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.fma.f16(half %a, half %b, half %c)
%tmp = call half @llvm.fma.f16(half %a, half %b, half %c)
ret half %tmp

bfloat16 @extend Class is extended to add given methods

Magic methods

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

%0 = fptrunc double %self to bfloat
ret bfloat %0

__new__(what: bfloat16) @overload Function is overloaded

__new__(what: str) @overload Function is overloaded

__new__() @overload Function is overloaded

__repr__(self)

__format__(self, format_spec: str)

__copy__(self)

__deepcopy__(self)

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

%0 = fptosi bfloat %self to i64
ret i64 %0

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

%0 = fpext bfloat %self to double
ret double %0

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

%0 = fcmp une bfloat %self, 0.000000e+00
%1 = zext i1 %0 to i8
ret i8 %1

__pos__(self)

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

%0 = fneg bfloat %self
ret bfloat %0

__add__(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @commutative Binary operator is commutative @llvm Function is implemented with inline LLVM IR

%tmp = fadd bfloat %a, %b
ret bfloat %tmp

__sub__(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fsub bfloat %a, %b
ret bfloat %tmp

__mul__(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @commutative Binary operator is commutative @llvm Function is implemented with inline LLVM IR

%tmp = fmul bfloat %a, %b
ret bfloat %tmp

__floordiv__(self, other: bfloat16)

__truediv__(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fdiv bfloat %a, %b
ret bfloat %tmp

__mod__(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = frem bfloat %a, %b
ret bfloat %tmp

__divmod__(self, other: bfloat16)

__eq__(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fcmp oeq bfloat %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

__ne__(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fcmp une bfloat %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

__lt__(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fcmp olt bfloat %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

__gt__(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fcmp ogt bfloat %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

__le__(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fcmp ole bfloat %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

__ge__(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fcmp oge bfloat %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

declare bfloat @llvm.fabs.bf16(bfloat %a)
%tmp = call bfloat @llvm.fabs.bf16(bfloat %a)
ret bfloat %tmp

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

declare bfloat @llvm.floor.bf16(bfloat %a)
%tmp = call bfloat @llvm.floor.bf16(bfloat %a)
ret bfloat %tmp

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

declare bfloat @llvm.ceil.bf16(bfloat %a)
%tmp = call bfloat @llvm.ceil.bf16(bfloat %a)
ret bfloat %tmp

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

declare bfloat @llvm.trunc.bf16(bfloat %a)
%tmp = call bfloat @llvm.trunc.bf16(bfloat %a)
ret bfloat %tmp

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

declare bfloat @llvm.round.bf16(bfloat %a)
%tmp = call bfloat @llvm.round.bf16(bfloat %a)
ret bfloat %tmp

__pow__(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare bfloat @llvm.pow.bf16(bfloat %a, bfloat %b)
%tmp = call bfloat @llvm.pow.bf16(bfloat %a, bfloat %b)
ret bfloat %tmp

__hash__(self)

__match__(self, obj: bfloat16)

__add__(self: bfloat16, b: int) @commutative Binary operator is commutative @overload Function is overloaded

__sub__(self: bfloat16, b: int) @overload Function is overloaded

__mul__(self: bfloat16, b: int) @commutative Binary operator is commutative @overload Function is overloaded

__floordiv__(self, b: int) @overload Function is overloaded

__truediv__(self: bfloat16, b: int) @overload Function is overloaded

__mod__(self: bfloat16, b: int) @overload Function is overloaded

__divmod__(self, b: int) @overload Function is overloaded

__eq__(self: bfloat16, b: int) @overload Function is overloaded

__ne__(self: bfloat16, b: int) @overload Function is overloaded

__lt__(self: bfloat16, b: int) @overload Function is overloaded

__gt__(self: bfloat16, b: int) @overload Function is overloaded

__le__(self: bfloat16, b: int) @overload Function is overloaded

__ge__(self: bfloat16, b: int) @overload Function is overloaded

__pow__(self: bfloat16, b: int) @overload Function is overloaded

Methods

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

declare bfloat @llvm.sqrt.bf16(bfloat %a)
%tmp = call bfloat @llvm.sqrt.bf16(bfloat %a)
ret bfloat %tmp

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

declare bfloat @llvm.sin.bf16(bfloat %a)
%tmp = call bfloat @llvm.sin.bf16(bfloat %a)
ret bfloat %tmp

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

declare bfloat @llvm.cos.bf16(bfloat %a)
%tmp = call bfloat @llvm.cos.bf16(bfloat %a)
ret bfloat %tmp

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

declare bfloat @llvm.exp.bf16(bfloat %a)
%tmp = call bfloat @llvm.exp.bf16(bfloat %a)
ret bfloat %tmp

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

declare bfloat @llvm.exp2.bf16(bfloat %a)
%tmp = call bfloat @llvm.exp2.bf16(bfloat %a)
ret bfloat %tmp

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

declare bfloat @llvm.log.bf16(bfloat %a)
%tmp = call bfloat @llvm.log.bf16(bfloat %a)
ret bfloat %tmp

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

declare bfloat @llvm.log10.bf16(bfloat %a)
%tmp = call bfloat @llvm.log10.bf16(bfloat %a)
ret bfloat %tmp

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

declare bfloat @llvm.log2.bf16(bfloat %a)
%tmp = call bfloat @llvm.log2.bf16(bfloat %a)
ret bfloat %tmp

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

declare bfloat @llvm.rint.bf16(bfloat %a)
%tmp = call bfloat @llvm.rint.bf16(bfloat %a)
ret bfloat %tmp

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

declare bfloat @llvm.nearbyint.bf16(bfloat %a)
%tmp = call bfloat @llvm.nearbyint.bf16(bfloat %a)
ret bfloat %tmp

min(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare bfloat @llvm.minnum.bf16(bfloat %a, bfloat %b)
%tmp = call bfloat @llvm.minnum.bf16(bfloat %a, bfloat %b)
ret bfloat %tmp

max(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare bfloat @llvm.maxnum.bf16(bfloat %a, bfloat %b)
%tmp = call bfloat @llvm.maxnum.bf16(bfloat %a, bfloat %b)
ret bfloat %tmp

copysign(a: bfloat16, b: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare bfloat @llvm.copysign.bf16(bfloat %a, bfloat %b)
%tmp = call bfloat @llvm.copysign.bf16(bfloat %a, bfloat %b)
ret bfloat %tmp

fma(a: bfloat16, b: bfloat16, c: bfloat16) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare bfloat @llvm.fma.bf16(bfloat %a, bfloat %b, bfloat %c)
%tmp = call bfloat @llvm.fma.bf16(bfloat %a, bfloat %b, bfloat %c)
ret bfloat %tmp

float128 @extend Class is extended to add given methods

Magic methods

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

%0 = fpext double %self to fp128
ret fp128 %0

__new__(what: float128) @overload Function is overloaded

__new__() @overload Function is overloaded

__repr__(self)

__format__(self, format_spec: str)

__copy__(self)

__deepcopy__(self)

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

%0 = fptosi fp128 %self to i64
ret i64 %0

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

%0 = fptrunc fp128 %self to double
ret double %0

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

%0 = fcmp une fp128 %self, 0xL00000000000000000000000000000000
%1 = zext i1 %0 to i8
ret i8 %1

__pos__(self)

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

%0 = fneg fp128 %self
ret fp128 %0

__add__(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @commutative Binary operator is commutative @llvm Function is implemented with inline LLVM IR

%tmp = fadd fp128 %a, %b
ret fp128 %tmp

__sub__(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fsub fp128 %a, %b
ret fp128 %tmp

__mul__(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @commutative Binary operator is commutative @llvm Function is implemented with inline LLVM IR

%tmp = fmul fp128 %a, %b
ret fp128 %tmp

__floordiv__(self, other: float128)

__truediv__(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fdiv fp128 %a, %b
ret fp128 %tmp

__mod__(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = frem fp128 %a, %b
ret fp128 %tmp

__divmod__(self, other: float128)

__eq__(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fcmp oeq fp128 %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

__ne__(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fcmp une fp128 %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

__lt__(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fcmp olt fp128 %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

__gt__(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fcmp ogt fp128 %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

__le__(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fcmp ole fp128 %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

__ge__(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

%tmp = fcmp oge fp128 %a, %b
%res = zext i1 %tmp to i8
ret i8 %res

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

declare fp128 @llvm.fabs.f128(fp128 %a)
%tmp = call fp128 @llvm.fabs.f128(fp128 %a)
ret fp128 %tmp

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

declare fp128 @llvm.floor.f128(fp128 %a)
%tmp = call fp128 @llvm.floor.f128(fp128 %a)
ret fp128 %tmp

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

declare fp128 @llvm.ceil.f128(fp128 %a)
%tmp = call fp128 @llvm.ceil.f128(fp128 %a)
ret fp128 %tmp

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

declare fp128 @llvm.trunc.f128(fp128 %a)
%tmp = call fp128 @llvm.trunc.f128(fp128 %a)
ret fp128 %tmp

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

declare fp128 @llvm.round.f128(fp128 %a)
%tmp = call fp128 @llvm.round.f128(fp128 %a)
ret fp128 %tmp

__pow__(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare fp128 @llvm.pow.f128(fp128 %a, fp128 %b)
%tmp = call fp128 @llvm.pow.f128(fp128 %a, fp128 %b)
ret fp128 %tmp

__hash__(self)

__match__(self, obj: float128)

__add__(self: float128, b: int) @commutative Binary operator is commutative @overload Function is overloaded

__sub__(self: float128, b: int) @overload Function is overloaded

__mul__(self: float128, b: int) @commutative Binary operator is commutative @overload Function is overloaded

__floordiv__(self, b: int) @overload Function is overloaded

__truediv__(self: float128, b: int) @overload Function is overloaded

__mod__(self: float128, b: int) @overload Function is overloaded

__divmod__(self, b: int) @overload Function is overloaded

__eq__(self: float128, b: int) @overload Function is overloaded

__ne__(self: float128, b: int) @overload Function is overloaded

__lt__(self: float128, b: int) @overload Function is overloaded

__gt__(self: float128, b: int) @overload Function is overloaded

__le__(self: float128, b: int) @overload Function is overloaded

__ge__(self: float128, b: int) @overload Function is overloaded

__pow__(self: float128, b: int) @overload Function is overloaded

Methods

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

declare fp128 @llvm.sqrt.f128(fp128 %a)
%tmp = call fp128 @llvm.sqrt.f128(fp128 %a)
ret fp128 %tmp

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

declare fp128 @llvm.sin.f128(fp128 %a)
%tmp = call fp128 @llvm.sin.f128(fp128 %a)
ret fp128 %tmp

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

declare fp128 @llvm.cos.f128(fp128 %a)
%tmp = call fp128 @llvm.cos.f128(fp128 %a)
ret fp128 %tmp

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

declare fp128 @llvm.exp.f128(fp128 %a)
%tmp = call fp128 @llvm.exp.f128(fp128 %a)
ret fp128 %tmp

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

declare fp128 @llvm.exp2.f128(fp128 %a)
%tmp = call fp128 @llvm.exp2.f128(fp128 %a)
ret fp128 %tmp

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

declare fp128 @llvm.log.f128(fp128 %a)
%tmp = call fp128 @llvm.log.f128(fp128 %a)
ret fp128 %tmp

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

declare fp128 @llvm.log10.f128(fp128 %a)
%tmp = call fp128 @llvm.log10.f128(fp128 %a)
ret fp128 %tmp

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

declare fp128 @llvm.log2.f128(fp128 %a)
%tmp = call fp128 @llvm.log2.f128(fp128 %a)
ret fp128 %tmp

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

declare fp128 @llvm.rint.f128(fp128 %a)
%tmp = call fp128 @llvm.rint.f128(fp128 %a)
ret fp128 %tmp

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

declare fp128 @llvm.nearbyint.f128(fp128 %a)
%tmp = call fp128 @llvm.nearbyint.f128(fp128 %a)
ret fp128 %tmp

min(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare fp128 @llvm.minnum.f128(fp128 %a, fp128 %b)
%tmp = call fp128 @llvm.minnum.f128(fp128 %a, fp128 %b)
ret fp128 %tmp

max(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare fp128 @llvm.maxnum.f128(fp128 %a, fp128 %b)
%tmp = call fp128 @llvm.maxnum.f128(fp128 %a, fp128 %b)
ret fp128 %tmp

copysign(a: float128, b: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare fp128 @llvm.copysign.f128(fp128 %a, fp128 %b)
%tmp = call fp128 @llvm.copysign.f128(fp128 %a, fp128 %b)
ret fp128 %tmp

fma(a: float128, b: float128, c: float128) @pure Function has no side effects and returns same value for same inputs @llvm Function is implemented with inline LLVM IR

declare fp128 @llvm.fma.f128(fp128 %a, fp128 %b, fp128 %c)
%tmp = call fp128 @llvm.fma.f128(fp128 %a, fp128 %b, fp128 %c)
ret fp128 %tmp

float @extend Class is extended to add given methods

Magic methods

__suffix_f32__(double)

__suffix_f16__(double)

__suffix_bf16__(double)

__suffix_f128__(double)


int @extend Class is extended to add given methods

Magic methods

__add__(self, b: float32) @commutative Binary operator is commutative @overload Function is overloaded

__sub__(self, b: float32) @overload Function is overloaded

__mul__(self, b: float32) @commutative Binary operator is commutative @overload Function is overloaded

__floordiv__(self, b: float32) @overload Function is overloaded

__truediv__(self, b: float32) @overload Function is overloaded

__mod__(self, b: float32) @overload Function is overloaded

__divmod__(self, b: float32) @overload Function is overloaded

__pow__(self, b: float32) @overload Function is overloaded

__eq__(self, b: float32) @overload Function is overloaded

__ne__(self, b: float32) @overload Function is overloaded

__lt__(self, b: float32) @overload Function is overloaded

__gt__(self, b: float32) @overload Function is overloaded

__le__(self, b: float32) @overload Function is overloaded

__ge__(self, b: float32) @overload Function is overloaded

__add__(self, b: float16) @commutative Binary operator is commutative @overload Function is overloaded

__sub__(self, b: float16) @overload Function is overloaded

__mul__(self, b: float16) @commutative Binary operator is commutative @overload Function is overloaded

__floordiv__(self, b: float16) @overload Function is overloaded

__truediv__(self, b: float16) @overload Function is overloaded

__mod__(self, b: float16) @overload Function is overloaded

__divmod__(self, b: float16) @overload Function is overloaded

__pow__(self, b: float16) @overload Function is overloaded

__eq__(self, b: float16) @overload Function is overloaded

__ne__(self, b: float16) @overload Function is overloaded

__lt__(self, b: float16) @overload Function is overloaded

__gt__(self, b: float16) @overload Function is overloaded

__le__(self, b: float16) @overload Function is overloaded

__ge__(self, b: float16) @overload Function is overloaded

__add__(self, b: bfloat16) @commutative Binary operator is commutative @overload Function is overloaded

__sub__(self, b: bfloat16) @overload Function is overloaded

__mul__(self, b: bfloat16) @commutative Binary operator is commutative @overload Function is overloaded

__floordiv__(self, b: bfloat16) @overload Function is overloaded

__truediv__(self, b: bfloat16) @overload Function is overloaded

__mod__(self, b: bfloat16) @overload Function is overloaded

__divmod__(self, b: bfloat16) @overload Function is overloaded

__pow__(self, b: bfloat16) @overload Function is overloaded

__eq__(self, b: bfloat16) @overload Function is overloaded

__ne__(self, b: bfloat16) @overload Function is overloaded

__lt__(self, b: bfloat16) @overload Function is overloaded

__gt__(self, b: bfloat16) @overload Function is overloaded

__le__(self, b: bfloat16) @overload Function is overloaded

__ge__(self, b: bfloat16) @overload Function is overloaded

__add__(self, b: float128) @commutative Binary operator is commutative @overload Function is overloaded

__sub__(self, b: float128) @overload Function is overloaded

__mul__(self, b: float128) @commutative Binary operator is commutative @overload Function is overloaded

__floordiv__(self, b: float128) @overload Function is overloaded

__truediv__(self, b: float128) @overload Function is overloaded

__mod__(self, b: float128) @overload Function is overloaded

__divmod__(self, b: float128) @overload Function is overloaded

__pow__(self, b: float128) @overload Function is overloaded

__eq__(self, b: float128) @overload Function is overloaded

__ne__(self, b: float128) @overload Function is overloaded

__lt__(self, b: float128) @overload Function is overloaded

__gt__(self, b: float128) @overload Function is overloaded

__le__(self, b: float128) @overload Function is overloaded

__ge__(self, b: float128) @overload Function is overloaded


f16 = float16


bf16 = bfloat16


f32 = float32


f64 = float


f128 = float128