/// max_inverted_repeat should be something small but not negligible, like 20 or 30
max_inverted_repeat should be something small but not negligible, like 20 or 30
max_inverted_repeat should be something small but not negligible like 20 or 30
fn step6_plus_plus_nonref(
    start_side: &Vec<Group>,
    end_side: &Vec<Group>,
    max_inverted_repeat: u64,
) -> Vec<NewNonRefTE> {
    let mut tes = Vec::new();
    let mut end_group_idx = 0;
    for start_group in start_side {
        let start_pos = start_group.median;
        loop {
            if end_group_idx >= end_side.len() {
                break;
            }
            let end_pos = end_side[end_group_idx].median;
            if end_pos > start_pos - max_inverted_repeat {
                if end_pos < start_pos {
                    tes.push(NewNonRefTE {
                        upstream_group: start_group.clone(),
                        downstream_group: end_side[end_group_idx].clone(),
                    });
                } else {
                    break;
                }
            }
            end_group_idx += 1;
        }
    }
    return tes;
}
fn step6_plus_plus_nonref ( start_side : & Vec < Group > , end_side : & Vec < Group > , max_inverted_repeat : u64 , ) -> Vec < NewNonRefTE > { let mut tes = Vec :: new ( ) ; let mut end_group_idx = 0 ; for start_group in start_side { let start_pos = start_group . median ; loop { if end_group_idx >= end_side . len ( ) { break ; } let end_pos = end_side [ end_group_idx ] . median ; if end_pos > start_pos - max_inverted_repeat { if end_pos < start_pos { tes . push ( NewNonRefTE { upstream_group : start_group . clone ( ) , downstream_group : end_side [ end_group_idx ] . clone ( ) , } ) ; } else { break ; } } end_group_idx += 1 ; } } return tes ; }
max_inverted_repeat should be something small but not negligible, like 20 or 30
max_inverted_repeat should be something small but not negligible like 20 or 30
start_side
&Vec<Group>
end_side
&Vec<Group>
max_inverted_repeat
u64