~/bend-docscommunity

src/float/bin.bend checks

raw source on the hub · import 0x5f97f469d15c04a181dae0e4e64e1d3d/src/float/bin.bend as Bin

1 import
import Base

Types

type Bin source · line 13 · raw

Data

Definitions

def one source · line 18 · raw

Bin

def is_zero source · line 21 · raw

@a:Bin -> Bool

def trim.cons0 source · line 30 · raw

@t:Bin -> Bin

def trim source · line 38 · raw

@a:Bin -> Bin

the same number without high zero bits, so equal numbers are equal terms

def odd source · line 47 · raw

@a:Bin -> Bool

def inc source · line 54 · raw

@a:Bin -> Bin

def cons source · line 63 · raw

@s:Bool -> @r:Bin -> Bin

def adc.one source · line 70 · raw

@a:Bin -> @c:Bool -> Bin

def adc source · line 79 · raw

@a:Bin -> @b:Bin -> @+c:Bool -> Bin

a + b + carry, one bit at a time: bits 0+0 pass the carry through and carry nothing, 0+1 flip it and carry it, 1+1 pass it and carry one

def add source · line 94 · raw

@a:Bin -> @b:Bin -> Bin

def dec source · line 97 · raw

@a:Bin -> Bin

def sbb.one source · line 106 · raw

@a:Bin -> @w:Bool -> Bin

def sbb source · line 114 · raw

@a:Bin -> @b:Bin -> @+w:Bool -> Bin

a - b - borrow, for a >= b (callers order the operands with cmp first)

def sub source · line 129 · raw

@a:Bin -> @b:Bin -> Bin

def mul source · line 132 · raw

@a:Bin -> @+b:Bin -> Bin

def cmp.fin source · line 141 · raw

@p:Bool -> @q:Bool -> @hi:Cmp -> Cmp

def cmp source · line 150 · raw

@a:Bin -> @b:Bin -> Cmp

def shl source · line 172 · raw

@a:Bin -> @n:Nat -> Bin

a * 2^n

def pow2 source · line 179 · raw

@n:Nat -> Bin

def len.up source · line 182 · raw

@l:Nat -> Nat

def len source · line 190 · raw

@a:Bin -> Nat

number of significant bits

def shr source · line 201 · raw

@k:Nat -> @a:Bin -> @r:Bool -> @s:Bool -> Pair(Bin, Pair(Bool, Bool))

a / 2^k, with the last bit shifted out (round) and whether any bit below it was set (sticky); r and s are the bits already shifted out

def of_word source · line 215 · raw

@n:Nat -> @w:Word(n) -> Bin

the n low bits of a word, and back

def to_word source · line 224 · raw

@n:Nat -> @a:Bin -> Word(n)

def to_nat source · line 237 · raw

@a:Bin -> Nat

def of_nat source · line 246 · raw

@n:Nat -> Bin

def low source · line 254 · raw

@k:Nat -> @a:Bin -> Bin

the low k bits of a

def take.cons source · line 267 · raw

@-r:Nat -> @b:Bool -> @p:Pair(Bin, Word(r)) -> Pair(Bin, Word(r))

def take source · line 272 · raw

@k:Nat -> @-r:Nat -> @w:Word(Nat.add(k, r)) -> Pair(Bin, Word(r))

the low k bits of a word as a Bin, and the word that remains