diff --git a/changelog b/changelog index c55104d..9912c1b 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,9 @@ +20140525 tpd src/axiom-website/patches.html 20140525.01.tpd.patch +20140525 tpd src/input/Makefile remove page.input +20140525 tpd src/input/page.input removed duplicate 20140524 tpd src/axiom-website/patches.html 20140524.02.tpd.patch -20140524 src/input/Makefile -20140524 src/input/inputform.input +20140524 tpd src/input/Makefile +20140524 tpd src/input/inputform.input 20140524 tpd src/axiom-website/patches.html 20140524.01.tpd.patch 20140524 tpd books/bookvolbib.pamphlet add gruntz, knuth refs 20140523 tpd src/axiom-website/patches.html 20140523.01.tpd.patch diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 8953dad..5ae93d5 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -4354,6 +4354,8 @@ book/*.txt email cleanup books/bookvolbib.pamphlet add gruntz, knuth refs 20140524.02.tpd.patch src/input/Makefile add inputform +20140525.01.tpd.patch +src/input/page.input removed diff --git a/src/input/Makefile.pamphlet b/src/input/Makefile.pamphlet index dbaa5ee..98205ac 100644 --- a/src/input/Makefile.pamphlet +++ b/src/input/Makefile.pamphlet @@ -351,7 +351,7 @@ REGRESSTESTS= ackermann.regress \ hyperell.regress ico.regress ideal.regress \ ifact.regress ifthenelse.regress i2e.regress \ infprod.regress intaf.regress intbypart.regress \ - intdeq.regress \ + inputform.regress intdeq.regress \ intef2.regress intef.regress intg0.regress intheory.regress \ intmix2.regress intmix.regress int.regress intrf.regress \ iprntpk.regress \ @@ -379,7 +379,7 @@ REGRESSTESTS= ackermann.regress \ opalg.regress operator.regress op.regress ovar.regress \ overload.regress padic.regress paff.regress paffexample.regress \ parabola.regress pascal1.regress pascal.regress \ - patch51.regress page.regress \ + patch51.regress \ patmatch.regress pat.regress perman.regress perm.regress \ pfaffian.regress pfr1.regress pfr.regress pmint.regress \ poly1.regress polycoer.regress poly.regress psgenfcn.regress \ diff --git a/src/input/page.input.pamphlet b/src/input/page.input.pamphlet deleted file mode 100644 index 5999bb5..0000000 --- a/src/input/page.input.pamphlet +++ /dev/null @@ -1,225 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\setlength{\textwidth}{400pt} -\begin{document} -\title{\$SPAD/src/input page.input} -\author{Timothy Daly} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -\begin{chunk}{license} ---Copyright The Numerical Algorithms Group Limited 1991. -\end{chunk} -\begin{chunk}{*} -)set break resume -)spool page.output -)set message test on -)set message auto off -)clear all - -\end{chunk} -\begin{verbatim} -On April 1, 2007 5:45 AM Gaby wrote: -> -> >> Why should InputForm be preferable over Expression T? -> >> -> ... -> > For me to answer your question it is important to understand -> > what Expression in Axiom really is. One way to do that is to -> > look at the internal representation. -> > -> > Rep:=Fraction SparseMultivariatePolynomial(T, Kernel %) -> > -> > So Expression is a mathematical domain of rational functions -> > (ratio of two polymonials) where the polynomial variables -> > are extended to kernels including various special functions. -> -> Sorry, I don't think I'm satisfied with an answer that has to -> look at the internal representation before explaining why I -> should not believe the interface. -> - -Of course you should believe the interface! There is no need to -look at the internal representation. I just thought it might be -easier since we are developers and are able to take a "white box" -view. But if you prefer that I express this only in terms of the -interface, please review the following Axiom session. - -Consider the three strings: -\end{verbatim} -\begin{chunk}{*} ---S 1 of 18 -a1:="(a/x)+(a/y)" ---R ---R (1) "(a/x)+(a/y)" ---R Type: String ---E 1 - ---S 2 of 18 -a2:="(a/x) + (a/y)" ---R ---R (2) "(a/x) + (a/y)" ---R Type: String ---E 2 - ---S 3 of 18 -a3:="(a*x+a*y)/(x*y)" ---R ---R (3) "(a*x+a*y)/(x*y)" ---R Type: String ---E 3 - -\end{chunk} -Of course as members of the Domain String these are all different. -\begin{chunk}{*} - ---S 4 of 18 -(a1=a2)::Boolean ---R ---R (4) false ---R Type: Boolean ---E 4 - ---S 5 of 18 -(a1=a3)::Boolean ---R ---R (5) false ---R Type: Boolean ---E 5 - ---S 6 of 18 -(a2=a3)::Boolean ---R ---R (6) false ---R Type: Boolean ---E 6 - -\end{chunk} -While as members of the Domain Expression Integer these are equal. -\begin{chunk}{*} ---S 7 of 18 -interpretString(a1."=".a2)::Boolean ---R ---R (7) true ---R Type: Boolean ---E 7 - ---S 8 of 18 -interpretString(a1."=".a3)::Boolean ---R ---R (8) true ---R Type: Boolean ---E 8 - ---S 9 of 18 -interpretString(a2."=".a3)::Boolean ---R ---R (9) true ---R Type: Boolean ---E 9 - -\end{chunk} -But when we evaluate them as symbolic expressions in the domain -InputForm: -\begin{chunk}{*} ---S 10 of 18 -x:INFORM:=x ---R ---R (10) x ---R Type: InputForm ---E 10 - ---S 11 of 18 -y:INFORM:=y ---R ---R (11) y ---R Type: InputForm ---E 11 - ---S 12 of 18 -a:INFORM:=a ---R ---R (12) a ---R Type: InputForm ---E 12 - -\end{chunk} -The first two are equal but the third is something different! -\begin{chunk}{*} ---S 13 of 18 -interpretString(a1."=".a2)::Boolean ---R ---R (13) true ---R Type: Boolean ---E 13 - ---S 14 of 18 -interpretString(a1."=".a3)::Boolean ---R ---R (14) false ---R Type: Boolean ---E 14 - ---S 15 of 18 -interpretString(a2."=".a3)::Boolean ---R ---R (15) false ---R Type: Boolean ---E 15 - -\end{chunk} -So equality of these ``algebraic'' objects in Expression Integer -is not the same as equality in a purely symbolic domain like -InputForm. - -In fact, after completing this exercise I realized that the -original Axiom developers actually did already anticipate the -need for an OutputForm for InputForm that is equivalent the -actual input to the Axiom interpreter. The function that I was -looking for is called 'expr' in the domain InputForm. -\begin{chunk}{*} ---S 16 of 18 -map(expr,map(interpretString,a1=a2)::Equation(INFORM)) ---R ---R a a a a ---R (16) - + -= - + - ---R x y x y ---R Type: Equation(OutputForm) ---E 16 - ---S 17 of 18 -map(expr,map(interpretString,a2=a3)::Equation(INFORM)) ---R ---R a a a x + a y ---R (17) - + -= --------- ---R x y x y ---R Type: Equation(OutputForm) ---E 17 - ---S 18 of 18 -map(expr,map(interpretString,a1=a3)::Equation(INFORM)) ---R ---R a a a x + a y ---R (18) - + -= --------- ---R x y x y ---R Type: Equation(OutputForm) ---E 18 -)spool -)lisp (bye) - -\end{chunk} -So once again as Tim Daly has said many times, the problem is -just that :( as usual ): there is not enough documentation. - -Regards, -Bill Page. -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} -