diff options
author | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
commit | ab8cc85adde879fb963c94d15675783f2cf4b183 (patch) | |
tree | c202482327f474583b750b2c45dedfc4e4312b1d /src/algebra/c06.spad.pamphlet | |
download | open-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz |
Initial population.
Diffstat (limited to 'src/algebra/c06.spad.pamphlet')
-rw-r--r-- | src/algebra/c06.spad.pamphlet | 339 |
1 files changed, 339 insertions, 0 deletions
diff --git a/src/algebra/c06.spad.pamphlet b/src/algebra/c06.spad.pamphlet new file mode 100644 index 00000000..be504dde --- /dev/null +++ b/src/algebra/c06.spad.pamphlet @@ -0,0 +1,339 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/algebra c06.spad} +\author{Godfrey Nolan, Mike Dewar} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{package NAGC06 NagSeriesSummationPackage} +<<package NAGC06 NagSeriesSummationPackage>>= +)abbrev package NAGC06 NagSeriesSummationPackage +++ Author: Godfrey Nolan and Mike Dewar +++ Date Created: Jan 1994 +++ Date Last Updated: Thu May 12 17:44:30 1994 +++Description: +++This package uses the NAG Library to calculate the discrete Fourier +++transform of a sequence of real or complex data values, and +++applies it to calculate convolutions and correlations. +++See \downlink{Manual Page}{manpageXXc06}. + +NagSeriesSummationPackage(): Exports == Implementation where + S ==> Symbol + FOP ==> FortranOutputStackPackage + + Exports ==> with + c06eaf : (Integer,Matrix DoubleFloat,Integer) -> Result + ++ c06eaf(n,x,ifail) + ++ calculates the discrete Fourier transform of a sequence of + ++ n real data values. (No extra workspace required.) + ++ See \downlink{Manual Page}{manpageXXc06eaf}. + c06ebf : (Integer,Matrix DoubleFloat,Integer) -> Result + ++ c06ebf(n,x,ifail) + ++ calculates the discrete Fourier transform of a Hermitian + ++ sequence of n complex data values. (No extra workspace required.) + ++ See \downlink{Manual Page}{manpageXXc06ebf}. + c06ecf : (Integer,Matrix DoubleFloat,Matrix DoubleFloat,Integer) -> Result + ++ c06ecf(n,x,y,ifail) + ++ calculates the discrete Fourier transform of a sequence of + ++ n complex data values. (No extra workspace required.) + ++ See \downlink{Manual Page}{manpageXXc06ecf}. + c06ekf : (Integer,Integer,Matrix DoubleFloat,Matrix DoubleFloat,_ + Integer) -> Result + ++ c06ekf(job,n,x,y,ifail) + ++ calculates the circular convolution of two + ++ real vectors of period n. No extra workspace is required. + ++ See \downlink{Manual Page}{manpageXXc06ekf}. + c06fpf : (Integer,Integer,String,Matrix DoubleFloat,_ + Matrix DoubleFloat,Integer) -> Result + ++ c06fpf(m,n,init,x,trig,ifail) + ++ computes the discrete Fourier transforms of m sequences, + ++ each containing n real data values. This routine is designed to + ++ be particularly efficient on vector processors. + ++ See \downlink{Manual Page}{manpageXXc06fpf}. + c06fqf : (Integer,Integer,String,Matrix DoubleFloat,_ + Matrix DoubleFloat,Integer) -> Result + ++ c06fqf(m,n,init,x,trig,ifail) + ++ computes the discrete Fourier transforms of m Hermitian + ++ sequences, each containing n complex data values. This routine is + ++ designed to be particularly efficient on vector processors. + ++ See \downlink{Manual Page}{manpageXXc06fqf}. + c06frf : (Integer,Integer,String,Matrix DoubleFloat,_ + Matrix DoubleFloat,Matrix DoubleFloat,Integer) -> Result + ++ c06frf(m,n,init,x,y,trig,ifail) + ++ computes the discrete Fourier transforms of m sequences, + ++ each containing n complex data values. This routine is designed + ++ to be particularly efficient on vector processors. + ++ See \downlink{Manual Page}{manpageXXc06frf}. + c06fuf : (Integer,Integer,String,Matrix DoubleFloat,_ + Matrix DoubleFloat,Matrix DoubleFloat,Matrix DoubleFloat,Integer) -> Result + ++ c06fuf(m,n,init,x,y,trigm,trign,ifail) + ++ computes the two-dimensional discrete Fourier transform of + ++ a bivariate sequence of complex data values. This routine is + ++ designed to be particularly efficient on vector processors. + ++ See \downlink{Manual Page}{manpageXXc06fuf}. + c06gbf : (Integer,Matrix DoubleFloat,Integer) -> Result + ++ c06gbf(n,x,ifail) + ++ forms the complex conjugate of n + ++ data values. + ++ See \downlink{Manual Page}{manpageXXc06gbf}. + c06gcf : (Integer,Matrix DoubleFloat,Integer) -> Result + ++ c06gcf(n,y,ifail) + ++ forms the complex conjugate of a sequence of n data + ++ values. + ++ See \downlink{Manual Page}{manpageXXc06gcf}. + c06gqf : (Integer,Integer,Matrix DoubleFloat,Integer) -> Result + ++ c06gqf(m,n,x,ifail) + ++ forms the complex conjugates, + ++ each containing n data values. + ++ See \downlink{Manual Page}{manpageXXc06gqf}. + c06gsf : (Integer,Integer,Matrix DoubleFloat,Integer) -> Result + ++ c06gsf(m,n,x,ifail) + ++ takes m Hermitian sequences, each containing n data + ++ values, and forms the real and imaginary parts of the m + ++ corresponding complex sequences. + ++ See \downlink{Manual Page}{manpageXXc06gsf}. + Implementation ==> add + + import Lisp + import DoubleFloat + import Any + import Record + import Integer + import Matrix DoubleFloat + import Boolean + import NAGLinkSupportPackage + import AnyFunctions1(Integer) + import AnyFunctions1(String) + import AnyFunctions1(Matrix DoubleFloat) + + + c06eaf(nArg:Integer,xArg:Matrix DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "c06eaf",_ + ["n"::S,"ifail"::S,"x"::S]$Lisp,_ + []$Lisp,_ + [["double"::S,["x"::S,"n"::S]$Lisp]$Lisp_ + ,["integer"::S,"n"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["x"::S,"ifail"::S]$Lisp,_ + [([nArg::Any,ifailArg::Any,xArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + + c06ebf(nArg:Integer,xArg:Matrix DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "c06ebf",_ + ["n"::S,"ifail"::S,"x"::S]$Lisp,_ + []$Lisp,_ + [["double"::S,["x"::S,"n"::S]$Lisp]$Lisp_ + ,["integer"::S,"n"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["x"::S,"ifail"::S]$Lisp,_ + [([nArg::Any,ifailArg::Any,xArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + c06ecf(nArg:Integer,xArg:Matrix DoubleFloat,yArg:Matrix DoubleFloat,_ + ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "c06ecf",_ + ["n"::S,"ifail"::S,"x"::S,"y"::S]$Lisp,_ + []$Lisp,_ + [["double"::S,["x"::S,"n"::S]$Lisp,["y"::S,"n"::S]$Lisp_ + ]$Lisp_ + ,["integer"::S,"n"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["x"::S,"y"::S,"ifail"::S]$Lisp,_ + [([nArg::Any,ifailArg::Any,xArg::Any,yArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + c06ekf(jobArg:Integer,nArg:Integer,xArg:Matrix DoubleFloat,_ + yArg:Matrix DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "c06ekf",_ + ["job"::S,"n"::S,"ifail"::S,"x"::S,"y"::S]$Lisp,_ + []$Lisp,_ + [["double"::S,["x"::S,"n"::S]$Lisp,["y"::S,"n"::S]$Lisp_ + ]$Lisp_ + ,["integer"::S,"job"::S,"n"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["x"::S,"y"::S,"ifail"::S]$Lisp,_ + [([jobArg::Any,nArg::Any,ifailArg::Any,xArg::Any,yArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + c06fpf(mArg:Integer,nArg:Integer,initArg:String,_ + xArg:Matrix DoubleFloat,trigArg:Matrix DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "c06fpf",_ + ["m"::S,"n"::S,"init"::S,"ifail"::S,"x"::S,"trig"::S,"work"::S]$Lisp,_ + ["work"::S]$Lisp,_ + [["double"::S,["x"::S,["*"::S,"m"::S,"n"::S]$Lisp]$Lisp_ + ,["trig"::S,["*"::S,2$Lisp,"n"::S]$Lisp]$Lisp,["work"::S,["*"::S,"m"::S,"n"::S]$Lisp]$Lisp]$Lisp_ + ,["integer"::S,"m"::S,"n"::S,"ifail"::S]$Lisp_ + ,["character"::S,"init"::S]$Lisp_ + ]$Lisp,_ + ["x"::S,"trig"::S,"ifail"::S]$Lisp,_ + [([mArg::Any,nArg::Any,initArg::Any,ifailArg::Any,xArg::Any,trigArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + c06fqf(mArg:Integer,nArg:Integer,initArg:String,_ + xArg:Matrix DoubleFloat,trigArg:Matrix DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "c06fqf",_ + ["m"::S,"n"::S,"init"::S,"ifail"::S,"x"::S,"trig"::S,"work"::S]$Lisp,_ + ["work"::S]$Lisp,_ + [["double"::S,["x"::S,["*"::S,"m"::S,"n"::S]$Lisp]$Lisp_ + ,["trig"::S,["*"::S,2$Lisp,"n"::S]$Lisp]$Lisp,["work"::S,["*"::S,"m"::S,"n"::S]$Lisp]$Lisp]$Lisp_ + ,["integer"::S,"m"::S,"n"::S,"ifail"::S]$Lisp_ + ,["character"::S,"init"::S]$Lisp_ + ]$Lisp,_ + ["x"::S,"trig"::S,"ifail"::S]$Lisp,_ + [([mArg::Any,nArg::Any,initArg::Any,ifailArg::Any,xArg::Any,trigArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + c06frf(mArg:Integer,nArg:Integer,initArg:String,_ + xArg:Matrix DoubleFloat,yArg:Matrix DoubleFloat,trigArg:Matrix DoubleFloat,_ + ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "c06frf",_ + ["m"::S,"n"::S,"init"::S,"ifail"::S,"x"::S,"y"::S,"trig"::S,"work"::S]$Lisp,_ + ["work"::S]$Lisp,_ + [["double"::S,["x"::S,["*"::S,"m"::S,"n"::S]$Lisp]$Lisp_ + ,["y"::S,["*"::S,"m"::S,"n"::S]$Lisp]$Lisp,["trig"::S,["*"::S,2$Lisp,"n"::S]$Lisp]$Lisp,["work"::S,["*"::S,["*"::S,2$Lisp,"m"::S]$Lisp,"n"::S]$Lisp]$Lisp_ + ]$Lisp_ + ,["integer"::S,"m"::S,"n"::S,"ifail"::S]$Lisp_ + ,["character"::S,"init"::S]$Lisp_ + ]$Lisp,_ + ["x"::S,"y"::S,"trig"::S,"ifail"::S]$Lisp,_ + [([mArg::Any,nArg::Any,initArg::Any,ifailArg::Any,xArg::Any,yArg::Any,trigArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + c06fuf(mArg:Integer,nArg:Integer,initArg:String,_ + xArg:Matrix DoubleFloat,yArg:Matrix DoubleFloat,trigmArg:Matrix DoubleFloat,_ + trignArg:Matrix DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "c06fuf",_ + ["m"::S,"n"::S,"init"::S,"ifail"::S,"x"::S,"y"::S,"trigm"::S,"trign"::S,"work"::S_ + ]$Lisp,_ + ["work"::S]$Lisp,_ + [["double"::S,["x"::S,["*"::S,"m"::S,"n"::S]$Lisp]$Lisp_ + ,["y"::S,["*"::S,"m"::S,"n"::S]$Lisp]$Lisp,["trigm"::S,["*"::S,2$Lisp,"m"::S]$Lisp]$Lisp,["trign"::S,["*"::S,2$Lisp,"n"::S]$Lisp]$Lisp_ + ,["work"::S,["*"::S,["*"::S,2$Lisp,"m"::S]$Lisp,"n"::S]$Lisp]$Lisp]$Lisp_ + ,["integer"::S,"m"::S,"n"::S,"ifail"::S]$Lisp_ + ,["character"::S,"init"::S]$Lisp_ + ]$Lisp,_ + ["x"::S,"y"::S,"trigm"::S,"trign"::S,"ifail"::S]$Lisp,_ + [([mArg::Any,nArg::Any,initArg::Any,ifailArg::Any,xArg::Any,yArg::Any,trigmArg::Any,trignArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + c06gbf(nArg:Integer,xArg:Matrix DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "c06gbf",_ + ["n"::S,"ifail"::S,"x"::S]$Lisp,_ + []$Lisp,_ + [["double"::S,["x"::S,"n"::S]$Lisp]$Lisp_ + ,["integer"::S,"n"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["x"::S,"ifail"::S]$Lisp,_ + [([nArg::Any,ifailArg::Any,xArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + c06gcf(nArg:Integer,yArg:Matrix DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "c06gcf",_ + ["n"::S,"ifail"::S,"y"::S]$Lisp,_ + []$Lisp,_ + [["double"::S,["y"::S,"n"::S]$Lisp]$Lisp_ + ,["integer"::S,"n"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["y"::S,"ifail"::S]$Lisp,_ + [([nArg::Any,ifailArg::Any,yArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + c06gqf(mArg:Integer,nArg:Integer,xArg:Matrix DoubleFloat,_ + ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "c06gqf",_ + ["m"::S,"n"::S,"ifail"::S,"x"::S]$Lisp,_ + []$Lisp,_ + [["double"::S,["x"::S,["*"::S,"m"::S,"n"::S]$Lisp]$Lisp_ + ]$Lisp_ + ,["integer"::S,"m"::S,"n"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["x"::S,"ifail"::S]$Lisp,_ + [([mArg::Any,nArg::Any,ifailArg::Any,xArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + c06gsf(mArg:Integer,nArg:Integer,xArg:Matrix DoubleFloat,_ + ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "c06gsf",_ + ["m"::S,"n"::S,"ifail"::S,"x"::S,"u"::S,"v"::S]$Lisp,_ + ["u"::S,"v"::S]$Lisp,_ + [["double"::S,["x"::S,["*"::S,"m"::S,"n"::S]$Lisp]$Lisp_ + ,["u"::S,["*"::S,"m"::S,"n"::S]$Lisp]$Lisp,["v"::S,["*"::S,"m"::S,"n"::S]$Lisp]$Lisp]$Lisp_ + ,["integer"::S,"m"::S,"n"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["u"::S,"v"::S,"ifail"::S]$Lisp,_ + [([mArg::Any,nArg::Any,ifailArg::Any,xArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + +@ +\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>> + +<<package NAGC06 NagSeriesSummationPackage>> +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} |