pub fn generate_stack_distance<Type, ValueT, IndexT, ContextT, const cdf_app: bool>(
    cum_val: &mut Vec<IndexT>,
    cum_dis: &mut Vec<ValueT>,
    cum_map: &mut Vec<IndexT>,
    max_i: IndexT,
    i: IndexT,
    context: *mut ContextT
) -> IndexT