def Short.down

bend-kit-fmt@0.1.0.0 · fmt.bend:293

import bend-kit-fmt@0.1.0.0/fmt.bend as Fmt
import Base

293def Short.down(f: Nat, +even: Bool, small: Bool, st: St, +k: U32) ->
294  St & U32:
295  match f:
296    case 0n:
297      (st, k)
298    case 1n+g:
299      match small:
300        case False{}:
301          (st, k)
302        case True{}:
303          match st:
304            case St{r, s, mp, mm}:
305              +r10 = {Big.mul(r, 10, 0) : List<&2, U32>}
306              +mp10 = {Big.mul(mp, 10, 0) : List<&2, U32>}
307              +s1 = {s : List<&2, U32>}
308              Short.down(g, even,
309                Bool.not(Short.high(even, Big.mul(r10, 10, 0),
310                  Big.mul(mp10, 10, 0), s1)),
311                St{r10, s1, mp10, Big.mul(mm, 10, 0)}, U32.sub(k, 1))

Uses (11)

Used by (1)