gf2 2.1.0

Working in bit-space a.k.a. GF(2)
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#[test]
fn test_inverse() {
    let n = 50;
    let identity = gf2::BitMatrix::identity(n);
    let mut trial = 1;
    let max_trials = 100;
    loop {
        let m: gf2::BitMatrix<u8> = gf2::BitMatrix::random(n, n);
        if let Some(inv) = m.inverse() {
            assert_eq!(&m * &inv, identity);
            break;
        }
        trial += 1;
        if trial > max_trials {
            panic!("No inverse found after {max_trials} trials");
        }
    }
}