Skip to main content

invert_permutation

Function invert_permutation 

Source
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

§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);
}