def sbb

bend-lawful-stdlib@0.1.0.0 · src/float/bin.bend:113

import bend-lawful-stdlib@0.1.0.0/src/float/bin.bend as Bin
import Base

113# a - b - borrow, for a >= b (callers order the operands with cmp first)
114def sbb(a: Bin, b: Bin, +w: Bool) -> Bin:
115  match a b:
116    case a BZ{}:
117      sbb.one(a, w)
118    case BZ{} b:
119      BZ{}
120    case B0{x} B0{y}:
121      cons(w, sbb(x, y, w))
122    case B0{x} B1{y}:
123      cons(Bool.not(w), sbb(x, y, True{}))
124    case B1{x} B0{y}:
125      cons(Bool.not(w), sbb(x, y, False{}))
126    case B1{x} B1{y}:
127      cons(w, sbb(x, y, w))

Uses (5)

Used by (1)