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}