Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file: -- http://angg.twu.net/LUA/Lazy3.lua.html -- http://angg.twu.net/LUA/Lazy3.lua -- (find-angg "LUA/Lazy3.lua") -- Author: Eduardo Ochs <eduardoochs@gmail.com> -- -- (defun a () (interactive) (find-angg "LUA/Pict2e1.lua")) -- (defun b () (interactive) (find-angg "LUA/Pict2e1-1.lua")) -- (defun ab () (interactive) (find-2b '(a) '(b))) -- (defun et () (interactive) (find-angg "LATEX/2022pict2e.tex")) -- (defun eb () (interactive) (find-angg "LATEX/2022pict2e-body.tex")) -- (defun ao () (interactive) (find-angg "LATEX/2022pict2e.lua")) -- (defun v () (interactive) (find-pdftools-page "~/LATEX/2022pict2e.pdf")) -- (defun tb () (interactive) (find-ebuffer (eepitch-target-buffer))) -- (defun etv () (interactive) (find-wset "13o2_o_o" '(tb) '(v))) -- (setenv "PICT2ELUADIR" "~/LATEX/") -- -- (defun l2 () (interactive) (find-angg "LUA/Lazy2.lua")) -- (defun l3 () (interactive) (find-angg "LUA/Lazy3.lua")) -- (defun l4 () (interactive) (find-angg "LUA/Lazy4.lua")) -- «.basic-ops» (to "basic-ops") -- «.Ang» (to "Ang") -- «.Ang-tests» (to "Ang-tests") -- «.underline-eval» (to "underline-eval") -- «.2022-1-C2-P1-fp» (to "2022-1-C2-P1-fp") require "Lazy2" -- (find-angg "LUA/Lazy2.lua") require "Pict2e1" -- (find-angg "LUA/Pict2e1.lua") -- (find-angg "LUA/Pict2e1.lua" "Pict2e-methods" "bshow =") -- (find-angg "LUA/Lazy2.lua" "Lazy-topict") Lazy.__index.texpreamble = [[ \def\und#1#2{\underbrace{ #1}_{foo: #2}} \def\und#1#2{\underbrace{\mathstrut #1}_{#2}} ]] -- «basic-ops» (to ".basic-ops") -- (find-angg "LUA/C2Subst1.lua" "basic-ops") -- funs " ddx eq mul f g fp gp und " vars " x y t " fun("mul", "<1> <2>") fun("Mul", "<1> ยท <2>") fun("und", "\\und{<1>}{<2>}") fun("uu", "\\und{<1>}{}") fun("ddx", "\\frac{d}{dx} <1>") fun("ddvar", "\\frac{d}{d<1>} <2>") fun("plus", "<1> + <2>") fun("minus", "<1> - <2>") fun("eq", "<1> = <2>") fun("exp", "e^{<1>}") fun("pot", "{<1>}^{<2>}") fun("frac", "\\frac{<1>}{<2>}") fun("sqrt", "\\sqrt{<1>}") fun("paren", "(<1>)") fun("Paren", "\\left(<1>\\right)") fun("sen", "\\sen <1>") fun("sin", "\\sin <1>") fun("cos", "\\cos <1>") fun("tan", "\\tan <1>") fun("ln", "\\ln <1>") fun("lnp", "\\ln' <1>") fun("mod", "|<1>|") fun("uminus", "-<1>") fun("sen", "\\sen(<1>)") fun("sin", "\\sin(<1>)") fun("cos", "\\cos(<1>)") fun("tan", "\\tan(<1>)") funs"f g h F G H" vars"a b c t u x y z w" fun("fp", "f'(<1>)") fun("gp", "g'(<1>)") fun("Intx", "\\D \\Intx{<1>}{<2>}{<3>}") fun("Intu", "\\D \\Intu{<1>}{<2>}{<3>}") fun("difx", "\\difx{<1>}{<2>}{<3>}") fun("difu", "\\difu{<1>}{<2>}{<3>}") fun("ddvar", "\\frac{d}{d<1>}<2>") fun("intvar", "\\intvar{<1>}{<2>}") fun("Intvar", "\\D \\Intvar{<1>}{<2>}{<3>}{<4>}") fun("difvar", "\\difvar{<1>}{<2>}{<3>}{<4>}") fun("intx", "\\D \\intx{<1>}") fun("intu", "\\D \\intu{<1>}") fun("inty", "\\D \\inty{<1>}") fun("substline", " <1> := <2> ") -- expr1 = "\\Expr" -- x0 = "x_0" -- «Ang» (to ".Ang") -- (find-angg "LUA/Lazy2.lua" "Lazy-topict") -- Superseded by: (find-angg "LUA/Lazy2.lua" "LazyAng-tests") Ang = Class { type = "Ang", from = function (bigstr) local f = function (s) return totex(expr(s)) end local newstr = bigstr:gsub("<(.-)>", f) return Ang {bigstr=bigstr, newstr=newstr} end, __index = { show = function (ang) return Show.try(ang.newstr) end, sa = function (ang, name) return PictList({ ang.newstr }):sa(name) end, }, } -- «Ang-tests» (to ".Ang-tests") --[==[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Lazy3.lua" ang = Ang.from([[ Hello! $<RC>$ ]]) = ang:show() * (etv) --]==] -- (find-angg "LUA/Lazy2.lua" "Subst-tests") vars " a b c u " RC = eq( ddx(f(g(x))), Mul(fp(g(x)), gp(x)) ) MV2 = eq( Intvar(x, a, b, Mul(fp(g(x)), gp(x))), Intvar(u, g(a), g(b), fp(u)) ) -- (c2m221p1p 3 "fracoes-parciais") -- (c2m221p1a "fracoes-parciais") FP1 = eq(intx(frac(1,x)), ln(mod(x))) FP2 = eq(intx(frac(1,plus(x,a))), intx(frac(1,u))) FP234 = eq(intx(frac(1,plus(x,a))), ln(mod(plus(x,a)))) S1 = Subst.from [[ if isapp(f) then return sen(Sarg()) end if isapp(fp) then return cos(Sarg()) end if isapp(g) then return mul(42,Sarg()) end if isapp(gp) then return 42 end if isvar(x) then return t end ]] define_SFPs = function () sn = SubstName.from("SFPa", "SFP _a", [[ if isapp(g) then return plus(x, a) end if isapp(gp) then return 1 end ]], [[ g(x) := x+a \\ g'(x) := 1 \\ ]]) sn:output() sn:eval("verbose") -- sn = SubstName.from("SFPb", "SFP _b", [[ if isapp(g) then return plus(x, a) end if isapp(gp) then return 1 end if isvar(a) then return b end if isvar(b) then return c end ]], [[ g(x) := x+a \\ g'(x) := 1 \\ a := b \\ b := c \\ ]]) sn:output() sn:eval("verbose") -- sn = SubstName.from("SFPc", "SFP _c", [[ if isapp(g) then return plus(Sarg(), a) end if isapp(gp) then return 1 end if isapp(fp) then return frac(1, Sarg()) end if isvar(a) then return b end if isvar(b) then return c end ]]) sn:output() sn:eval("verbose") end --[==[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Lazy3.lua" out = "" output = function (str) out = out..str.."\n"; print(str) end define_SFPs() = FP1:tree() = FP1:show() = Paren(FP234) = Paren(FP234):totex() ang = Ang.from([[ <out> $\scalebox{0.6}{$\begin{array}{cl} & [MV2] = <Paren(MV2)> \\\relax & [FP1] = <Paren(FP1)> \\\relax & [FP2] = <Paren(FP2)> \\\relax & [FP234] = <Paren(FP234)> \\\\ \ga{[SFPa]} = \ga{[SFPa] big} & [MV2]<SFPa.s> = <Paren(SFPa(MV2))> \\\relax \ga{[SFPb]} = \ga{[SFPb] big} & [MV2]<SFPb.s> = <Paren(SFPb(MV2))> \\\relax \ga{[SFPc]} = \ga{[SFPc] big} & [MV2]<SFPc.s> = <Paren(SFPc(MV2))> \\\relax \end{array} $} $ ]]) = ang:show() = Show.log * (etv) * (etv) = FP2 = FP2:tree() = FP2:show() = RC = MV2 = MV2:show() * (etv) sn = SubstName.from("S1a", "S1 _a", [[ if isapp(g) then return plus(x, a) end if isapp(gp) then return 1 end -- if isvar(x) then return t end ]]) sn:output() sn:eval("verbose") = S1a(MV2) = S1a(MV2):tree() = S1a(MV2):show() * (etv) sn = SubstName.from("S1b", "S1 _b", [[ if isapp(g) then return plus(x, a) end if isapp(gp) then return 1 end if isvar(a) then return b end if isvar(b) then return c end ]]) sn:output() sn:eval("verbose") = S1b(MV2) = S1b(MV2):tree() = S1b(MV2):show() * (etv) sn = SubstName.from("S1c", "S1 _c", [[ if isapp(g) then return plus(Sarg(), a) end if isapp(gp) then return 1 end if isapp(fp) then return frac(1, Sarg()) end if isvar(a) then return b end if isvar(b) then return c end ]]) sn:output() sn:eval("verbose") = S1c(MV2) = S1c(MV2):tree() = S1c(MV2):show() * (etv) -- Debug: dofile "Repl1.lua" r = EdrxRepl.new() r:repl() = MV2 dg = dgis = dg = dg[7]:info() = dg[8]:info() = dg[9]:info() = dg[10]:info() = dg[10]:vs() = dg[10]:vs().arr = PPP(dg[10]:vs().arr) PPP(MV2) = MV2:tree() = und(x,y) = und(x,y):totex() = und(x,y):topictddpp() = und(x,y):show() -- = RC:show() = S1(RC):show() * (etv) = S1 = S1:code() = RC :totree() = S1(RC):totree() o = f(x,mul(g(22), x)) = o = o:totex() = o:topict() = o:topictddpp() = o:show() * (etv) --]==] -- «underline-eval» (to ".underline-eval") RCU = uu(eq(uu(ddvar(uu(x), uu(f(uu(g(uu(x))))))), uu(Mul(uu(fp(uu(g(uu(x))))), uu(gp(uu(x))))))) SUE_S = S1 SDELU = Subst.from [[ if isapp(uu) then return Sarg() end ]] SUE = Subst.from [[ if isapp(uu) then return und(Sarg(), SUE_S(SDELU(arg()))) end ]] --[==[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Lazy3.lua" = RCU:tree() = SDELU(RCU):tree() = S1(SDELU(RCU)):tree() = SUE(RCU):tree() = SDELU(RCU):show() = S1(SDELU(RCU)):show() * (etv) = RCU:show() = SUE(RCU):show() * (etv) --]==] -- «2022-1-C2-P1-fp» (to ".2022-1-C2-P1-fp") -- (c2m221p1p 3 "fracoes-parciais") -- (c2m221p1a "fracoes-parciais") --[==[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Lazy3.lua" vars " a b c u " = MV2 = MV2:show() * (etv) FP2 = eq(Intx(b,c,frac(1,plus(x,a))), Intu(plus(b,a),plus(c,a),frac(1,u))) = FP2 = FP2:tree() = FP2:totex() = FP2:show() * (etv) = Show.log --]==] -- Local Variables: -- coding: utf-8-unix -- End: