def halvings
import bend-ml-llama@0.2.0.0/main.bend as BendMlLlamaimport 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)))