diff options
Diffstat (limited to 'src/algebra/functions.spad.pamphlet')
-rw-r--r-- | src/algebra/functions.spad.pamphlet | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/src/algebra/functions.spad.pamphlet b/src/algebra/functions.spad.pamphlet new file mode 100644 index 00000000..5dff2a13 --- /dev/null +++ b/src/algebra/functions.spad.pamphlet @@ -0,0 +1,120 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/algebra functions.spad} +\author{Brian Dupee} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{domain BFUNCT BasicFunctions} +<<domain BFUNCT BasicFunctions>>= +)abbrev domain BFUNCT BasicFunctions +++ Author: Brian Dupee +++ Date Created: August 1994 +++ Date Last Updated: April 1996 +++ Basic Operations: bfKeys, bfEntry +++ Description: A Domain which implements a table containing details of +++ points at which particular functions have evaluation problems. +DF ==> DoubleFloat +SDF ==> Stream DoubleFloat +RS ==> Record(zeros: SDF, ones: SDF, singularities: SDF) + +BasicFunctions(): E == I where + E ==> SetCategory with + bfKeys:() -> List Symbol + ++ bfKeys() returns the names of each function in the + ++ \axiomType{BasicFunctions} table + bfEntry:Symbol -> RS + ++ bfEntry(k) returns the entry in the \axiomType{BasicFunctions} table + ++ corresponding to \spad{k} + finiteAggregate + + I ==> add + + Rep := Table(Symbol,RS) + import Rep, SDF + + f(x:DF):DF == + positive?(x) => -x + -x+1 + + bf():$ == + import RS + dpi := pi()$DF + ndpi:SDF := map(#1*dpi,(z := generate(f,0))) -- [n pi for n in Z] + n1dpi:SDF := map(-(2*(#1)-1)*dpi/2,z) -- [(n+1) pi /2] + n2dpi:SDF := map(2*#1*dpi,z) -- [2 n pi for n in Z] + n3dpi:SDF := map(-(4*(#1)-1)*dpi/4,z) + n4dpi:SDF := map(-(4*(#1)-1)*dpi/2,z) + sinEntry:RS := [ndpi, n4dpi, empty()$SDF] + cosEntry:RS := [n1dpi, n2dpi, esdf := empty()$SDF] + tanEntry:RS := [ndpi, n3dpi, n1dpi] + asinEntry:RS := [construct([0$DF])$SDF, + construct([float(8414709848078965,-16,10)$DF]), esdf] + acosEntry:RS := [construct([1$DF])$SDF, + construct([float(54030230586813977,-17,10)$DF]), esdf] + atanEntry:RS := [construct([0$DF])$SDF, + construct([float(15574077246549023,-16,10)$DF]), esdf] + secEntry:RS := [esdf, n2dpi, n1dpi] + cscEntry:RS := [esdf, n4dpi, ndpi] + cotEntry:RS := [n1dpi, n3dpi, ndpi] + logEntry:RS := [construct([1$DF])$SDF,esdf, construct([0$DF])$SDF] + entryList:List(Record(key:Symbol,entry:RS)) := + [[sin@Symbol, sinEntry], [cos@Symbol, cosEntry], + [tan@Symbol, tanEntry], [sec@Symbol, secEntry], + [csc@Symbol, cscEntry], [cot@Symbol, cotEntry], + [asin@Symbol, asinEntry], [acos@Symbol, acosEntry], + [atan@Symbol, atanEntry], [log@Symbol, logEntry]] + construct(entryList)$Rep + + bfKeys():List Symbol == keys(bf())$Rep + + bfEntry(k:Symbol):RS == qelt(bf(),k)$Rep + +@ +\section{License} +<<license>>= +--Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. +--All rights reserved. +-- +--Redistribution and use in source and binary forms, with or without +--modification, are permitted provided that the following conditions are +--met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +--IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +--TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +--PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +--OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +--EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +--PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +--PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +--LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +--NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +--SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +@ +<<*>>= +<<license>> + +<<domain BFUNCT BasicFunctions>> +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} |