Fix determinant/inver for 2x2.
This commit is contained in:
parent
a76378e83e
commit
520ba818e6
2 changed files with 7 additions and 6 deletions
|
@ -201,8 +201,8 @@ pub impl<T:Copy Num NumCast FuzzyEq> Mat2<T>: SquareMatrix<T> {
|
||||||
if d.fuzzy_eq(&_0) {
|
if d.fuzzy_eq(&_0) {
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
Some(Mat2::new(self[1][1]/d, -self[1][0]/d,
|
Some(Mat2::new(self[1][1]/d, -self[0][1]/d,
|
||||||
-self[0][1]/d, self[0][0]/d))
|
-self[1][0]/d, self[0][0]/d))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ fn test_Mat2() {
|
||||||
assert a.col(0) == Vec2::new(1f, 3f);
|
assert a.col(0) == Vec2::new(1f, 3f);
|
||||||
assert a.col(1) == Vec2::new(2f, 4f);
|
assert a.col(1) == Vec2::new(2f, 4f);
|
||||||
|
|
||||||
assert a.det() == 4f;
|
assert a.det() == -2f;
|
||||||
|
|
||||||
assert a.neg() == Mat2::new(-1f, -3f,
|
assert a.neg() == Mat2::new(-1f, -3f,
|
||||||
-2f, -4f);
|
-2f, -4f);
|
||||||
|
@ -50,11 +50,12 @@ fn test_Mat2() {
|
||||||
assert a.transpose() == Mat2::new(1f, 2f,
|
assert a.transpose() == Mat2::new(1f, 2f,
|
||||||
3f, 4f);
|
3f, 4f);
|
||||||
|
|
||||||
assert option::unwrap(a.invert()) == Mat2::new(1f, -0.5f,
|
io::println(#fmt("%?", option::unwrap(a.invert())));
|
||||||
-0.75f, 0.25f);
|
assert option::unwrap(a.invert()) == Mat2::new(-2f, 1.5f,
|
||||||
|
1f, -0.5f);
|
||||||
|
|
||||||
assert Mat2::new(0f, 2f,
|
assert Mat2::new(0f, 2f,
|
||||||
3f, 5f).invert().is_none();
|
0f, 5f).invert().is_none();
|
||||||
|
|
||||||
// exact_eq
|
// exact_eq
|
||||||
// fuzzy_eq
|
// fuzzy_eq
|
||||||
|
|
Loading…
Reference in a new issue