## Aliases

This section is empty.

## Constants

This section is empty.

## Sum types

This section is empty.

## Functions

add_64 returns the sum with carry of x, y and carry: sum = x + y + carry.

The carry input must be 0 or 1; otherwise the behavior is undefined.

The carryOut output is guaranteed to be 0 or 1.

This function's execution time does not depend on the inputs.

--- Full-width divide ---

div_32 returns the quotient and remainder of (hi, lo) divided by y:

quo = (hi, lo)/y, rem = (hi, lo)%y with the dividend bits' upper half in parameter hi and the lower half in parameter lo.

div_32 panics for y == 0 (division by zero) or y <= hi (quotient overflow).

div_64 returns the quotient and remainder of (hi, lo) divided by y:

quo = (hi, lo)/y, rem = (hi, lo)%y with the dividend bits' upper half in parameter hi and the lower half in parameter lo.

div_64 panics for y == 0 (division by zero) or y <= hi (quotient overflow).

f32_bits returns the IEEE 754 binary representation of f, with the sign bit of f and the result in the same bit position.

f32_bits(f32_from_bits(x)) == x.

f32_bits returns the IEEE 754 binary representation of f, with the sign bit of f and the result in the same bit position.

f32_bits(f32_from_bits(x)) == x.

f32_from_bits returns the floating-point number corresponding to the IEEE 754 binary representation b, with the sign bit of b and the result in the same bit position.

f32_from_bits(f32_bits(x)) == x.

f32_from_bits returns the floating-point number corresponding to the IEEE 754 binary representation b, with the sign bit of b and the result in the same bit position.

f32_from_bits(f32_bits(x)) == x.

f64_bits returns the IEEE 754 binary representation of f, with the sign bit of f and the result in the same bit position, and f64_bits(f64_from_bits(x)) == x.

f64_bits returns the IEEE 754 binary representation of f, with the sign bit of f and the result in the same bit position, and f64_bits(f64_from_bits(x)) == x.

f64_from_bits returns the floating-point number corresponding to the IEEE 754 binary representation b, with the sign bit of b and the result in the same bit position.

f64_from_bits(f64_bits(x)) == x.

f64_from_bits returns the floating-point number corresponding to the IEEE 754 binary representation b, with the sign bit of b and the result in the same bit position.

f64_from_bits(f64_bits(x)) == x.

leading_zeros_16 returns the number of leading zero bits in x; the result is 16 for x == 0.

leading_zeros_32 returns the number of leading zero bits in x; the result is 32 for x == 0.

leading_zeros_64 returns the number of leading zero bits in x; the result is 64 for x == 0.

--- LeadingZeros ---

leading_zeros_8 returns the number of leading zero bits in x; the result is 8 for x == 0.

len_16 returns the minimum number of bits required to represent x; the result is 0 for x == 0.

len_32 returns the minimum number of bits required to represent x; the result is 0 for x == 0.

len_64 returns the minimum number of bits required to represent x; the result is 0 for x == 0.

--- Len ---

len_8 returns the minimum number of bits required to represent x; the result is 0 for x == 0.

mul_32 returns the 64-bit product of x and y: (hi, lo) = x * y with the product bits' upper half returned in hi and the lower half returned in lo.

This function's execution time does not depend on the inputs.

mul_64 returns the 128-bit product of x and y: (hi, lo) = x * y with the product bits' upper half returned in hi and the lower half returned in lo.

This function's execution time does not depend on the inputs.

normalize returns a normal number y and exponent exp satisfying x == y × 2**exp. It assumes x is finite and non-zero.

ones_count_16 returns the number of one bits ("population count") in x.

ones_count_32 returns the number of one bits ("population count") in x.

ones_count_64 returns the number of one bits ("population count") in x.

--- OnesCount ---

ones_count_8 returns the number of one bits ("population count") in x.

rem_32 returns the remainder of (hi, lo) divided by y. Rem32 panics for y == 0 (division by zero) but, unlike Div32, it doesn't panic on a quotient overflow.

rem_64 returns the remainder of (hi, lo) divided by y. Rem64 panics for y == 0 (division by zero) but, unlike div_64, it doesn't panic on a quotient overflow.

reverse_16 returns the value of x with its bits in reversed order.

reverse_32 returns the value of x with its bits in reversed order.

reverse_64 returns the value of x with its bits in reversed order.

--- Reverse ---

reverse_8 returns the value of x with its bits in reversed order.

--- ReverseBytes ---

reverse_bytes_16 returns the value of x with its bytes in reversed order.

This function's execution time does not depend on the inputs.

reverse_bytes_32 returns the value of x with its bytes in reversed order.

This function's execution time does not depend on the inputs.

reverse_bytes_64 returns the value of x with its bytes in reversed order.

This function's execution time does not depend on the inputs.

rotate_left_16 returns the value of x rotated left by (k mod 16) bits.

To rotate x right by k bits, call rotate_left_16(x, -k).

This function's execution time does not depend on the inputs.

rotate_left_32 returns the value of x rotated left by (k mod 32) bits.

To rotate x right by k bits, call rotate_left_32(x, -k).

This function's execution time does not depend on the inputs.

rotate_left_64 returns the value of x rotated left by (k mod 64) bits.

To rotate x right by k bits, call rotate_left_64(x, -k).

This function's execution time does not depend on the inputs.

--- RotateLeft ---

rotate_left_8 returns the value of x rotated left by (k mod 8) bits.

To rotate x right by k bits, call rotate_left_8(x, -k).

This function's execution time does not depend on the inputs.

--- Subtract with borrow ---

Sub returns the difference of x, y and borrow: diff = x - y - borrow.

The borrow input must be 0 or 1; otherwise the behavior is undefined.

The borrowOut output is guaranteed to be 0 or 1.

sub_32 returns the difference of x, y and borrow, diff = x - y - borrow.

The borrow input must be 0 or 1; otherwise the behavior is undefined.

The borrowOut output is guaranteed to be 0 or 1.

This function's execution time does not depend on the inputs.

sub_64 returns the difference of x, y and borrow: diff = x - y - borrow.

The borrow input must be 0 or 1; otherwise the behavior is undefined.

The borrowOut output is guaranteed to be 0 or 1.

This function's execution time does not depend on the inputs.

trailing_zeros_16 returns the number of trailing zero bits in x; the result is 16 for x == 0.

trailing_zeros_32 returns the number of trailing zero bits in x; the result is 32 for x == 0.

trailing_zeros_64 returns the number of trailing zero bits in x; the result is 64 for x == 0.

## Structs

This section is empty.

## Interfaces

This section is empty.

## Enums

This section is empty.

--- Add with carry ---

Add returns the sum with carry of x, y and carry: sum = x + y + carry.

The carry input must be 0 or 1; otherwise the behavior is undefined.

The carryOut output is guaranteed to be 0 or 1.

add_32 returns the sum with carry of x, y and carry: sum = x + y + carry.

The carry input must be 0 or 1; otherwise the behavior is undefined.

The carryOut output is guaranteed to be 0 or 1.

This function's execution time does not depend on the inputs.