def halvings

bend-ml-llama@0.2.0.0 · main.bend:839

import bend-ml-llama@0.2.0.0/main.bend as BendMlLlama
import Base
import bend-ml-tensor-array@0.1.14.0/main.bend as TA

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

Uses (3)

Used by (1)