fact: Definition piecewise_uniform_prealloc {T} {HDA : has_double_avg T} (size : T -> Q) (allocation : Q) (min : T) (max : T) (min_point_count : N) (max_point_count : N) (lg2_n_parts : nat) := let subdivisions := subdivide min max lg2_n_parts in let allocation_per_subdivision := allocation / List.length subdivisions in let allocations := piecewise_uniform_alloc_helper size allocation_per_subdivision min_point_count (max_point_count / List.length subdivisions)%N 0 0 surplus (List.rev subdivisions) in List.rev allocations.
imports: Coq.Strings.String Coq.Structures.Orders Coq.micromega.Lia Coq.Bool.Bool Coq.Sorting.Mergesort Coq.QArith.QArith Coq.QArith.Qround Coq.QArith.Qabs Coq.QArith.Qminmax Coq.NArith.NArith Coq.ZArith.ZArith Coq.Arith.Arith Coq.Lists.List PerformanceExperiments.LetIn