Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
/*
 * This file:
 *   https://anggtwu.net/MAXIMA/2026-dim-integrate.mac.html
 *   https://anggtwu.net/MAXIMA/2026-dim-integrate.mac
 *           (find-angg "MAXIMA/2026-dim-integrate.mac")
 * Author: Eduardo Ochs <eduardoochs@gmail.com>
 *
 * (defun l () (interactive) (find-angg "MAXIMA/2026-dim-integrate.lisp"))
 * (defun m () (interactive) (find-angg "MAXIMA/2026-dim-integrate.mac"))
 *
 * Used in:
 * (wld2026p 9 "calculo-2-e-horrivel")
 * (wld2026a   "calculo-2-e-horrivel")
 *
 * «.tests»	(to "tests")
 * «.figures»	(to "figures")
*/

load("~/MAXIMA/2025-emaxima.mac");
load("~/MAXIMA/2026-dim-integrate.lisp");
load("~/MAXIMA/2025-methods.mac");
display2d:true$

texput(fp, "f'");
texput(gp, "g'");

texput(sd0, sd0_tex);
sd0_tex(o) := format("\\setdepthto{0pt}{~a}", tex1(args(o)[1]));

makebare(M) := apply('barematrix, args(M));

sa_bigstr : "";
sa_addline("% Generated by:");
sa_addline("% (find-angg \"MAXIMA/2026-dim-integrate.mac\")");

defstruct(myintegrates(fu,gx,gpx,x_,u_,Fu));
myintegrates__du    (myi) := d *. myi@u_$
myintegrates__dx    (myi) := d *. myi@x_$
myintegrates__dudx  (myi) := _diff(myi@u_, myi@x_, 1)$
myintegrates__dudx  (myi) := myi@@du() /. myi@@dx()$
myintegrates__u_gx  (myi) := underbrace(myi@u_,myi@gx);
myintegrates__gx_u  (myi) := underbrace(myi@gx,myi@u_);
myintegrates__fgx   (myi) := subst([myi@u_=myi@gx],      myi@fu)$
myintegrates__fgx_u (myi) := subst([myi@u_=myi@@gx_u()], myi@fu)$
myintegrates__fu_gx (myi) := subst([myi@u_=myi@@u_gx()], myi@fu)$
myintegrates__gpx_u (myi) := underbrace(myi@gpx, myi@@dudx());
myintegrates__gpx_du(myi) := underbrace(myi@@gpx_u() *. myi@@dx(), myi@@du());
myintegrates__L     (myi) := myintegrate(myi@@fgx() *. myi@gpx, myi@x_);
myintegrates__L_u   (myi) := myintegrate(myi@@fgx_u() *. myi@@gpx_du());
myintegrates__du_x  (myi) := underbrace(myi@@du(), myi@@dudx() *. myi@@dx());
myintegrates__du_gpx(myi) := underbrace(myi@@du_x(), myi@gpx *. myi@@dx());
myintegrates__R     (myi) := myintegrate(myi@fu, myi@u_);
myintegrates__R_u   (myi) := myintegrate(myi@@fu_gx() *. myi@@du_gpx());
myintegrates__LR    (myi) := myi@@L  () = myi@@R  ();
myintegrates__LR_u  (myi) := myi@@L_u() = myi@@R_u();
myintegrates__FGx   (myi) := subst([myi@u_=myi@gx], myi@Fu);
myintegrates__LM    (myi) := myi@@FGx();
myintegrates__RM    (myi) := myi@Fu;
myintegrates__LRI3  (myi) := myi@@L() =. myi@@LM() =. myi@@RM() =. myi@@R();
myintegrates__LR6   (myi) := align_eqs(myi@@LR(),              myi@@LRI3());
myintegrates__LR8   (myi) := align_eqs(myi@@LR(), myi@@LR_u(), myi@@LRI3());

myintegrates__xa    (myi) := myi@x_ = a;
myintegrates__xb    (myi) := myi@x_ = b;
myintegrates__ga    (myi) := subst([myi@x_=a], myi@gx)$
myintegrates__gb    (myi) := subst([myi@x_=b], myi@gx)$
myintegrates__Fga   (myi) := subst([myi@u_=myi@@ga()], myi@Fu)$
myintegrates__Fgb   (myi) := subst([myi@u_=myi@@gb()], myi@Fu)$
myintegrates__MMD   (myi) := myi@@Fgb() -. myi@@Fga();
myintegrates__uga   (myi) := myi@u_ = myi@@ga()$
myintegrates__ugb   (myi) := myi@u_ = myi@@gb()$
myintegrates__LMD   (myi) := _At2(myi@@LM(), myi@x_, a, b);
myintegrates__RMD   (myi) := _At2(myi@@RM(), myi@u_, myi@@ga(), myi@@gb());

myintegrates__LD    (myi) := myintegrate(myi@@fgx() *. myi@gpx, myi@x_, myi@@xa(),  myi@@xb());
myintegrates__RD    (myi) := myintegrate(myi@fu,                myi@u_, myi@@uga(), myi@@ugb());
myintegrates__LRD4  (myi) := myi@@LD() =. myi@@LMD() =. myi@@MMD() =. myi@@RMD() =. myi@@RD();
myintegrates__LR12  (myi) := align_eqs(myi@@LR(), myi@@LR_u(), myi@@LRI3(), myi@@LRD4());



/*
** «tests»  (to ".tests")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
** (find-angg "MAXIMA/2025-emaxima+.mac")
** (find-angg "MAXIMA/2025-methods.mac" "poly-tests")
** (find-angg "MAXIMA/2025-1-s.mac" "MV-tests")

load("~/MAXIMA/2026-dim-integrate.mac");

mm : new(myintegrates(cos(u), x^2, 2*x, x, u, F(u)));
mm : new(myintegrates(cos(u), x^2, 2*x, x, u, sin(u)));
mm@gx;
mm@x_;
mm@u_;
mm@@dudx();
mm@@fgx();
mm@@u_gx();
mm@@gx_u();
mm@@fgx_u();
mm@@fu_gx();
mm@@gpx_u();
mm@@gpx_du();
mm@@L();
mm@@L_u();
mm@@R();
mm@@du_x();
mm@@du_gpx();
mm@@R_u();
mm@@LR();
mm@@LR_u();
mm@@LR4();
mm@@LR6();
o8 : mm@@LR8();
o8 : makebare(mm@@LR8());

mm@@xa();
mm@@xb();
mm@@uga();
mm@@ugb();
mm@@Fga();
mm@@Fgb();
mm@@LMD();
mm@@RMD();
mm@@LRD4();
mm@@LR12();
o12 : mm@@LR12();
o12 : makebare(mm@@LR12());

mma : new(myintegrates(fp(u), g(x), gp(x), x, u, f(u)));
o12a : mma@@LR12();
o12a : makebare(mma@@LR12());

sa("LR8", o8);
sa("LR12", o12);
sa("LR12 abstract", o12a);

sa_bigstr;
sa_bigstr_writeto("/tmp/o");

*/





/*
** «figures»  (to ".figures")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load("2026-dim-integrate.mac");



mms : new(myintegrates(cos(u), x^2, 2*x, x, u, sin(u)));
mma : new(myintegrates(fp(u), g(x), gp(x), x, u, f(u)));
o1  : makebare(mms@@LR12());
o2  : makebare(mma@@LR12());
dpart(o2, 2,1,1,1,1);
dpart(o2, 2,3,1,1,1);

mms@@LR();
mms@@LR6();

o3 : copy(o2);
o3 : substpart(sd0(piece), o3, 2,1,1,1,1);
o3 : substpart(sd0(piece), o3, 2,3,1,1,1);

sa("MV sin(x^2)", o1);
sa("MV abstract", o3);

myintegrates__L_u   (myi) := myintegrate(myi@@fgx_u() *. myi@@gpx_du());
myintegrates__du_x  (myi) := underbrace(myi@@du(), myi@@dudx() *. myi@@dx());
myintegrates__du_gpx(myi) := underbrace(myi@@du_x(), myi@gpx *. myi@@dx());
myintegrates__R     (myi) := myintegrate(myi@fu, myi@u_);
myintegrates__R_u   (myi) := myintegrate(myi@@fu_gx() *. myi@@du_gpx());
myintegrates__LR    (myi) := myi@@L  () = myi@@R  ();
myintegrates__LR_u  (myi) := myi@@L_u() = myi@@R_u();

sa_bigstr;
sa_bigstr_writeto("/tmp/o");

*/