From ab8cc85adde879fb963c94d15675783f2cf4b183 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Tue, 14 Aug 2007 05:14:52 +0000 Subject: Initial population. --- src/algebra/e01.spad.pamphlet | 329 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 329 insertions(+) create mode 100644 src/algebra/e01.spad.pamphlet (limited to 'src/algebra/e01.spad.pamphlet') diff --git a/src/algebra/e01.spad.pamphlet b/src/algebra/e01.spad.pamphlet new file mode 100644 index 00000000..9ad62c8c --- /dev/null +++ b/src/algebra/e01.spad.pamphlet @@ -0,0 +1,329 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/algebra e01.spad} +\author{Godfrey Nolan, Mike Dewar} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{package NAGE01 NagInterpolationPackage} +<>= +)abbrev package NAGE01 NagInterpolationPackage +++ Author: Godfrey Nolan and Mike Dewar +++ Date Created: Jan 1994 +++ Date Last Updated: Thu May 12 17:44:53 1994 +++Description: +++This package uses the NAG Library to calculate the interpolation of a function of +++one or two variables. When provided with the value of the +++function (and possibly one or more of its lowest-order +++derivatives) at each of a number of values of the variable(s), +++the routines provide either an interpolating function or an +++interpolated value. For some of the interpolating functions, +++there are supporting routines to evaluate, differentiate or +++integrate them. +++See \downlink{Manual Page}{manpageXXe01}. + + +NagInterpolationPackage(): Exports == Implementation where + S ==> Symbol + FOP ==> FortranOutputStackPackage + + Exports ==> with + e01baf : (Integer,Matrix DoubleFloat,Matrix DoubleFloat,Integer,_ + Integer,Integer) -> Result + ++ e01baf(m,x,y,lck,lwrk,ifail) + ++ determines a cubic spline to a given set of + ++ data. + ++ See \downlink{Manual Page}{manpageXXe01baf}. + e01bef : (Integer,Matrix DoubleFloat,Matrix DoubleFloat,Integer) -> Result + ++ e01bef(n,x,f,ifail) + ++ computes a monotonicity-preserving piecewise cubic Hermite + ++ interpolant to a set of data points. + ++ See \downlink{Manual Page}{manpageXXe01bef}. + e01bff : (Integer,Matrix DoubleFloat,Matrix DoubleFloat,Matrix DoubleFloat,_ + Integer,Matrix DoubleFloat,Integer) -> Result + ++ e01bff(n,x,f,d,m,px,ifail) + ++ evaluates a piecewise cubic Hermite interpolant at a set + ++ of points. + ++ See \downlink{Manual Page}{manpageXXe01bff}. + e01bgf : (Integer,Matrix DoubleFloat,Matrix DoubleFloat,Matrix DoubleFloat,_ + Integer,Matrix DoubleFloat,Integer) -> Result + ++ e01bgf(n,x,f,d,m,px,ifail) + ++ evaluates a piecewise cubic Hermite interpolant and its + ++ first derivative at a set of points. + ++ See \downlink{Manual Page}{manpageXXe01bgf}. + e01bhf : (Integer,Matrix DoubleFloat,Matrix DoubleFloat,Matrix DoubleFloat,_ + DoubleFloat,DoubleFloat,Integer) -> Result + ++ e01bhf(n,x,f,d,a,b,ifail) + ++ evaluates the definite integral of a piecewise cubic + ++ Hermite interpolant over the interval [a,b]. + ++ See \downlink{Manual Page}{manpageXXe01bhf}. + e01daf : (Integer,Integer,Matrix DoubleFloat,Matrix DoubleFloat,_ + Matrix DoubleFloat,Integer) -> Result + ++ e01daf(mx,my,x,y,f,ifail) + ++ computes a bicubic spline interpolating surface through a + ++ set of data values, given on a rectangular grid in the x-y plane. + ++ See \downlink{Manual Page}{manpageXXe01daf}. + e01saf : (Integer,Matrix DoubleFloat,Matrix DoubleFloat,Matrix DoubleFloat,_ + Integer) -> Result + ++ e01saf(m,x,y,f,ifail) + ++ generates a two-dimensional surface interpolating a set of + ++ scattered data points, using the method of Renka and Cline. + ++ See \downlink{Manual Page}{manpageXXe01saf}. + e01sbf : (Integer,Matrix DoubleFloat,Matrix DoubleFloat,Matrix DoubleFloat,_ + Matrix Integer,Matrix DoubleFloat,DoubleFloat,DoubleFloat,Integer) -> Result + ++ e01sbf(m,x,y,f,triang,grads,px,py,ifail) + ++ evaluates at a given point the two-dimensional interpolant + ++ function computed by E01SAF. + ++ See \downlink{Manual Page}{manpageXXe01sbf}. + e01sef : (Integer,Matrix DoubleFloat,Matrix DoubleFloat,Matrix DoubleFloat,_ + Integer,Integer,DoubleFloat,DoubleFloat,Integer) -> Result + ++ e01sef(m,x,y,f,nw,nq,rnw,rnq,ifail) + ++ generates a two-dimensional surface interpolating a set of + ++ scattered data points, using a modified Shepard method. + ++ See \downlink{Manual Page}{manpageXXe01sef}. + e01sff : (Integer,Matrix DoubleFloat,Matrix DoubleFloat,Matrix DoubleFloat,_ + DoubleFloat,Matrix DoubleFloat,DoubleFloat,DoubleFloat,Integer) -> Result + ++ e01sff(m,x,y,f,rnw,fnodes,px,py,ifail) + ++ evaluates at a given point the two-dimensional + ++ interpolating function computed by E01SEF. + ++ See \downlink{Manual Page}{manpageXXe01sff}. + Implementation ==> add + + import Lisp + import DoubleFloat + import Any + import Record + import Integer + import Matrix DoubleFloat + import Boolean + import NAGLinkSupportPackage + import AnyFunctions1(Integer) + import AnyFunctions1(Matrix DoubleFloat) + import AnyFunctions1(Matrix Integer) + import AnyFunctions1(DoubleFloat) + + + e01baf(mArg:Integer,xArg:Matrix DoubleFloat,yArg:Matrix DoubleFloat,_ + lckArg:Integer,lwrkArg:Integer,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "e01baf",_ + ["m"::S,"lck"::S,"lwrk"::S,"ifail"::S,"x"::S,"y"::S,"lamda"::S,"c"::S,"wrk"::S_ + ]$Lisp,_ + ["lamda"::S,"c"::S,"wrk"::S]$Lisp,_ + [["double"::S,["x"::S,"m"::S]$Lisp,["y"::S,"m"::S]$Lisp_ + ,["lamda"::S,"lck"::S]$Lisp,["c"::S,"lck"::S]$Lisp,["wrk"::S,"lwrk"::S]$Lisp]$Lisp_ + ,["integer"::S,"m"::S,"lck"::S,"lwrk"::S,"ifail"::S_ + ]$Lisp_ + ]$Lisp,_ + ["lamda"::S,"c"::S,"ifail"::S]$Lisp,_ + [([mArg::Any,lckArg::Any,lwrkArg::Any,ifailArg::Any,xArg::Any,yArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + e01bef(nArg:Integer,xArg:Matrix DoubleFloat,fArg:Matrix DoubleFloat,_ + ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "e01bef",_ + ["n"::S,"ifail"::S,"x"::S,"f"::S,"d"::S]$Lisp,_ + ["d"::S]$Lisp,_ + [["double"::S,["x"::S,"n"::S]$Lisp,["f"::S,"n"::S]$Lisp_ + ,["d"::S,"n"::S]$Lisp]$Lisp_ + ,["integer"::S,"n"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["d"::S,"ifail"::S]$Lisp,_ + [([nArg::Any,ifailArg::Any,xArg::Any,fArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + e01bff(nArg:Integer,xArg:Matrix DoubleFloat,fArg:Matrix DoubleFloat,_ + dArg:Matrix DoubleFloat,mArg:Integer,pxArg:Matrix DoubleFloat,_ + ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "e01bff",_ + ["n"::S,"m"::S,"ifail"::S,"x"::S,"f"::S,"d"::S,"px"::S,"pf"::S_ + ]$Lisp,_ + ["pf"::S]$Lisp,_ + [["double"::S,["x"::S,"n"::S]$Lisp,["f"::S,"n"::S]$Lisp_ + ,["d"::S,"n"::S]$Lisp,["px"::S,"m"::S]$Lisp,["pf"::S,"m"::S]$Lisp]$Lisp_ + ,["integer"::S,"n"::S,"m"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["pf"::S,"ifail"::S]$Lisp,_ + [([nArg::Any,mArg::Any,ifailArg::Any,xArg::Any,fArg::Any,dArg::Any,pxArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + e01bgf(nArg:Integer,xArg:Matrix DoubleFloat,fArg:Matrix DoubleFloat,_ + dArg:Matrix DoubleFloat,mArg:Integer,pxArg:Matrix DoubleFloat,_ + ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "e01bgf",_ + ["n"::S,"m"::S,"ifail"::S,"x"::S,"f"::S,"d"::S,"px"::S,"pf"::S_ + ,"pd"::S]$Lisp,_ + ["pf"::S,"pd"::S]$Lisp,_ + [["double"::S,["x"::S,"n"::S]$Lisp,["f"::S,"n"::S]$Lisp_ + ,["d"::S,"n"::S]$Lisp,["px"::S,"m"::S]$Lisp,["pf"::S,"m"::S]$Lisp,["pd"::S,"m"::S]$Lisp]$Lisp_ + ,["integer"::S,"n"::S,"m"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["pf"::S,"pd"::S,"ifail"::S]$Lisp,_ + [([nArg::Any,mArg::Any,ifailArg::Any,xArg::Any,fArg::Any,dArg::Any,pxArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + e01bhf(nArg:Integer,xArg:Matrix DoubleFloat,fArg:Matrix DoubleFloat,_ + dArg:Matrix DoubleFloat,aArg:DoubleFloat,bArg:DoubleFloat,_ + ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "e01bhf",_ + ["n"::S,"a"::S,"b"::S,"pint"::S,"ifail"::S_ + ,"x"::S,"f"::S,"d"::S]$Lisp,_ + ["pint"::S]$Lisp,_ + [["double"::S,["x"::S,"n"::S]$Lisp,["f"::S,"n"::S]$Lisp_ + ,["d"::S,"n"::S]$Lisp,"a"::S,"b"::S,"pint"::S]$Lisp_ + ,["integer"::S,"n"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["pint"::S,"ifail"::S]$Lisp,_ + [([nArg::Any,aArg::Any,bArg::Any,ifailArg::Any,xArg::Any,fArg::Any,dArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + e01daf(mxArg:Integer,myArg:Integer,xArg:Matrix DoubleFloat,_ + yArg:Matrix DoubleFloat,fArg:Matrix DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "e01daf",_ + ["mx"::S,"my"::S,"px"::S,"py"::S,"ifail"::S_ + ,"x"::S,"y"::S,"f"::S,"lamda"::S,"mu"::S_ + ,"c"::S,"wrk"::S]$Lisp,_ + ["px"::S,"py"::S,"lamda"::S,"mu"::S,"c"::S,"wrk"::S]$Lisp,_ + [["double"::S,["x"::S,"mx"::S]$Lisp,["y"::S,"my"::S]$Lisp_ + ,["f"::S,["*"::S,"mx"::S,"my"::S]$Lisp]$Lisp,["lamda"::S,["+"::S,"mx"::S,4$Lisp]$Lisp]$Lisp,["mu"::S,["+"::S,"mx"::S,4$Lisp]$Lisp]$Lisp_ + ,["c"::S,["*"::S,"mx"::S,"my"::S]$Lisp]$Lisp,["wrk"::S,["*"::S,["+"::S,"mx"::S,6$Lisp]$Lisp,["+"::S,"my"::S,6$Lisp]$Lisp]$Lisp]$Lisp_ + ]$Lisp_ + ,["integer"::S,"mx"::S,"my"::S,"px"::S,"py"::S_ + ,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["px"::S,"py"::S,"lamda"::S,"mu"::S,"c"::S,"ifail"::S]$Lisp,_ + [([mxArg::Any,myArg::Any,ifailArg::Any,xArg::Any,yArg::Any,fArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + e01saf(mArg:Integer,xArg:Matrix DoubleFloat,yArg:Matrix DoubleFloat,_ + fArg:Matrix DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "e01saf",_ + ["m"::S,"ifail"::S,"x"::S,"y"::S,"f"::S,"triang"::S,"grads"::S_ + ]$Lisp,_ + ["triang"::S,"grads"::S]$Lisp,_ + [["double"::S,["x"::S,"m"::S]$Lisp,["y"::S,"m"::S]$Lisp_ + ,["f"::S,"m"::S]$Lisp,["grads"::S,2$Lisp,"m"::S]$Lisp]$Lisp_ + ,["integer"::S,"m"::S,["triang"::S,["*"::S,7$Lisp,"m"::S]$Lisp]$Lisp_ + ,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["triang"::S,"grads"::S,"ifail"::S]$Lisp,_ + [([mArg::Any,ifailArg::Any,xArg::Any,yArg::Any,fArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + e01sbf(mArg:Integer,xArg:Matrix DoubleFloat,yArg:Matrix DoubleFloat,_ + fArg:Matrix DoubleFloat,triangArg:Matrix Integer,gradsArg:Matrix DoubleFloat,_ + pxArg:DoubleFloat,pyArg:DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "e01sbf",_ + ["m"::S,"px"::S,"py"::S,"pf"::S,"ifail"::S_ + ,"x"::S,"y"::S,"f"::S,"triang"::S,"grads"::S_ + ]$Lisp,_ + ["pf"::S]$Lisp,_ + [["double"::S,["x"::S,"m"::S]$Lisp,["y"::S,"m"::S]$Lisp_ + ,["f"::S,"m"::S]$Lisp,["grads"::S,2$Lisp,"m"::S]$Lisp,"px"::S,"py"::S,"pf"::S]$Lisp_ + ,["integer"::S,"m"::S,["triang"::S,["*"::S,7$Lisp,"m"::S]$Lisp]$Lisp_ + ,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["pf"::S,"ifail"::S]$Lisp,_ + [([mArg::Any,pxArg::Any,pyArg::Any,ifailArg::Any,xArg::Any,yArg::Any,fArg::Any,triangArg::Any,gradsArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + e01sef(mArg:Integer,xArg:Matrix DoubleFloat,yArg:Matrix DoubleFloat,_ + fArg:Matrix DoubleFloat,nwArg:Integer,nqArg:Integer,_ + rnwArg:DoubleFloat,rnqArg:DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "e01sef",_ + ["m"::S,"nw"::S,"nq"::S,"minnq"::S,"rnw"::S_ + ,"rnq"::S,"ifail"::S,"x"::S,"y"::S,"f"::S,"fnodes"::S,"wrk"::S_ + ]$Lisp,_ + ["fnodes"::S,"minnq"::S,"wrk"::S]$Lisp,_ + [["double"::S,["x"::S,"m"::S]$Lisp,["y"::S,"m"::S]$Lisp_ + ,["f"::S,"m"::S]$Lisp,["fnodes"::S,["*"::S,5$Lisp,"m"::S]$Lisp]$Lisp,"rnw"::S,"rnq"::S,["wrk"::S,["*"::S,6$Lisp,"m"::S]$Lisp]$Lisp_ + ]$Lisp_ + ,["integer"::S,"m"::S,"nw"::S,"nq"::S,"minnq"::S_ + ,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["fnodes"::S,"minnq"::S,"rnw"::S,"rnq"::S,"ifail"::S]$Lisp,_ + [([mArg::Any,nwArg::Any,nqArg::Any,rnwArg::Any,rnqArg::Any,ifailArg::Any,xArg::Any,yArg::Any,fArg::Any ])_ + @List Any]$Lisp)$Lisp)_ + pretend List (Record(key:Symbol,entry:Any))]$Result + + e01sff(mArg:Integer,xArg:Matrix DoubleFloat,yArg:Matrix DoubleFloat,_ + fArg:Matrix DoubleFloat,rnwArg:DoubleFloat,fnodesArg:Matrix DoubleFloat,_ + pxArg:DoubleFloat,pyArg:DoubleFloat,ifailArg:Integer): Result == + [(invokeNagman(NIL$Lisp,_ + "e01sff",_ + ["m"::S,"rnw"::S,"px"::S,"py"::S,"pf"::S_ + ,"ifail"::S,"x"::S,"y"::S,"f"::S,"fnodes"::S]$Lisp,_ + ["pf"::S]$Lisp,_ + [["double"::S,["x"::S,"m"::S]$Lisp,["y"::S,"m"::S]$Lisp_ + ,["f"::S,"m"::S]$Lisp,"rnw"::S,["fnodes"::S,["*"::S,5$Lisp,"m"::S]$Lisp]$Lisp,"px"::S,"py"::S,"pf"::S]$Lisp_ + ,["integer"::S,"m"::S,"ifail"::S]$Lisp_ + ]$Lisp,_ + ["pf"::S,"ifail"::S]$Lisp,_ + [([mArg::Any,rnwArg::Any,pxArg::Any,pyArg::Any,ifailArg::Any,xArg::Any,yArg::Any,fArg::Any,fnodesArg::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} -- cgit v1.2.3