59 lines
981 B
Plaintext
59 lines
981 B
Plaintext
struct Matrix {
|
|
dat: [[f32; 3]; 3]
|
|
}
|
|
|
|
impl Matrix {
|
|
pub fn mult_m(a: Matrix, b: Matrix) -> Matrix
|
|
{
|
|
let mut out = Matrix {
|
|
dat: [[0., 0., 0.],
|
|
[0., 0., 0.],
|
|
[0., 0., 0.]
|
|
]
|
|
};
|
|
|
|
for i in 0..3{
|
|
for j in 0..3 {
|
|
for k in 0..3 {
|
|
out.dat[i][j] += a.dat[i][k] * b.dat[k][j];
|
|
}
|
|
}
|
|
}
|
|
|
|
out
|
|
}
|
|
|
|
pub fn print(self)
|
|
{
|
|
for i in 0..3 {
|
|
for j in 0..3 {
|
|
print!("{} ", self.dat[i][j]);
|
|
}
|
|
print!("\n");
|
|
}
|
|
}
|
|
}
|
|
|
|
fn main()
|
|
{
|
|
let a = Matrix {
|
|
dat: [[1., 2., 3.],
|
|
[4., 5., 6.],
|
|
[7., 8., 9.]
|
|
]
|
|
};
|
|
|
|
let b = Matrix {
|
|
dat: [[1., 0., 0.],
|
|
[0., 1., 0.],
|
|
[0., 0., 1.]]
|
|
};
|
|
|
|
|
|
|
|
let c = Matrix::mult_m(a, b);
|
|
|
|
|
|
c.print();
|
|
}
|