Skip to content

Integer[A: Integer[A] val]

[Source]

trait val Integer[A: Integer[A] val] is
  Real[A] val

Implements


Constructors

create

[Source]

new val create(
  value: A)
: Real[A] val^

Parameters

  • value: A

Returns


from[B: ((I8 val | I16 val | I32 val | I64 val | I128 val | ILong val | ISize val | U8 val | U16 val | U32 val | U64 val | U128 val | ULong val | USize val | F32 val | F64 val) & Real[B] val)]

[Source]

new val from[B: ((I8 val | I16 val | I32 val | 
    I64 val | I128 val | ILong val | 
    ISize val | U8 val | U16 val | 
    U32 val | U64 val | U128 val | 
    ULong val | USize val | F32 val | 
    F64 val) & Real[B] val)](
  a: B)
: Real[A] val^

Parameters

  • a: B

Returns


min_value

[Source]

new val min_value()
: Real[A] val^

Returns


max_value

[Source]

new val max_value()
: Real[A] val^

Returns


Public Functions

add_unsafe

[Source]

Unsafe operation. If the operation overflows, the result is undefined.

fun box add_unsafe(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

sub_unsafe

[Source]

Unsafe operation. If the operation overflows, the result is undefined.

fun box sub_unsafe(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

mul_unsafe

[Source]

Unsafe operation. If the operation overflows, the result is undefined.

fun box mul_unsafe(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

div_unsafe

[Source]

Integer division, rounded towards zero.

Unsafe operation. If y is 0, the result is undefined. If the operation overflows, the result is undefined.

fun box div_unsafe(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

divrem_unsafe

[Source]

Calculates the quotient of this number and y and the remainder.

Unsafe operation. If y is 0, the result is undefined. If the operation overflows, the result is undefined.

fun box divrem_unsafe(
  y: A)
: (A , A)

Parameters

  • y: A

Returns

  • (A , A)

rem_unsafe

[Source]

Calculates the remainder of this number divided by y.

Unsafe operation. If y is 0, the result is undefined. If the operation overflows, the result is undefined.

fun box rem_unsafe(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

fld_unsafe

[Source]

Floored division, rounded towards negative infinity, as opposed to div which rounds towards zero.

Unsafe Operation

If y is 0, the result is undefined. If the operation overflows, the result is undefined.

fun box fld_unsafe(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

mod_unsafe

[Source]

Calculates the modulo of this number after floored division by y.

Unsafe Operation.

If y is 0, the result is undefined. If the operation overflows, the result is undefined.

fun box mod_unsafe(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

add_partial

[Source]

Add y to this number.

If the operation overflows this function errors.

fun box add_partial(
  y: A)
: A ?

Parameters

  • y: A

Returns

  • A ?

sub_partial

[Source]

Subtract y from this number.

If the operation overflows/underflows this function errors.

fun box sub_partial(
  y: A)
: A ?

Parameters

  • y: A

Returns

  • A ?

mul_partial

[Source]

Multiply y with this number.

If the operation overflows this function errors.

fun box mul_partial(
  y: A)
: A ?

Parameters

  • y: A

Returns

  • A ?

div_partial

[Source]

Divides this number by y, rounds the result towards zero.

If y is 0 or the operation overflows, this function errors.

fun box div_partial(
  y: A)
: A ?

Parameters

  • y: A

Returns

  • A ?

rem_partial

[Source]

Calculates the remainder of this number divided by y. The result has the sign of the dividend.

If y is 0 or the operation overflows, this function errors.

fun box rem_partial(
  y: A)
: A ?

Parameters

  • y: A

Returns

  • A ?

divrem_partial

[Source]

Divides this number by y and calculates the remainder of the operation.

If y is 0 or the operation overflows, this function errors.

fun box divrem_partial(
  y: A)
: (A , A) ?

Parameters

  • y: A

Returns

  • (A , A) ?

fld_partial

[Source]

Floored integer division, rounded towards negative infinity.

If y is 0 or the operation overflows, this function errors

fun box fld_partial(
  y: A)
: A ?

Parameters

  • y: A

Returns

  • A ?

mod_partial

[Source]

Calculates the modulo of this number and y after floored division (fld). The result has the sign of the divisor.

If y is 0 or the operation overflows, this function errors.

fun box mod_partial(
  y: A)
: A ?

Parameters

  • y: A

Returns

  • A ?

neg_unsafe

[Source]

Unsafe operation. If the operation overflows, the result is undefined.

fun box neg_unsafe()
: A

Returns

  • A

addc

[Source]

Add y to this integer and return the result and a flag indicating overflow.

fun box addc(
  y: A)
: (A , Bool val)

Parameters

  • y: A

Returns


subc

[Source]

Subtract y from this integer and return the result and a flag indicating overflow.

fun box subc(
  y: A)
: (A , Bool val)

Parameters

  • y: A

Returns


mulc

[Source]

Multiply y with this integer and return the result and a flag indicating overflow.

fun box mulc(
  y: A)
: (A , Bool val)

Parameters

  • y: A

Returns


divc

[Source]

Divide this integer by y and return the result and a flag indicating overflow or division by zero.

fun box divc(
  y: A)
: (A , Bool val)

Parameters

  • y: A

Returns


remc

[Source]

Calculate the remainder of this number divided by y and return the result and a flag indicating division by zero or overflow.

The result will have the sign of the dividend.

fun box remc(
  y: A)
: (A , Bool val)

Parameters

  • y: A

Returns


fldc

[Source]

Divide this integer by y and return the result, rounded towards negative infinity and a flag indicating overflow or division by zero.

fun box fldc(
  y: A)
: (A , Bool val)

Parameters

  • y: A

Returns


modc

[Source]

Calculate the modulo of this number after floored division by y and return the result and a flag indicating division by zero or overflow.

The result will have the sign of the divisor.

fun box modc(
  y: A)
: (A , Bool val)

Parameters

  • y: A

Returns


op_and

[Source]

fun box op_and(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

op_or

[Source]

fun box op_or(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

op_xor

[Source]

fun box op_xor(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

op_not

[Source]

fun box op_not()
: A

Returns

  • A

bit_reverse

[Source]

Reverse the order of the bits within the integer. For example, 0b11101101 (237) would return 0b10110111 (183).

fun box bit_reverse()
: A

Returns

  • A

bswap

[Source]

fun box bswap()
: A

Returns

  • A

add

[Source]

fun box add(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

sub

[Source]

fun box sub(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

mul

[Source]

fun box mul(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

div

[Source]

fun box div(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

divrem

[Source]

fun box divrem(
  y: A)
: (A , A)

Parameters

  • y: A

Returns

  • (A , A)

rem

[Source]

fun box rem(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

neg

[Source]

fun box neg()
: A

Returns

  • A

fld

[Source]

fun box fld(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

mod

[Source]

fun box mod(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

eq

[Source]

fun box eq(
  y: box->A)
: Bool val

Parameters

  • y: box->A

Returns


ne

[Source]

fun box ne(
  y: box->A)
: Bool val

Parameters

  • y: box->A

Returns


lt

[Source]

fun box lt(
  y: box->A)
: Bool val

Parameters

  • y: box->A

Returns


le

[Source]

fun box le(
  y: box->A)
: Bool val

Parameters

  • y: box->A

Returns


ge

[Source]

fun box ge(
  y: box->A)
: Bool val

Parameters

  • y: box->A

Returns


gt

[Source]

fun box gt(
  y: box->A)
: Bool val

Parameters

  • y: box->A

Returns


min

[Source]

fun box min(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

max

[Source]

fun box max(
  y: A)
: A

Parameters

  • y: A

Returns

  • A

hash

[Source]

fun box hash()
: USize val

Returns


hash64

[Source]

fun box hash64()
: U64 val

Returns


string

fun box string()
: String iso^

Returns


i8

[Source]

fun box i8()
: I8 val

Returns


i16

[Source]

fun box i16()
: I16 val

Returns


i32

[Source]

fun box i32()
: I32 val

Returns


i64

[Source]

fun box i64()
: I64 val

Returns


i128

[Source]

fun box i128()
: I128 val

Returns


ilong

[Source]

fun box ilong()
: ILong val

Returns


isize

[Source]

fun box isize()
: ISize val

Returns


u8

[Source]

fun box u8()
: U8 val

Returns


u16

[Source]

fun box u16()
: U16 val

Returns


u32

[Source]

fun box u32()
: U32 val

Returns


u64

[Source]

fun box u64()
: U64 val

Returns


u128

[Source]

fun box u128()
: U128 val

Returns


ulong

[Source]

fun box ulong()
: ULong val

Returns


usize

[Source]

fun box usize()
: USize val

Returns


f32

[Source]

fun box f32()
: F32 val

Returns


f64

[Source]

fun box f64()
: F64 val

Returns


i8_unsafe

[Source]

fun box i8_unsafe()
: I8 val

Returns


i16_unsafe

[Source]

fun box i16_unsafe()
: I16 val

Returns


i32_unsafe

[Source]

fun box i32_unsafe()
: I32 val

Returns


i64_unsafe

[Source]

fun box i64_unsafe()
: I64 val

Returns


i128_unsafe

[Source]

fun box i128_unsafe()
: I128 val

Returns


ilong_unsafe

[Source]

fun box ilong_unsafe()
: ILong val

Returns


isize_unsafe

[Source]

fun box isize_unsafe()
: ISize val

Returns


u8_unsafe

[Source]

fun box u8_unsafe()
: U8 val

Returns


u16_unsafe

[Source]

fun box u16_unsafe()
: U16 val

Returns


u32_unsafe

[Source]

fun box u32_unsafe()
: U32 val

Returns


u64_unsafe

[Source]

fun box u64_unsafe()
: U64 val

Returns


u128_unsafe

[Source]

fun box u128_unsafe()
: U128 val

Returns


ulong_unsafe

[Source]

fun box ulong_unsafe()
: ULong val

Returns


usize_unsafe

[Source]

fun box usize_unsafe()
: USize val

Returns


f32_unsafe

[Source]

fun box f32_unsafe()
: F32 val

Returns


f64_unsafe

[Source]

fun box f64_unsafe()
: F64 val

Returns


compare

[Source]

fun box compare(
  that: box->A)
: (Less val | Equal val | Greater val)

Parameters

  • that: box->A

Returns