matrix_example/
matrix-example.rs

1use openmaths::Matrix4;
2
3fn main() {
4    // Create a new Matrix4 instance
5    let mut m1 = Matrix4::new();
6    println!("1. Initial Matrix4 m1: {:?}", m1.elements());
7
8    // Set m1 to identity matrix
9    m1.identity();
10    println!("2. Identity Matrix4 m1: {:?}", m1.elements());
11
12    // Create another Matrix4 instance with specific elements
13    let m2 = Matrix4::set(
14        1.0, 2.0, 3.0, 4.0,
15        5.0, 6.0, 7.0, 8.0,
16        9.0, 10.0, 11.0, 12.0,
17        13.0, 14.0, 15.0, 16.0,
18    );
19
20    println!("3. Matrix4 m2: {:?}", m2.elements());
21
22    // // Multiply two matrices
23    // let m3 = m1.clone().multiply(&m2);
24    // println!("4. Result of multiplying m1 and m2: {:?}", m3.elements);
25
26    // // Add two matrices
27    // let m4 = m1.clone().add(&m2);
28    // println!("5. Result of adding m1 and m2: {:?}", m4.elements);
29
30    // // Subtract two matrices
31    // let m5 = m2.clone().subtract(&m1);
32    // println!("6. Result of subtracting m1 from m2: {:?}", m5.elements);
33
34    // Determinant of a matrix m6
35    let m6 = Matrix4::set(
36        1.0, 2.0, 3.0, 4.0,
37        5.0, 6.0, 7.0, 8.0,
38        9.0, 10.0, 11.0, 12.0,
39        13.0, 14.0, 15.0, 16.0,
40    );
41    let det = m6.determinant();
42    println!("7. Determinant of m6: {}", det);
43
44    // // Adjugate of a matrix
45    // let adj = m6.adjucate();
46    // println!("8. Adjugate of m6: {:?}", adj.elements);
47
48    // // Inverse of a matrix
49    // let m7 = m6.clone().inverse();
50    // println!("9. Inverse of m6: {:?}", m7.elements);
51
52    // // Check if the inverse is correct by multiplying m6 with its inverse
53    // let m6_cloned = m6.clone();
54    // let m6_inverse_multiplied = m6_cloned.multiply(&m7);
55    // println!("10. Result of multiplying m6 with its inverse: {:?}", m6_inverse_multiplied.elements);
56    
57    // // Check if the inverse multiplication gives identity matrix
58    // let identity_check = m6_inverse_multiplied.is_identity();
59    // println!("11. Is the result an identity matrix? - {}", identity_check);
60
61    // Transpose of a matrix
62    let m8 = m2.clone().transpose();
63    println!("12. Transpose of m2: {:?}", m8.elements());
64}