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)$