del_msh_cpu/array1d.rs
1pub fn unique_for_sorted_array(idx2val: &[u32], idx2jdx: &mut [u32]) {
2 let n = idx2val.len();
3 assert_eq!(idx2jdx.len(), n);
4 idx2jdx[0] = 0;
5 for idx in 0..n - 1 {
6 idx2jdx[idx + 1] = if idx2val[idx] == idx2val[idx + 1] {
7 0
8 } else {
9 1
10 };
11 }
12 for idx in 0..n - 1 {
13 idx2jdx[idx + 1] += idx2jdx[idx];
14 }
15}