|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
/*
* This file:
* http://anggtwu.net/MAXIMA/2025-cases.mac.html
* http://anggtwu.net/MAXIMA/2025-cases.mac
* (find-angg "MAXIMA/2025-cases.mac")
* Author: Eduardo Ochs <eduardoochs@gmail.com>
*
* (defun e () (interactive) (find-angg "MAXIMA/2025-cases.mac"))
* (find-angg "MAXIMA/2025-methods.mac")
* (find-es "maxima" "2024.1-taylor-1")
* (find-angg "MAXIMA/2025-1-taylor.mac")
* «.core» (to "core")
* «.core-tests» (to "core-tests")
* «.myex» (to "myex")
* «.myex-tests» (to "myex-tests")
* «.pts» (to "pts")
* «.pts-tests» (to "pts-tests")
*/
load("~/MAXIMA/2025-methods.mac");
/* «core» (to ".core")
*/
defstruct(Cases(conds,fs));
Cases__n (c) := length(c@fs);
Cases__condi (c,i) := c@conds[i];
Cases__fi (c,i) := c@fs [i];
Cases__pairi (c,i) := [c@@condi(i), c@@fi(i)];
Cases__pairs (c) := makelist(c@@pairi(i), i,1,c@@n());
Cases__matrix(c) := apply('matrix, c@@pairs());
Cases__makeif(c) := apply("if", apply('append, c@@pairs()));
/* «core-tests» (to ".core-tests")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-cases.mac");
myc : Cases([x<2, x<=3, true],
[3-x, 2, x-2])$
myc : Cases([x<2, x<=3, x<=5, true],
[3-x, 2, x-2, 3])$
myc@@pairs();
myc@@matrix();
myc@@makeif();
myc@@opi(1);
myc@@opi(2);
*/
/* «myex» (to ".myex")
* (find-myqdraw "myqdraw3.mac" "myex")
* (find-myqdraw "myqdraw-core.mac" "myapply")
*/
Cases__myexL (c, opts) := myapply_fl('ex1, c@@fi(1), 'x, xmin,c@@bi(1), opts);
Cases__myexMi(c,i,opts) := myapply_fl('ex1, c@@fi(i), 'x,c@@bi(i-1),c@@bi(i), opts);
Cases__myexR (c, opts) := myapply_fl('ex1, c@@fi(c@@n()), 'x,c@@bi(c@@n()-1),xmax, opts);
Cases__myex (c,[opts]) := [c@@myexL(opts),
makelist(c@@myexMi(i,opts), i,2,c@@n()-1),
c@@myexR(opts)];
/* «myex-tests» (to ".myex-tests")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-cases.mac");
myc : Cases([x<2, x<=3, x<=5, true],
[3-x, 2, x-2, 3])$
define(f(x), myc@@makeif());
** (find-myqdraw "myqdraw3.mac")
** (find-myqdraw "myqdraw3.mac" "myex")
load_myqdraw();
[xmin,ymin, xmax,ymax] : [0,0, 6,5];
myc@@myex();
myqdraw(xyrange(), myex1(f(x), lc(orange)));
myqdraw(xyrange(), myc@@myex (lc(orange)));
*/
/* «pts» (to ".pts")
*/
Cases__bi (c,i) := args(c@@condi(i))[2];
Cases__opi (c,i) := op(c@@condi(i));
Cases__fLi (c,i) := at(c@@fi(i), 'x=c@@bi(i));
Cases__fRi (c,i) := at(c@@fi(i+1), 'x=c@@bi(i));
Cases__nojump (c,i) := is(c@@fLi(i)=c@@fRi(i));
Cases__Lclosed (c,i) := is(c@@opi(i)="<=");
Cases__ptclosed(c,i) :=
if c@@nojump (i) then []
elseif c@@Lclosed(i) then [[c@@bi(i), c@@fRi(i)]]
else [[c@@bi(i), c@@fLi(i)]];
Cases__ptopen (c,i) :=
if c@@nojump (i) then []
elseif c@@Lclosed(i) then [[c@@bi(i), c@@fLi(i)]]
else [[c@@bi(i), c@@fRi(i)]];
Cases__ptsclosed__(c) := makelist(c@@ptclosed(i), i,1,c@@n()-1);
Cases__ptsopen__ (c) := makelist(c@@ptopen (i), i,1,c@@n()-1);
Cases__ptsclosed_ (c) := apply('append, c@@ptsclosed__());
Cases__ptsopen_ (c) := apply('append, c@@ptsopen__ ());
Cases__ptsclosed (c,opts) := myapply_fl('pts_open, c@@ptsclosed_(), opts);
Cases__ptsopen (c,opts) := myapply_fl('pts, c@@ptsopen_ (), opts);
Cases__pts (c,[opts]) := [c@@ptsclosed(opts), c@@ptsopen(opts)];
Cases__myexpts (c,lopts,popts) := [c@@myex(lopts), c@@pts(popts)];
/* «pts-tests» (to ".pts-tests")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-cases.mac");
myc : Cases([x<2, x<=3, x<=5, true],
[3-x, 2, x-2, 3])$
myc@@ptclosed(1);
myc@@ptclosed(2);
myc@@ptsclosed__();
myc@@ptsclosed_();
myc@@ptsopen__ ();
myc@@ptsopen_ ();
myc@@pts ();
** (find-myqdraw "myqdraw3.mac")
** (find-myqdraw "myqdraw3.mac" "myex")
load_myqdraw();
myqdraw(xyrange(), myc@@myex(lc(orange)), myc@@pts());
myqdraw(xyrange(), myc@@myex(lc(orange)), myc@@pts(pc(red)));
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-cases.mac");
load_myqdraw();
[xmin,ymin, xmax,ymax] : [0,0, 6,5];
myc : Cases([x<2, x<=3, x<=5, true],
[3-x, 2, x-2, 3])$
myc@@makeif();
myc@@matrix();
myqdraw(xyrange(), myc@@myexpts([], []))$
myqdraw(xyrange(), myc@@myexpts([lc(orange)], [pc(red)]))$
*/
/*
* Local Variables:
* coding: utf-8-unix
* End:
*/