pub fn invert_permutation(
permutation: &[VertexId],
) -> IgraphResult<Vec<VertexId>>Expand description
Invert a permutation vector.
Given a permutation p of [0, n), returns the inverse permutation
inv such that inv[p[i]] == i for all i. The function also
validates that p is a proper permutation (no out-of-range values,
no duplicates).
Counterpart of igraph_invert_permutation from
references/igraph/src/operators/permute.c:39-58.
§Errors
IgraphError::InvalidArgument— some entry is out of range[0, n), or the vector contains duplicate entries.
§Examples
use rust_igraph::invert_permutation;
let perm = [2, 0, 1];
let inv = invert_permutation(&perm).unwrap();
assert_eq!(inv, vec![1, 2, 0]);
// Verify: inv[perm[i]] == i
for i in 0..3 {
assert_eq!(inv[perm[i] as usize], i as u32);
}