|
#!/usr/bin/ruby
#
## Determinant of a (square) matrix
#
var d1 = det(
[
[1, 2, 3],
[6, 0, 8],
[0, 2, 10],
]
)
assert_eq(d1, -100)
var d2 = det(
[
[1, 2, 3],
[6, 0, 8],
[10, 2, 0],
]
)
assert_eq(d2, 180)
var d3 = det(
[
[ 1, 0, 3],
[ 6, 3, 8],
[10, 2, 0],
]
)
assert_eq(d3, -70)
var d4 = det(
[
[ 1, 9, 3],
[ 6, 3, 8],
[10, 2, 13],
]
)
assert_eq(d4, -13)
var d4 = det(
[
[60, 52, 23, 70],
[91, 86, 27, 81],
[14, 25, 97, 73],
[40, 1, 86, 87],
]
)
assert_eq(d4, -5015514)
var d5 = det(
[
[-75, -49, 56, -62],
[ 36, 86, -20, 88],
[-56, 20, -97, -25],
[ 75, -91, -41, -38],
]
)
assert_eq(d5, 16246710);
var d6 = det(
[
[ 1, -2, 1, 1],
[ 1, 0, 0, 1],
[-2, -2, -2, 1],
[-2, 1, -1, -2],
]
)
assert_eq(d6, 3)
var d7 = det(
[
[1,2,3],
[4,5,6],
[7,8,9],
]
)
assert_eq(d7, 0)
var d8 = det(
[
[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16],
]
)
assert_eq(d8, 0)
var d9 =det(
[
[1, 0, 3, 4],
[5, 0, 7, 0],
[4, 0, 0, 0],
[1, 14, 15, 0],
]
)
assert_eq(d9, -1568)
assert_eq(det([[-3, -1, 5, 1], [-32, 2, 2, - 6], [-47, 3, 3, - 1], [49, - 2, - 3, 3]]), 1368)
assert_eq(det([[ 2, -3, 5, 1], [ 3, -32, 2, - 6], [ 1, -47, 3, - 1], [ 5, 49, - 3, 3]]), -8208)
assert_eq(det([[ 2, -1, -3, 1], [ 3, 2, -32, - 6], [ 1, 3, -47, - 1], [ 5, - 2, 49, 3]]), -2736)
assert_eq(det([[ 2, -1, 5, -3], [ 3, 2, 2, -32], [ 1, 3, 3, -47], [ 5, - 2, - 3, 49]]), 684)
assert_eq(det([[ 2, -1, 5, 1], [ 3, 2, 2, - 6], [ 1, 3, 3, - 1], [ 5, - 2, - 3, 3]]), 684)
say "** Test passed!"
|