Artifact af752be12376e001a9d18313ca14f913264910235786faefab7212925d57974d:
- Executable file
r37/packages/rtrace/rtrace.rlg
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 5505) [annotate] [blame] [check-ins using] [more...]
- Executable file
r38/packages/rtrace/rtrace.rlg
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 5505) [annotate] [blame] [check-ins using]
REDUCE Development Version, Mon Dec 21 14:11:25 1998 ... % rtrace.tst -- Test portable REDUCE tracing % Author: Francis J. Wright, 13 July 1998 symbolic procedure test(a, b); begin scalar c, d; d := c := {a, b}; return c end$ rtr test; (test) getd 'test; (expr lambda (a b) (run!-rtraced!-procedure (quote test) (quote (a b)) (list a b ))) prop 'test; ((rtraced!-procedure expr lambda (a b) (prog (c d) (setq d (setq c (list a b))) ( return c))) (number!-of!-args . 2)) test('a, 'b); Enter (1) test a: a$ b: b$ Leave (1) test = [a,b]$ (a b) rtrst test; *** Trace mode of test changed. (test) getd 'test; (expr lambda (a b) (run!-rtraced!-procedure (quote test) (quote (a b)) (list a b ))) prop 'test; ((rtraced!-setq . t) (rtraced!-procedure expr lambda (a b) (prog (c d) ( rtraced!-setq d (rtraced!-setq c (list a b))) (return c))) (number!-of!-args . 2 )) test('a, 'b); Enter (1) test a: a$ b: b$ d := c := [a,b]$ Leave (1) test = [a,b]$ (a b) unrtr test; (test) getd 'test; (expr lambda (a b) (prog (c d) (setq d (setq c (list a b))) (return c))) prop 'test; ((number!-of!-args . 2)) test('a, 'b); (a b) algebraic procedure test(a, b); begin scalar c, d; d := c := {a, b}; return c end$ +++ test redefined rtr test; (test) getd 'test; (expr lambda (a b) (run!-rtraced!-procedure (quote test) (quote (a b)) (list a b ))) prop 'test; ((rtraced!-procedure expr lambda (a b) (prog (c d) (setq d (setq c (aeval (list ( quote list) a b)))) (return (aeval c)))) (opfn . t) (number!-of!-args . 2)) test(a, b); Enter (1) test a: a$ b: b$ Leave (1) test = {a,b}$ {a,b} rtrst test; *** Trace mode of test changed. (test) getd 'test; (expr lambda (a b) (run!-rtraced!-procedure (quote test) (quote (a b)) (list a b ))) prop 'test; ((rtraced!-setq . t) (rtraced!-procedure expr lambda (a b) (prog (c d) ( rtraced!-setq d (rtraced!-setq c (aeval (list (quote list) a b)))) (return ( aeval c)))) (opfn . t) (number!-of!-args . 2)) test(a, b); Enter (1) test a: a$ b: b$ d := c := {a,b}$ Leave (1) test = {a,b}$ {a,b} unrtr test; (test) getd 'test; (expr lambda (a b) (prog (c d) (setq d (setq c (aeval (list (quote list) a b)))) (return (aeval c)))) prop 'test; ((number!-of!-args . 2) (opfn . t)) test(a, b); {a,b} algebraic procedure test(a, b); d := c := {a, b}$ +++ test redefined rtr test; (test) getd 'test; (expr lambda (a b) (run!-rtraced!-procedure (quote test) (quote (a b)) (list a b ))) prop 'test; ((rtraced!-procedure expr lambda (a b) (setk (quote d) (setk (quote c) (aeval ( list (quote list) a b))))) (number!-of!-args . 2) (opfn . t)) test(a, b); Enter (1) test a: a$ b: b$ Leave (1) test = {a,b}$ {a,b} rtrst test; *** Trace mode of test changed. (test) getd 'test; (expr lambda (a b) (run!-rtraced!-procedure (quote test) (quote (a b)) (list a b ))) prop 'test; ((rtraced!-setq . t) (rtraced!-procedure expr lambda (a b) (rtraced!-setk (quote d) (rtraced!-setk (quote c) (aeval (list (quote list) a b))))) (number!-of!-args . 2) (opfn . t)) test(a, b); Enter (1) test a: a$ b: b$ c := {a,b}$ d := {a,b}$ Leave (1) test = {a,b}$ {a,b} unrtr test; (test) getd 'test; (expr lambda (a b) (setk (quote d) (setk (quote c) (aeval (list (quote list) a b ))))) prop 'test; ((number!-of!-args . 2) (opfn . t)) test(a, b); {a,b} % Examples used in documentation (rtrace.tex): algebraic procedure power(x, n); if n = 0 then 1 else x*power(x, n-1)$ rtr power; (power) power(x+1, 2); Enter (1) power x: x + 1$ n: 2$ Enter (2) power x: x + 1$ n: 1$ Enter (3) power x: x + 1$ n: 0$ Leave (3) power = 1$ Leave (2) power = x + 1$ Leave (1) power = x**2 + 2*x + 1$ 2 x + 2*x + 1 off rtrace; power(x+1, 2); Enter (1) power x: (plus x 1) n: 2 Enter (2) power x: (plus x 1) n: 1 Enter (3) power x: (plus x 1) n: 0 Leave (3) power = 1 Leave (2) power = (!*sq ((((x . 1) . 1) . 1) . 1) t) Leave (1) power = (!*sq ((((x . 2) . 1) ((x . 1) . 2) . 1) . 1) t) 2 x + 2*x + 1 on rtrace; unrtr power; (power) rtr int; (simpint) unrtr int; (simpint) procedure fold u; for each x in u sum x$ rtrst fold; (fold) fold {z, z*y, y}; Enter (1) fold u: {z,y*z,y}$ x := [z,y*z,y]$ g0 := 0$ g0 := z$ x := [y*z,y]$ g0 := z*(y + 1)$ x := [y]$ g0 := y*z + y + z$ x := []$ Leave (1) fold = y*z + y + z$ y*z + y + z unrtrst fold; (fold) trigrules := {sin(~x)^2 => 1 - cos(x)^2}; 2 2 trigrules := {sin(~x) => 1 - cos(x) } let trigrules; trrl trigrules; 1 - sin(x)^2; Rule trigrules.1: sin(x)**2 => 1 - cos(x)**2$ 2 cos(x) untrrl trigrules; trrl sin; 1 - sin(x)^2; Rule sin.23: sin(x)**2 => 1 - cos(x)**2$ 2 cos(x) untrrl sin; clearrules trigrules; trrlid trigrules; 1 - sin(x)^2 where trigrules; Rule trigrules.1: sin(x)**2 => 1 - cos(x)**2$ 2 cos(x) untrrlid trigrules; end; Time for test: 120 ms