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