diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet index e685996..ad36c9b 100644 --- a/books/bookvol10.3.pamphlet +++ b/books/bookvol10.3.pamphlet @@ -97007,6 +97007,22 @@ PermutationGroup(S:SetCategory): public == private where \end{chunk} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain HACKPI Pi} +What is the purpose of the HACKPI domain? + +HACKPI is a hack provided for the benefit of the axiom interpreter. +As a mathematical type, it is the simple transcendental extension +Q(\pi) of the rational numbers. This type allows interactive users +to use the name '%pi' without a type both where a numerical value is expected +[ as in draw(sin x,x=-%pi..%pi) ] or when the exact symbolic value is meant. +The interpreter defaults a typeless %pi to HACKPI and then uses the various +conversions to cast it further as required by the context. + +One could argue that it is unfair to single %pi out from other constants, +but it occurs frequently enough in school examples (specially for graphs) +so it was worth a special hack. In a non-interactive environment (library), +HACKPI would not exist. + +(Manuel Bronstein) \begin{chunk}{Pi.input} )set break resume diff --git a/books/bookvol4.pamphlet b/books/bookvol4.pamphlet index c0f199d..8f8a5bc 100644 --- a/books/bookvol4.pamphlet +++ b/books/bookvol4.pamphlet @@ -331,6 +331,23 @@ November 10, 2003 ((iHy)) \eject \pagenumbering{arabic} \setcounter{chapter}{0} % Chapter 1 +\section{What is the purpose of the HACKPI domain?} + +HACKPI is a hack provided for the benefit of the axiom interpreter. +As a mathematical type, it is the simple transcendental extension +Q(\pi) of the rational numbers. This type allows interactive users +to use the name '%pi' without a type both where a numerical value is expected +[ as in draw(sin x,x=-%pi..%pi) ] or when the exact symbolic value is meant. +The interpreter defaults a typeless %pi to HACKPI and then uses the various +conversions to cast it further as required by the context. + +One could argue that it is unfair to single %pi out from other constants, +but it occurs frequently enough in school examples (specially for graphs) +so it was worth a special hack. In a non-interactive environment (library), +HACKPI would not exist. + +(Manuel Bronstein) + \section{How Axiom Builds} \subsection{The environment variables} Axiom uses a tree of Makefiles to build the system. Each Makefile @@ -408,6 +425,12 @@ XLIB=/usr/X11R6/lib ZIPS=/research/test/zips \end{verbatim} +\section{The runtime structure of Axiom} +\begin{center} +\includegraphics{architecture.eps}\\ +{\bf Runtime Structure} +\end{center} + \subsection{The build step} This shows the steps taken to build Axiom in the sequence they happen. Each level of indentation is another level of Makefile being executed. diff --git a/changelog b/changelog index cd4c232..c61ebae 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20140613 tpd src/axiom-website/patches.html 20140613.03.tpd.patch +20130613 tpd books/bookvol4,vol10.3 What is the purpose of the HACKPI domain? 20140613 tpd src/axiom-website/patches.html 20140613.02.tpd.patch 20140613 tpd books/ProvingAxiomCorrect state the problem 20140613 tpd src/axiom-website/patches.html 20140613.01.tpd.patch diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index ec59716..49808ea 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -4424,6 +4424,8 @@ books/bookvolbib add Proving Axiom Correct section, Bert04 books/ProvingAxiomCorrect created 20140613.02.tpd.patch books/ProvingAxiomCorrect state the problem +20140613.03.tpd.patch +books/bookvol4,vol10.3 What is the purpose of the HACKPI domain?