\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} <>= )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} <>= --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. @ <<*>>= <> <> @ \eject \begin{thebibliography}{99} \bibitem{1} nothing \end{thebibliography} \end{document}