algebrite
Version:
Computer Algebra System in Coffeescript
55 lines (36 loc) • 795 B
text/coffeescript
### adj =====================================================================
Tags
----
scripting, JS, internal, treenode, general concept
Parameters
----------
m
General description
-------------------
Returns the adjunct of matrix m. The inverse of m is equal to adj(m) divided by det(m).
###
Eval_adj = ->
push(cadr(p1))
Eval()
adj()
adj = ->
i = 0
j = 0
n = 0
save()
p1 = pop()
if (istensor(p1) && p1.tensor.ndim == 2 && p1.tensor.dim[0] == p1.tensor.dim[1])
doNothing = 1
else
stop("adj: square matrix expected")
n = p1.tensor.dim[0]
p2 = alloc_tensor(n * n)
p2.tensor.ndim = 2
p2.tensor.dim[0] = n
p2.tensor.dim[1] = n
for i in [0...n]
for j in [0...n]
cofactor(p1, n, i, j)
p2.tensor.elem[n * j + i] = pop(); # transpose
push(p2)
restore()