summaryrefslogtreecommitdiff
path: root/texmf-dist/scripts/ketpic/ketlib/maximaL/matoperation.max
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2017-09-04 09:45:51 +0900
committerNorbert Preining <norbert@preining.info>2017-09-04 09:45:51 +0900
commit138f77fe71e43adc24ecb030d73df81cc5c4eb7e (patch)
treecd2d906c634149bbecd2f4bad3d540c16b23befa /texmf-dist/scripts/ketpic/ketlib/maximaL/matoperation.max
parent37bfdbee2c91bab6f0abd54503a0b9c669c9109e (diff)
add ketpic
Diffstat (limited to 'texmf-dist/scripts/ketpic/ketlib/maximaL/matoperation.max')
-rw-r--r--texmf-dist/scripts/ketpic/ketlib/maximaL/matoperation.max47
1 files changed, 47 insertions, 0 deletions
diff --git a/texmf-dist/scripts/ketpic/ketlib/maximaL/matoperation.max b/texmf-dist/scripts/ketpic/ketlib/maximaL/matoperation.max
new file mode 100644
index 00000000..512a9ffb
--- /dev/null
+++ b/texmf-dist/scripts/ketpic/ketlib/maximaL/matoperation.max
@@ -0,0 +1,47 @@
+/* Maxima tips http://www.cymric.jp/maxima/tips.html */
+
+rowmult(X, n, c) := block([M],
+ M:matrix(),
+ for i:1 thru length(X) do
+ if i=n then M:addrow(M, c*row(X, i))
+ else M:addrow(M, row(X, i)),
+ M
+);
+rowadd(X, n, m, c) := block([M],
+ M:matrix(),
+ for i:1 thru length(X) do
+ if i=n then M:addrow(M, c * row(X, m) + row(X, i))
+ else M:addrow(M, row(X, i)),
+ M
+);
+rowch(X, m, n) := block([M],
+ M:matrix(),
+ for i:1 thru length(X) do
+ if i=m then M:addrow(M, row(X, n))
+ else if i=n then M:addrow(M, row(X, m))
+ else M:addrow(M, row(X, i)),
+ M
+);
+
+colmult(X, n, c) := block([M],
+ M:matrix(),
+ for i:1 thru length(transpose(X)) do
+ if i=n then M:addcol(M, c*col(X, i))
+ else M:addcol(M, col(X, i)),
+ M
+);
+coladd(X, n, m, c) := block([M],
+ M:matrix(),
+ for i:1 thru length(transpose(X)) do
+ if i=n then M:addcol(M, c * col(X, m) + col(X, i))
+ else M:addcol(M, col(X, i)),
+ M
+);
+colch(X, m, n) := block([M],
+ M:matrix(),
+ for i:1 thru length(transpose(X)) do
+ if i=m then M:addcol(M, col(X, n))
+ else if i=n then M:addcol(M, col(X, m))
+ else M:addcol(M, col(X, i)),
+ M
+);