pub fn get_part_func_mat_2loop<T>(
    seq_pair: &(&[usize], &[usize]),
    feature_score_sets: &FeatureCountSets,
    align_prob_mat: &HashMap<(T, T), f32, RandomState, Global>,
    pos_quadruple: &(T, T, T, T),
    sta_part_func_mats: &StaPartFuncMats<T>,
    is_forward: bool,
    pos_pair_mat_set: &HashMap<(T, T), HashSet<(T, T), RandomState, Global>, RandomState, Global>,
    bp_score_param_set_pair: &(&BpScoreParamSets<T>, &BpScoreParamSets<T>),
    insert_score_range_sets: &InsertScoreRangeSets,
    matchable_pos_sets_1: &HashMap<T, HashSet<T, RandomState, Global>, RandomState, Global>,
    matchable_pos_sets_2: &HashMap<T, HashSet<T, RandomState, Global>, RandomState, Global>
) -> (HashMap<(T, T), f32, RandomState, Global>, HashMap<(T, T), f32, RandomState, Global>)where
    T: Unsigned + PrimInt + Hash + FromPrimitive + Integer + Ord,