Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
/*
 * This file:
 *   http://anggtwu.net/MAXIMA/2025-1-s.mac.html
 *   http://anggtwu.net/MAXIMA/2025-1-s.mac
 *          (find-angg "MAXIMA/2025-1-s.mac")
 * Author: Eduardo Ochs <eduardoochs@gmail.com>
 *
 * This file defines the infix substitution operator "_s_".
 * See: (c2m242introp 6 "manga")
 *      (c2m242introa   "manga")
 *      http://anggtwu.net/LATEX/2024-2-C2-intro.pdf#page=6
 *
 * (find-es "maxima" "operator-subst")
 * (find-lisptree "lisptree.mac" "lisptree0")
 * (find-maximanode "psubst")
 * (find-maximanode "sublis")
 * (find-telegachat  "-1002074960141#3276" "eu acabei de melhorar")
 * (find-telegachatm "-1002074960141#3276" "eu acabei de melhorar")
 *
 * «.load»		(to "load")
 * «.core»		(to "core")
 * «.core-tests»	(to "core-tests")
 * «.Aipim»		(to "Aipim")
 * «.DefDeriv»		(to "DefDeriv")
 * «.TFC2»		(to "TFC2")
 * «.TFC2-tests»	(to "TFC2-tests")
 * «.S_f_g»		(to "S_f_g")
 * «.S_f_g-tests»	(to "S_f_g-tests")
 * «.MV»		(to "MV")
 * «.MV-tests»		(to "MV-tests")
 * «.DFI»		(to "DFI")
 * «.DFI-tests»		(to "DFI-tests")
 * «.EDOVS»		(to "EDOVS")
 * «.EDOVS-tests»	(to "EDOVS-tests")
 * «.EDOLCC»		(to "EDOLCC")
 * «.EDOLCC-tests»	(to "EDOLCC-tests")
 * «.E5»		(to "E5")
 * «.E5-tests»		(to "E5-tests")
*/

/* «load»  (to ".load")
 * Based on: (find-myqdraw "myqdraw3.mac" "load")
 * See: (find-fline "~/MAXIMA/lazynouns.lisp")
 *      (find-fline "~/MAXIMA/dim-antideriv.lisp")
*/
__s_dir : pathname_directory(load_pathname);
load(concat(__s_dir, "lazynouns.lisp"));
load(concat(__s_dir, "dim-antideriv.lisp"));


/* «core»  (to ".core")
*/
__s_getfxye(fxye) := block([fxy,e,f,xy],
  fxy : lhs (fxye),
  f   : op  (fxy),
  xy  : args(fxy),
  e   : rhs (fxye),
  [f,xy,e]);

__s_unlambda1_(fxye) := block([f,xy,e],
  [f,xy,e] : __s_getfxye(fxye),
  buildq([f,xy,e], f=lambda(xy,e)));

__s_unlambda1(oe) :=
  if   atom(lhs(oe))
  then (lhs(oe)=rhs(oe))
  else __s_unlambda1_(oe);

__s_flatten(oes)   := flatten([oes]);
__s_prep   (oes)   := map('__s_unlambda1, __s_flatten(oes));
__s_Vprep  (oes)   := transpose(matrix(__s_prep(oes)));

__s_V1     (oe)    := block([a,b], a:lhs(oe), b:rhs(oe), buildq([a,b], a:=b));
__s_V      (oes)   := transpose(matrix(map('__s_V1, __s_flatten(oes))));
    V      (oes)   := __s_V(oes);

      "_s_"   (o,oes) := psubst(__s_prep(oes), o);
      "_ss_"  (o,oes) := (o *. V(oes));
      "_sss_" (o,oes) := (o *. V(oes)) = "_s_"(o, oes);
infix("_s_"  ,99,101);
infix("_ss_" ,99,101);
infix("_sss_",99,101);


/* «core-tests»  (to ".core-tests")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-1-s.mac");

"Low-level functions:"$
__s_getfxye   (g(a,b)=c);
__s_unlambda1_(g(a,b)=c);
__s_unlambda1 (g(a,b)=c);
__s_unlambda1 (a=42);
__s_V1        (g(a,b)=c);
__s_V1        (a=42);

S1 : [f(x)=x^2+x^3];
S2 : [a=b,b=a];
S3 : [S2, S1];
__s_prep (S3);
__s_Vprep(S3);
__s_V    (S3);
    V    (S3);

f(a)/b _s_   S2;
f(a)/b _ss_  S2;
f(a)/b _sss_ S2;
f(a)/b _sss_ S3;

*/



/* «Aipim»  (to ".Aipim")
*/
Aipim  : (sqrt(a^2 + b^2) = a + b);
Aipim2 : (sqrt(a^2 - b^2) = a - b);
Aipim3 : matrix([y, "=", sqrt(a^2 - x^2) + c],
                ["","=",      a   - x    + c]);

/*
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-1-s.mac");
Aipim2 _sss_ [a="5",b= "4"]; 
Aipim2 _sss_ [a= 5 ,b=  4 ]; 
Aipim3 _sss_ [a="5",c="-2"]; 
Aipim3 _sss_ [a= 5 ,c= -2 ]; 
Aipim3 _sss_ [a= 5 ,c= -2, x=4 ]; 
Aipim3 _sss_ [a= 5 ,c= -2, x=4, y=1]; 

*/



/* «DefDeriv»  (to ".DefDeriv")
*/
RC     :            (_diff(f(g(x)),x,1)     =   fp(g(x)) *. gp(x));
RCV    : matrix(["", _diff(f(g(x)),x,1)], ["=", fp(g(x)) *. gp(x)]);
RCL    :             _diff(f(g(x)),x,1);
II     : (_integrate(Fp(x), x) = F(x));

DefAt     : 'at(f(x),x=a) = f(a);
DefDeriv  : 'at(_diff(f(x),x,1),x=a) = 'limit((f(a+eps)-f(a))/eps,eps,0);
DefDeriv2 : 'at(_diff(f(x),x,1),x=a) = 'limit((f(x)-f(a))/(x-a),x,a);

/*
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-1-s.mac");

S1 : [f (x) = sin(x),
      fp(x) = cos(x),
      g (x) = 42*x,
      gp(x) = 42];

RCV _sss_ S1;
RC _ss_ S1;
RC _s_  S1;
RC _s_  S1 _s_ [x = t];

add2(S) := [S, fp(x)=diff(f(x) _s_ S, x),
               gp(x)=diff(g(x) _s_ S, x)];

RCL _sss_      [f(x)=sin(x)];
RCL _sss_      [f(x)=sin(x), g(x)=x^2];
RCV _sss_ add2([f(x)=sin(x), g(x)=x^2]);

*/


/* «TFC2»  (to ".TFC2")
 * See: (find-fline "~/MAXIMA/antideriv.lisp")
 *      (c2m251exsubstp 9 "uma-integral")
 *      (c2m251exsubsta   "uma-integral")
 * 2jT68: (c2m242exsubstp 9 "uma-integral")
 *        (c2m242exsubsta   "uma-integral")
*/
at2(fx,xa,xb) := matrix(["", "|", xb],
                        [fx, "|", ""],
                        ["", "|", xa]);
at2(fx,xa,xb) := block([x:lhs(xa), a:rhs(xa), b:rhs(xb)],
                       antideriv(fx, x, a, b));

DefDif : (at2(F(x),x=a,x=b) = F(b)-F(a));
TFC2   : ('integrate(Fp(x), x, x=a, x=b) = at2(F(x),x=a,x=b));
TFC2   : (_integrate(Fp(x), x, x=a, x=b) = at2(F(x),x=a,x=b));

/* «TFC2-tests»  (to ".TFC2-tests")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-1-s.mac");
DefDif;
TFC2;
TFC2 _s_ [F(x)=x^3, Fp(x)=3*x^2];

*/


/* «S_f_g»  (to ".S_f_g")
*/
S_gx    (gx)     := [g(x)=gx, gp(x)=diff(gx,x)];
S_gx_fu (gx,fu)  := [g(x)=gx, gp(x)=diff(gx,x),
                     f(u)=fu, fp(u)=diff(fu,u)];
S_gx_fpu(gx,fpu) := [g(x)=gx, gp(x)=diff(gx,x),
                              fp(u)=fpu];

/* «S_f_g-tests»  (to ".S_f_g-tests")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-1-s.mac");

V([a=aa,b=bb]);
[V(S_gx    (x^2)),
 V(S_gx_fu (x^2, sin(u))),
 V(S_gx_fpu(x^2, cos(u)))];

add_gpx(S) := [S, gp(x) = diff(g(x) _s_ S, x)];
add_fpu(S) := [S, fp(u) = diff(f(u) _s_ S, u)];
add_gpx_fpu(S) := add_fpu(add_gpx(S));

S : [f(u)=sin(u), g(x)=x^2];
[V(S), V(add_gpx(S)), V(add_gpx_fpu(S))];

*/



/* «MV»  (to ".MV")
 * 2jT87: (c2m242dip 7 "MVDs-e-MVIs-color")
 *        (c2m242dia   "MVDs-e-MVIs-color")
*/
MVD1 : ('integrate(fp(g(x)) *. gp(x), x,x=a,x=b) = 'integrate(fp(u), u,u=g(a),u=g(b)));
MVD1 : (_integrate(fp(g(x)) *. gp(x), x,x=a,x=b) = _integrate(fp(u), u,u=g(a),u=g(b)));
MVI1 : ('integrate(fp(g(x)) *. gp(x), x)         = 'integrate(fp(u), u));
MVI1 : (_integrate(fp(g(x)) *. gp(x), x)         = _integrate(fp(u), u));

MVD4 : align_eqs([_integrate(fp(g(x)) *. gp(x), x,x=a,x=b),
                  at2(f(g(x)),x=a,x=b),
                  f(g(b)) - f(g(a)),
                  at2(f(u),u=g(a),u=g(b)),
                  _integrate(fp(u), u,u=g(a),u=g(b))]);

MVI3 : align_eqs([_integrate(fp(g(x)) *. gp(x), x),
                  f(g(x)),
                  f(u),
                  _integrate(fp(u), u)]);

MVs : matrix([MVI1, MVD1],
             [MVI3, MVD4]);

/* «MV-tests»  (to ".MV-tests")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-1-s.mac");
S4 : S_gx_fu (x^2, sin(u))$
S3 : S_gx_fpu(x^2,        cos(u))$
[V(S3), V(S4)];
MVI1;
MVI3;
MVD1;
MVD4;
MVI1 _s_ S3;
MVD4 _s_ S4;

linel : 110;
[MVD4, V(S4)];
MVD4 _s_ S4;


* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-1-s.mac");
S4 : S_gx_fu (sin(x), log(u)^4)$
S3 : S_gx_fpu(sin(x),          4*log(u)^3 / u)$
[V(S3), V(S4)];
MVI1 _s_ S3;
MVD4 _s_ S4;

*/












/* «DFI»  (to ".DFI")
 * 2jT97: (c2m242fpp 4 "1-sobre-x")
 *        (c2m242fpa   "1-sobre-x")
 * 2jT117: (c2m242dfip 3 "introducao")
 *         (c2m242dfia   "introducao")
*/
DFI6 : align_eqss([[f(g(x)), x],
                   [_diff(f(g(x)),x), _diff(x,x), 1],
                   [_diff(f(g(x)),x), fp(g(x)) *. gp(x)],
                   [fp(g(x)) *. gp(x), 1],
                   [gp(x), 1/fp(g(x))]]);

DFI2 : align_eqss([[f(g(x)), x],
                   [gp(x), 1/fp(g(x))]]);

/* «DFI-tests»  (to ".DFI-tests")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-1-s.mac");
linel : 110;

Sg : [g(x)=Log(x), gp(x)=Logp(x)];
Sf : [f(x)=Exp(x), fp(x)=Expp(x)];

DFI6;
DFI6 _s_ Sg;
DFI6 _s_ Sg _s_ Sf;
DFI2;
DFI2 _s_ Sg _s_ Sf;
DFI2 _sss_ [Sg,Sf];

*/



/* «EDOVS»  (to ".EDOVS")
 * (find-angg "MAXIMA/2024-2-C2-EDOVS.mac")
*/
EDOVS_M : matrix(
  [       _diff(y,x,1), "=",       g(x) /. h(y)  ],
  [        h(y)*del(x), "=",        g(x)*del(x)  ],
  [ _integrate(h(y),y), "=", _integrate(g(x),x)  ],
  [             "||",    "",             "||"    ],
  [         H(y) +. C1, "=",         G(x) +. C2  ],
  [         H(y),       "=",         G(x) +. C3  ],
  [    Hinv(H(y)),      "=",    Hinv(G(x) +. C3) ],
  [          "||",       "",                 ""  ],
  [           y,         "",                 ""  ])$

EDOVS_edo : 'diff(y,x)   =           g(x) / h(y);
EDOVS_imp : H(y)         =           G(x) +  C3;
EDOVS_exp :   y          =      Hinv(G(x) +  C3);
EDOVS_f   :                     Hinv(G(x) +  C3);

/* «EDOVS-tests»  (to ".EDOVS-tests")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-1-s.mac");
linel : 110;
S4  : [g(x) = -2*x,     h(y) = 2*y,
       G(x) = -x^2,     H(y) = y^2]$
S5p : [S4,           Hinv(y) =  sqrt(y)]$
S5n : [S4,           Hinv(y) = -sqrt(y)]$

[V(S4), V(S5p), V(S5n)];

[EDOVS_M,           EDOVS_M _s_ S4];
[EDOVS_M   _s_ S5p, EDOVS_M _s_ S5n];
 EDOVS_edo _s_ S5p;
 EDOVS_imp _s_ S5p;
 EDOVS_exp _s_ S5p;
 EDOVS_f   _s_ S5p;

edo   : EDOVS_edo _s_ S4;
sol0  : ode2(edo,y,x);
sols0 : solve(sol0, y);
s0    : C3 = -2*%c;
s1    : solve(s0, %c);
sols1 : subst(s1, sols0);

define(fp(x), EDOVS_f _s_ S5p);
define(fn(x), EDOVS_f _s_ S5n);

P1  : [x=3,y=4];
eq1 : subst(P1, y=fp(x));
eq2 : solve(eq1, C3);
define(fp_P1(x), subst(eq2, fp(x)));
subst(P1, y=fp_P1(x));

P2  : [x=3,y=-4];
eq1 : subst(P2, y=fn(x));
eq2 : solve(eq1, C3);
define(fn_P2(x), subst(eq2, fn(x)));
subst(P1, y=fn_P2(x));

*/



/* «EDOLCC»  (to ".EDOLCC")
*/
EDOLCC : matrix(
  [  "f''" +. (-a-b)*."f'" +. (a*b) * f, "=", 0],
  [ D^2*.f +. (-a-b)*.D*.f +. (a*b) * f, "=", 0],
  [(D^2    +. (-a-b)*.D    +. (a*b))*.f, "=", 0],
  [(D-a)*.(D-b)*.f,                      "=", 0],
  [(D-a)*.(D-b)*.exp(b*x),               "=", 0],
  [(D-a)*.(D-b)*.exp(a*x),               "=", 0]);

EDOLCC_edo : 'diff(y,x,2) + (-a-b)*'diff(y,x) + a*b*y = 0;


/* «EDOLCC-tests»  (to ".EDOLCC-tests")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-1-s.mac");
SR : [a=2, b=-3];
SC : [a=2+3*%i, b=2-3*%i];
       EDOLCC;
       EDOLCC _s_ SR;
expand(EDOLCC _s_ SC);

edo : EDOLCC_edo _s_ SR;
sol : ode2(edo,y,x);

edo : EDOLCC_edo _s_ SC;
sol : ode2(edo,y,x);

*/





/* «E5»  (to ".E5")
 * (find-angg "MAXIMA/2025-1-exact.mac")
 * (c2m251edosexatasp 3 "metodo-e-exemplo")
 * (c2m251edosexatasa   "metodo-e-exemplo")
*/
E5 : matrix(
  [d *. z,       "=", z_x *. dx +. z_y *. dy          , "=", 0],
  [_diff(z,x,1), "=", z_x       +. z_y *. _diff(y,x,1), "=", 0],
  [z,            "=", C                               , "", ""]);

E5_edo : z_x + z_y*'diff(y,x) = 0;
E5_imp : z = C;

/* «E5-tests»  (to ".E5-tests")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2025-1-s.mac");
S1 : [z=x^2+y^2, z_x=2*x, z_y=2*y];
E5;
       E5     _s_ S1;
edo  : E5_edo _s_ S1;
imp  : E5_imp _s_ S1;
imp2 : ode2(edo,y,x);
solve(imp, y);
solve(imp2,y);
  
*/




























/*
 * Local Variables:
 * coding:  utf-8-unix
 * End:
*/