|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
/*
* This file:
* http://anggtwu.net/.maxima/maxima-init.mac.html
* http://anggtwu.net/.maxima/maxima-init.mac
* (find-angg ".maxima/maxima-init.mac")
* Author: Eduardo Ochs <eduardoochs@gmail.com>
*
* See: (find-es "maxima" "init-file")
*
* «.seq» (to "seq")
* «.format» (to "format")
* «.traverse» (to "traverse")
* «.align_eqs» (to "align_eqs")
* «.mapconcat» (to "mapconcat")
* «.load_qdraw» (to "load_qdraw")
* «.HOME» (to "HOME")
* «.DDef» (to "DDef")
*/
/* «seq» (to ".seq")
* (find-es "maxima" "seq")
*/
seq (a,b) := makelist(i, i,a,b);
seqby(a,b,stp) := makelist(i, i,a,b,stp);
seqn (a,b,n) := makelist(a + (b-a)*k/n, k,0,n);
/*
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
seq (2,5);
seq (5,2);
seqby(5,2,-1);
seqby(2,20,3);
seqn (2,4,6);
*/
/* «format» (to ".format")
* (find-es "maxima" "format")
* (find-angg "LUA/Clhs1.lua" "directives")
* (find-angg "LUA/Clhs1.lua" "directives" "Tilde S: Standard")
*/
format([args]) := apply(?format, append([false], args));
/*
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
o1 : '( diff(x^2,x));
o2 : '('diff(x^2,x));
low(o) := format("~s",o);
low(o1);
low(o2);
*/
/* «traverse» (to ".traverse")
* (find-es "maxima" "part")
* (find-es "maxima" "op-and-args")
* (find-angg "MAXIMA/traverse.mac")
*/
traverse_1 : lambda([o, action],
if is(action = 'op) then op(o)
elseif is(action = 'args) then args(o)
else args(o)[action]);
traverse(o, [actions]) := xreduce('traverse_1, actions, o);
/*
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("maxima-init.mac");
o : a*b + c/d;
traverse(o);
traverse(o, op);
traverse(o, args);
traverse(o, 1);
traverse(o, 1, op);
traverse(o, 1, args);
*/
/* «align_eqs» (to ".align_eqs")
* (find-es "maxima" "align_eqs")
*/
align_eqs_1 (abcde) :=
block([a,b,cde,topline,otherlines],
abcde : args(abcde),
[a,b,cde] : [first(abcde), second(abcde), rest(abcde, 2)],
topline : [a,"=",b],
otherlines : map(lambda([c],["","=",c]), cde),
append([topline], otherlines))$
align_eqs_2 (abcdes) := map('align_eqs_1, args(abcdes));
align_eqs_3 (abcdes) := apply('matrix, apply('append, align_eqs_2(abcdes)));
align_eqs ([abcdes]) := align_eqs_3(abcdes);
/* One column: */
align_eqs_1c_1 (abcd) :=
block([a,bcd,topline,otherlines],
abcd : args(abcd),
[a,bcd] : [first(abcd), rest(abcd)],
topline : ["", a],
otherlines : map(lambda([b],["=",b]), bcd),
append([topline], otherlines))$
align_eqs_1c_2 (abcds) := map('align_eqs_1c_1, args(abcds));
align_eqs_1c_3 (abcds) := apply('matrix, apply('append, align_eqs_1c_2(abcds)));
align_eqs_1c ([abcds]) := align_eqs_1c_3(abcds);
/*
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
nary("=.");
align_eqs (a=.b=.c=.d, e=.f=.g);
align_eqs_1c (a=.b=.c=.d, e=.f=.g);
align_eqs ([a,b,c,d], [e,f,g]);
align_eqs_1c ([a,b,c,d], [e,f,g]);
align_eqs_1 ([a,b,c,d]);
align_eqs_2 ([[a,b,c,d], [e,f,g]]);
align_eqs_3 ([[a,b,c,d], [e,f,g]]);
align_eqs ([a,b,c,d], [e,f,g]);
align_eqs_1c_1 ([a,b,c,d]);
align_eqs_1c_2([[a,b,c,d], [e,f,g]]);
align_eqs_1c_3([[a,b,c,d], [e,f,g]]);
align_eqs_1c ([a,b,c,d], [e,f,g]);
*/
/* «mapconcat» (to ".mapconcat")
* Moved to: (find-myqdraw "myqdraw-core.mac" "mapconcat")
*/
/* «load_qdraw» (to ".load_qdraw")
* See: (find-windows-beginner-intro "12. Install qdraw")
* (find-myqdraw "myqdraw3.mac" "load")
* http://anggtwu.net/eev-qdraw.html
*/
load_qdraw () := load("~/myqdraw/qdraw.mac");
load_myqdraw() := load("~/myqdraw/myqdraw3.mac");
/*
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load_myqdraw();
[p1,p2,p3] : [pts([[1,1]]), pts([[2,2]]), pts([[3,3]])];
qdrawv (p1,p2,p3);
qdraw1v(p1,p2,p3);
qdraw1 (p1,p2,p3);
qdraw (p1,p2,p3);
*/
/* «HOME» (to ".HOME")
* (find-es "maxima" "getenv")
*/
HOME() := (load("operatingsystem"), getenv("HOME"))$
/* «DDef» (to ".DDef")
* (find-es "maxima" "DDef")
*/
DDef1(fxy) := buildq([f:op(fxy),xy:args(fxy)], define(f(splice(xy)),f))$
DDef([fxys]) ::= map('DDef1,fxys)$