#!/usr/bin/ruby
# Cramer's rule, using the Matrix class
func cramers_rule(A, terms) {
^A -> map {|i|
A.dclone.set_column(i, terms).det
} »/» A.det
}
var matrix = Matrix(
[2, -1, 5, 1],
[3, 2, 2, -6],
[1, 3, 3, -1],
[5, -2, -3, 3],
)
var free_terms = [-3, -32, -47, 49]
assert_eq(cramers_rule(matrix, free_terms), [2, -12, -4, 1])
say "** Test passed!"