def halvings

bend-ml-llama@0.2.1.0 · main.bend:841

import bend-ml-llama@0.2.1.0/main.bend as BendMlLlama
import Base
import bend-ml-tensor-array@0.1.19.0/main.bend as TA

841# how many times n groups are halved (the larger half kept) until one or none is left
842def halvings(fuel: Nat, +n: Nat) -> Nat:
843  match fuel:
844    case 0n:
845      0n
846    case 1n+f:
847      match n:
848        case 0n:
849          0n
850        case 1n+p:
851          match p:
852            case 0n:
853              0n
854            case 1n+q:
855              1n+halvings(f, Nat.sub(2n+q, TA.half(2n+q)))

Uses (3)

Used by (1)