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))