aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/functions.spad.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/algebra/functions.spad.pamphlet')
-rw-r--r--src/algebra/functions.spad.pamphlet120
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}