wrap-add nat8(a nat8, b nat8)wrap-add nat16(a nat16, b nat16)wrap-add nat32(a nat32, b nat32)wrap-add nat64(a nat64, b nat64)wrap-add int8(a int8, b int8)wrap-add int16(a int16, b int16)wrap-add int32(a int32, b int32)wrap-add int64(a int64, b int64)wrap-sub nat8(a nat8, b nat8)wrap-sub nat16(a nat16, b nat16)wrap-sub nat32(a nat32, b nat32)wrap-sub nat64(a nat64, b nat64)wrap-sub int8(a int8, b int8)wrap-sub int16(a int16, b int16)wrap-sub int32(a int32, b int32)wrap-sub int64(a int64, b int64)wrap-mul nat8(a nat8, b nat8)wrap-mul nat16(a nat16, b nat16)wrap-mul nat32(a nat32, b nat32)wrap-mul nat64(a nat64, b nat64)wrap-mul int8(a int8, b int8)wrap-mul int16(a int16, b int16)wrap-mul int32(a int32, b int32)wrap-mul int64(a int64, b int64)rotate-left nat8(a nat8, amount nat8)rotate-left nat16(a nat16, amount nat16)rotate-left nat32(a nat32, amount nat32)rotate-left nat64(a nat64, amount nat64)rotate-right nat8(a nat8, amount nat8)rotate-right nat16(a nat16, amount nat16)rotate-right nat32(a nat32, amount nat32)rotate-right nat64(a nat64, amount nat64)bits-intersect bool(a nat8, b nat8)bits-intersect bool(a nat16, b nat16)bits-intersect bool(a nat32, b nat32)bits-intersect bool(a nat64, b nat64)has-all-bits bool(a nat8, b nat8)has-all-bits bool(a nat16, b nat16)has-all-bits bool(a nat32, b nat32)has-all-bits bool(a nat64, b nat64)nth-bit nat32(bit-index nat32)nth-bit nat64(bit-index nat64)has-bit bool(a nat32, bit-index nat32)has-bit bool(a nat64, bit-index nat64)add-bit nat32(a nat32, bit-index nat32)add-bit nat64(a nat64, bit-index nat64)remove-bit nat32(a nat32, bit-index nat32)remove-bit nat64(a nat64, bit-index nat64)count-ones nat32(a nat32)count-ones nat32(a nat64)one-bits one-bits32(bits nat32)one-bits one-bits64(bits nat64)nth-one-bit nat32 option(word nat32, n nat32)nth-one-bit nat64 option(word nat64, n nat64)bits-cat nat16(a nat8, b nat8)bits-cat nat32(a nat16, b nat16)bits-cat nat64(a nat32, b nat32)high-n-bits nat16(n nat16)high-n-bits nat32(n nat32)high-n-bits nat64(n nat64)low-n-bits nat16(n nat16)low-n-bits nat32(n nat32)low-n-bits nat64(n nat64)log-2-rounded-up nat64(a nat64)log-2-rounded-down nat64(a nat64)trailing-zeroes nat32(a nat32)trailing-zeroes nat64(a nat64)is-power-of-two bool(a nat64)round-up-to-power-of-two nat32(a nat32)round-up-to-power-of-two nat64(a nat64)
Functions for operating on the individual bits in nats / ints.
Bit indexes are counted from the right, so the least-siginificant digit is 0. So, the number 5 has bits 0 and 2 set, since 5 is
2**0 + 2**2.