diff --git a/changelog b/changelog
index 490045e..0730f88 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,7 @@
+20090901 tpd src/axiom-website/patches.html 20090901.01.tpd.patch
+20090901 tpd src/interp/Makefile move nag-e02.boot to nag-e02.lisp
+20090901 tpd src/interp/nag-e02.lisp added, rewritten from nag-e02.boot
+20090901 tpd src/interp/nag-e02.boot removed, rewritten to nag-e02.lisp
 20090831 tpd src/axiom-website/patches.html 20090831.04.tpd.patch
 20090831 tpd src/interp/Makefile move nag-e01.boot to nag-e01.lisp
 20090831 tpd src/interp/nag-e01.lisp added, rewritten from nag-e01.boot
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 0a71899..0042116 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -1958,5 +1958,7 @@ src/interp/nag-d01.lisp rewrite from boot to lisp<br/>
 src/interp/nag-d02.lisp rewrite from boot to lisp<br/>
 <a href="patches/20090831.04.tpd.patch">20090831.04.tpd.patch</a>
 src/interp/nag-e01.lisp rewrite from boot to lisp<br/>
+<a href="patches/20090901.01.tpd.patch">20090901.01.tpd.patch</a>
+src/interp/nag-e02.lisp rewrite from boot to lisp<br/>
  </body>
 </html>
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet
index 81061c5..4805c8b 100644
--- a/src/interp/Makefile.pamphlet
+++ b/src/interp/Makefile.pamphlet
@@ -1555,41 +1555,32 @@ ${MID}/nag-e01.lisp: ${IN}/nag-e01.lisp.pamphlet
 
 @
 
-\subsection{nag-e02.boot \cite{51}}
+\subsection{nag-e02.lisp}
 <<nag-e02.o (AUTO from OUT)>>=
 ${AUTO}/nag-e02.${O}: ${OUT}/nag-e02.${O}
-	@ echo 182 making ${AUTO}/nag-e02.${O} from ${OUT}/nag-e02.${O}
+	@ echo 154 making ${AUTO}/nag-e02.${O} from ${OUT}/nag-e02.${O}
 	@ cp ${OUT}/nag-e02.${O} ${AUTO}
 
 @
 <<nag-e02.o (OUT from MID)>>=
-${OUT}/nag-e02.${O}: ${MID}/nag-e02.clisp
-	@ echo 183 making ${OUT}/nag-e02.${O} from ${MID}/nag-e02.clisp
-	@ (cd ${MID} ; \
+${OUT}/nag-e02.${O}: ${MID}/nag-e02.lisp
+	@ echo 136 making ${OUT}/nag-e02.${O} from ${MID}/nag-e02.lisp
+	@ ( cd ${MID} ; \
 	  if [ -z "${NOISE}" ] ; then \
-	   echo '(progn  (compile-file "${MID}/nag-e02.clisp"' \
+	   echo '(progn  (compile-file "${MID}/nag-e02.lisp"' \
              ':output-file "${OUT}/nag-e02.${O}") (${BYE}))' | ${DEPSYS} ; \
 	  else \
-	   echo '(progn  (compile-file "${MID}/nag-e02.clisp"' \
+	   echo '(progn  (compile-file "${MID}/nag-e02.lisp"' \
              ':output-file "${OUT}/nag-e02.${O}") (${BYE}))' | ${DEPSYS} \
              >${TMP}/trace ; \
 	  fi )
 
 @
-<<nag-e02.clisp (MID from IN)>>=
-${MID}/nag-e02.clisp: ${IN}/nag-e02.boot.pamphlet
-	@ echo 184 making ${MID}/nag-e02.clisp from ${IN}/nag-e02.boot.pamphlet
+<<nag-e02.lisp (MID from IN)>>=
+${MID}/nag-e02.lisp: ${IN}/nag-e02.lisp.pamphlet
+	@ echo 137 making ${MID}/nag-e02.lisp from ${IN}/nag-e02.lisp.pamphlet
 	@ (cd ${MID} ; \
-	  ${TANGLE} ${IN}/nag-e02.boot.pamphlet >nag-e02.boot ; \
-	  if [ -z "${NOISE}" ] ; then \
-	    echo '(progn (boot::reroot "${SPAD}")' \
-              '(boottran::boottocl "nag-e02.boot") (${BYE}))' | ${DEPSYS} ; \
-	  else \
-	    echo '(progn (boot::reroot "${SPAD}")' \
-              '(boottran::boottocl "nag-e02.boot") (${BYE}))' | ${DEPSYS} \
-              >${TMP}/trace ; \
-	  fi ; \
-	  rm nag-e02.boot )
+	   ${TANGLE} ${IN}/nag-e02.lisp.pamphlet >nag-e02.lisp )
 
 @
 
@@ -4683,7 +4674,7 @@ clean:
 
 <<nag-e02.o (AUTO from OUT)>>
 <<nag-e02.o (OUT from MID)>>
-<<nag-e02.clisp (MID from IN)>>
+<<nag-e02.lisp (MID from IN)>>
 
 <<nag-e04.o (AUTO from OUT)>>
 <<nag-e04.o (OUT from MID)>>
diff --git a/src/interp/nag-e02.boot.pamphlet b/src/interp/nag-e02.boot.pamphlet
deleted file mode 100644
index 3d738dd..0000000
--- a/src/interp/nag-e02.boot.pamphlet
+++ /dev/null
@@ -1,4693 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/interp nag-e02.boot}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\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>>
-
-e02adf() ==
-  htInitPage('"E02ADF - Least-squares curve fit, by polynomials, arbitrary data points", nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02adf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02adf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Determines weighted least-squares polynomial approximations of ")
-    (text . "degrees 0,1,...,k to the set of points {\it (} ")
-    (text . "\htbitmap{xr}, \htbitmap{yr}{\it )} ")
-    (text . "with weights \htbitmap{wr}, for r = 1,2,...,m. ")
-    (text . "The polynomials are in the Chebyshev series form, the ")
-    (text . "approximation of degree {\it i} being represented as ")
-    (text . "\newline \center{\htbitmap{e02adf}} , where ")
-    (text . "\htbitmap{xbar} is the normalised argument, which is ")
-    (text . "related to the original variable {\it x} by the transformation ")
-    (text . "\blankline  \center{\htbitmap{e02adf1}} ")
-    (text . ",\htbitmap{xmin} and \htbitmap{xmax} being ")
-    (text . "the values of \htbitmap{xr} respectively ")
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of data points {\it m}:")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 11 m PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "Maximum degree required {\it k}:")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 3 k PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} \newline ")
-    (text . "First dimension of A, {\it nrows} \htbitmap{great=} {\it k+1}: ")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 50 nrows I))
-    (text . "\blankline")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02adfSolve)
-  htShowPage()
-
-e02adfSolve htPage ==
-  m :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
-    objValUnwrap htpLabelSpadValue(htPage, 'm)
-  k :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'k)
-    objValUnwrap htpLabelSpadValue(htPage, 'k)
-  nrows :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nrows)
-    objValUnwrap htpLabelSpadValue(htPage, 'nrows)
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  (m = '11 and k ='3) => e02adfDefaultSolve(htPage,k,nrows,ifail)
-  labelList :=
-    "append"/[f(i) for i in 1..m] where f(i) ==
-      prefix := ('"\newline \tab{2} ")
-      middle := ('"\tab{22} ")
-      post   := ('" \tab{42} ")
-      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
-      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
-      znam := INTERN STRCONC ('"z",STRINGIMAGE i)
-      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
-      [['text,:prefix],['bcStrings,[10, num, xnam, 'F]], 
-       ['text,:middle],['bcStrings,[10, 0.0, ynam, 'F]],
-        ['text,:post],['bcStrings,[10, 0.0, znam, 'F]]]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList]
-  page := htInitPage("E02ADF - Least-squares curve fit, by polynomials, arbitrary data points", htpPropertyList htPage)
-  htSay '"\menuitemstyle{}\tab{2} Values of \space{1} "
-  htSay '"\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} "
-  htSay '"Values of \space{1} \htbitmap{fr}: \tab{40}"
-  htSay '"\menuitemstyle{}\tab{42} Values of \space{1} "
-  htSay '"\htbitmap{dr}: "
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02adfGen)
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'k,k)
-  htpSetProperty(page,'nrows,nrows)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02adfDefaultSolve  (htPage,k,nrows,ifail) ==
-  m := '11
-  page := htInitPage('"E02ADF - Least-squares curve fit, by polynomials, arbitrary data points", htpPropertyList htPage)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} Values of \space{1} ")
-    (text . "\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} ")
-    (text . "Values of \space{1} \htbitmap{yr}: \tab{40} ")
-    (text . "\menuitemstyle{}\tab{42} Values of \space{1} ")
-    (text . "\htbitmap{wr}: ")
-    (text . "\newline \tab{2}")
-    (bcStrings (10 "1.00" x1 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "10.40" y1 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z1 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "2.10" x2 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "7.90" y2 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z2 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "3.10" x3 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "4.70" y3 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z3 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "3.90" x4 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "2.50" y4 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z4 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "4.90" x5 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "1.20" y5 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z5 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "5.80" x6 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "2.20" y6 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.80" z6 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "6.50" x7 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "5.10" y7 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.80" z7 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "7.10" x8 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "9.20" y8 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.70" z8 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "7.80" x9 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "16.10" y9 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.50" z9 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "8.40" x10 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "24.50" y10 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.30" z10 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "9.00" x11 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "35.30" y11 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.20" z11 F))
-    (text . "\blankline"))
-  htMakeDoneButton('"Continue",'e02adfGen)    	
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'k,k)
-  htpSetProperty(page,'nrows,nrows)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02adfGen htPage ==
-  m := htpProperty(htPage,'m)
-  k := htpProperty(htPage,'k)
-  nrows := htpProperty(htPage,'nrows)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  kplus1 := k + 1
-  y := alist
-  while y repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    mid :=  STRCONC ((first y).1," ")
-    y := rest y
-    left :=  STRCONC ((first y).1," ")
-    y := rest y
-    xlist := [left,:xlist]
-    ylist := [mid,:ylist]
-    wlist := [right,:wlist]
-  xstring := bcwords2liststring xlist
-  ystring := bcwords2liststring ylist
-  wstring := bcwords2liststring wlist
-  prefix := STRCONC('"e02adf(",STRINGIMAGE m,", ",STRINGIMAGE kplus1,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE nrows,", [",xstring,"],[",ystring,"],[")
-  prefix := STRCONC(prefix,wstring,"],",STRINGIMAGE ifail,")")
-  linkGen prefix
-
-e02aef() ==
-  htInitPage('"E02AEF - Evaluation of fitted polynomial in one variable from Chebyshev series form", nil)
-  htMakePage '(
-    (domainConditions 
-      (isDomain F (Float))
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02aef} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02aef| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Evaluates a polynomial in Chabyshev series representation ")
-    (text . "\newline \center{\htbitmap{e02aef}} ")
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of terms in the series {\it n}:")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 4 n PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "\htbitmap{xbar}: ")
-    (text . " \newline \tab{2} ")
-    (bcStrings (6 "-1.0" xcap F))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02aefSolve)
-  htShowPage()
-
-e02aefSolve htPage ==
-  n :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n)
-    objValUnwrap htpLabelSpadValue(htPage, 'n)
-  xcap := htpLabelInputString(htPage,'xcap)
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  n = '4 => e02aefDefaultSolve(htPage,xcap,ifail)
-  labelList :=
-    "append"/[f(i) for i in 1..(n+1)] where f(i) ==
-      prefix := ('"\newline \tab{15} ")
-      anam := INTERN STRCONC ('"a",STRINGIMAGE i)
-      [['text,:prefix],['bcStrings,[10, 0.0, anam, 'F]]]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList]
-  page := htInitPage("E02AEF - Evaluation of fitted polynomial in one variable from Chebyshev series from", nil)
-  htSay '"\menuitemstyle{}\tab{2} Enter the coefficients of {\it a(n+1)}:"
-  htSay '"\blankline "
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02aefGen)
-  htpSetProperty(page,'n,n)
-  htpSetProperty(page,'xcap,xcap)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02aefDefaultSolve  (htPage,xcap,ifail) ==
-  n := '4
-  page := htInitPage('"E02AEF - Evaluation of fitted polynomial in one variable from Chebyshev series form", nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} ")
-    (text . "Enter the coeffients of {\it a(n+1)}: ")
-    (text . "\blankline ")
-    (text . "\newline \tab{15} ")
-    (bcStrings (10 "2.0000" a1 F))
-    (text . "\newline \tab{15} ")
-    (bcStrings (10 "0.5000" a2 F))
-    (text . "\newline \tab{15} ")
-    (bcStrings (10 "0.2500" a3 F))
-    (text . "\newline \tab{15} ")
-    (bcStrings (10 "0.1250" a4 F))
-    (text . "\newline \tab{15} ")
-    (bcStrings (10 "0.0625" a5 F))
-    (text . "\blankline "))
-  htMakeDoneButton('"Continue",'e02aefGen)    	
-  htpSetProperty(page,'n,n)
-  htpSetProperty(page,'xcap,xcap)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02aefGen htPage ==
-  n := htpProperty(htPage,'n)
-  xcap := htpProperty(htPage,'xcap)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  nplus1 := n + 1
-  y := alist
-  while y repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    arrayList := [right,:arrayList]
-  astring := bcwords2liststring arrayList
-  prefix := STRCONC('"e02aef(",STRINGIMAGE nplus1,", [",astring ,"], ")
-  prefix := STRCONC(prefix,STRINGIMAGE xcap,", ",STRINGIMAGE ifail,")")
-  linkGen prefix
-
-e02agf() ==
-  htInitPage('"E02AGF - Least-squares polynomial fit, values and derivatives may be constrained, arbitrary data values",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02agf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02agf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Determines constrained least-squares polynomial approximations ")
-    (text . "to the set of points {\it (\htbitmap{xr},\htbitmap{yr})} with ")
-    (text . "weights \htbitmap{wr}, for r = 1,2,...,m. The values of the ")
-    (text . "approximations and any number of their derivatives must be ")
-    (text . "specified at a further set of points \htbitmap{xii}, ")
-    (text . "for i = 1,2,...,{\it mf}. The total number of interpolating ")
-    (text . "conditions is given by \center{\htbitmap{e02agf}} where ")
-    (text . "\htbitmap{pi} is the highest order derivative ")
-    (text . "specified at point \htbitmap{xii}.  The values ")
-    (text . "\htbitmap{xr} and \htbitmap{xii} all lie ")
-    (text . "in the interval [\htbitmap{xmin},")
-    (text . "\htbitmap{xmax}]. The polynomials are given in ")
-    (text . "Chebyshev series form, the approximation of degree {\it i} being")
-    (text . " represented as\blankline  \center{\htbitmap{e02agf1}}")
-    (text . "\newline, where \htbitmap{xbar} is the normalised ")
-    (text . "argument, related to the original variable {\it x} by the ")
-    (text . "transformation \newline \center{\htbitmap{e02adf1}} ")
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "\newline Number of data points {\it m}:")
-    (text . "\tab{32} \menuitemstyle{}\tab{34}")
-    (text . "Maximum degree required {\it k}:")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 5 m PI))
-    (text . "\tab{34} ")
-    (bcStrings (6 4 k PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} \newline ")
-    (text . "First dimension of A, {\it nrows \htbitmap{great=} k+1}: ")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 6 nrows I))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "\newline \htbitmap{xmin}: ")
-    (text . "\tab{32} \menuitemstyle{}\tab{34}")
-    (text . "\htbitmap{xmax}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 "0.0" xmin F))
-    (text . "\tab{34} ")
-    (bcStrings (6 "4.0" xmax F))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "\newline Dimension of {\it xf} & {\it ip}, {\it mf}: ")
-    (text . "\tab{32} \menuitemstyle{}\tab{34}")
-    (text . "Dimension of {\it yf}, {\it lyf}:")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 2 mf PI))
-    (text . "\tab{34} ")
-    (bcStrings (6 15 lyf PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02agfSolve)
-  htShowPage()
-
-e02agfSolve htPage ==
-  m :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
-    objValUnwrap htpLabelSpadValue(htPage, 'm)
-  k :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'k)
-    objValUnwrap htpLabelSpadValue(htPage, 'kplus1)
-  nrows :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nrows)
-    objValUnwrap htpLabelSpadValue(htPage, 'nrows)
-  xmin := htpLabelInputString(htPage,'xmin)
-  xmax := htpLabelInputString(htPage,'xmax)
-  mf :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'mf)
-    objValUnwrap htpLabelSpadValue(htPage, 'mf)
-  lyf :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'lyf)
-    objValUnwrap htpLabelSpadValue(htPage, 'lyf)
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  (m = '5 and k ='4 and mf = '2 and lyf = '15) => e02agfDefaultSolve(htPage,nrows,xmin,xmax,ifail)
-  labelList :=
-    "append"/[f(i) for i in 1..m] where f(i) ==
-      prefix := ('"\newline \tab{2} ")
-      middle := ('"\tab{22} ")
-      post   := ('" \tab{42} ")
-      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
-      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
-      znam := INTERN STRCONC ('"z",STRINGIMAGE i)
-      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
-      [['text,:prefix],['bcStrings,[10, num, xnam, 'F]], 
-       ['text,:middle],['bcStrings,[10, 0.0, ynam, 'F]],
-        ['text,:post],['bcStrings,[10, 0.0, znam, 'F]]]
-  xfList := 
-    "append"/[g(j) for j in 1..mf] where g(j) ==
-      xfnam := INTERN STRCONC ('"xf",STRINGIMAGE j)
-      [['bcStrings,[6, 0.0, xfnam, 'F]]]
-  prefix := ('"\blankline \newline \menuitemstyle{}\tab{2} Values of ")
-  prefix := STRCONC(prefix,"{\it xf}: \newline \tab{2} ")
-  xfList := [['text,:prefix],:xfList] 
-  ipList := 
-    "append"/[h(k) for k in 1..mf] where h(k) ==
-      ipnam := INTERN STRCONC ('"ip",STRINGIMAGE k)
-      [['bcStrings,[6, 0, ipnam, 'PI]]]
-  prefix := ('"\blankline \newline \menuitemstyle{}\tab{2} Values of ")
-  prefix := STRCONC(prefix,"{\it ip}: \newline \tab{2} ")
-  ipList := [['text,:prefix],:ipList] 
-  yfList :=
-    "append"/[i(l) for l in 1..lyf] where i(l) ==
-      prefix := ('"\newline \tab{2} ")
-      yfnam := INTERN STRCONC ('"lyf",STRINGIMAGE l)
-      [['text,:prefix],['bcStrings,[10, 0.0, yfnam, 'F]]]
-  prefix := ('"\blankline \newline \menuitemstyle{}\tab{2} Values of ")
-  prefix := STRCONC(prefix,"{\it yf}: \newline \tab{2} ")
-  yfList := [['text,:prefix],:yfList] 
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList,:xfList,:ipList,:yfList]
-  page := htInitPage("E02AGF - Least-squares polynomial fit, values and derivatives may be constrained, arbitrary data values",nil)
-  htSay '"\menuitemstyle{}\tab{2} Values of \space{1} "
-  htSay '"\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} "
-  htSay '"Values of \space{1} \htbitmap{yr}: \tab{40}"
-  htSay '"\menuitemstyle{}\tab{42} Values of \space{1} "
-  htSay '"\htbitmap{wr}: "
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02agfGen)
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'k,k)
-  htpSetProperty(page,'nrows,nrows)
-  htpSetProperty(page,'nrows,nrows)
-  htpSetProperty(page,'xmin,xmin)
-  htpSetProperty(page,'xmax,xmax)
-  htpSetProperty(page,'mf,mf)
-  htpSetProperty(page,'lyf,lyf)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02agfDefaultSolve  (htPage,nrows,xmin,xmax,ifail) == 
-  m := '5
-  k := '4
-  mf := '2
-  lyf := '15
-  page := htInitPage('"E02AGF - Least-squares polynomial fit, values and derivativesby polynomials, arbitrary data points", htpPropertyList htPage)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\menuitemstyle{}\tab{2} Values of \space{1} ")
-    (text . "\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} ")
-    (text . "Values of \space{1} \htbitmap{yr}: \tab{40} ")
-    (text . "\menuitemstyle{}\tab{42} Values of \space{1} ")
-    (text . "\htbitmap{wr}: ")
-    (text . "\newline \tab{2}")
-    (bcStrings (10 "0.5" x1 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.03" y1 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.0" z1 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "1.0" x2 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "-0.75" y2 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.0" z2 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "2.0" x3 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "-1.0" y3 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.0" z3 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "2.5" x4 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "-0.1" y4 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.0" z4 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "3.0" x5 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "1.75" y5 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.0" z5 F))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} Values of {\it xf}: ")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 "0.0" xf1 F))
-    (bcStrings (6 "4.0" xf2 F))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} Values of {\it ip}: ")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 1 ip1 PI))
-    (bcStrings (6 0 ip2 PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} Values of {\it yf}: ")
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "1.0" lyf1 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "-2.0" lyf2 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "9.0" lyf3 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.0" lyf4 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.0" lyf5 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.0" lyf6 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.0" lyf7 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.0" lyf8 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.0" lyf9 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.0" lyf10 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.0" lyf11 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.0" lyf12 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.0" lyf13 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.0" lyf14 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.0" lyf15 F)))
-  htMakeDoneButton('"Continue",'e02agfGen)    	
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'k,k)
-  htpSetProperty(page,'nrows,nrows)
-  htpSetProperty(page,'xmin,xmin)
-  htpSetProperty(page,'xmax,xmax)
-  htpSetProperty(page,'mf,mf)
-  htpSetProperty(page,'lyf,lyf)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02agfGen htPage ==
-  m := htpProperty(htPage,'m)
-  k := htpProperty(htPage,'k)
-  nrows := htpProperty(htPage,'nrows)
-  xmin := htpProperty(htPage,'xmin)
-  xmax := htpProperty(htPage,'xmax)
-  mf := htpProperty(htPage,'mf)
-  lyf := htpProperty(htPage,'lyf)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  kplus1 := k + 1
-  ipsum := 0
-  y := alist
-  for i in 1..lyf repeat
-    yf := STRCONC((first y).1," ")
-    yfList := [yf,:yfList]
-    y := rest y
-  yfstring := bcwords2liststring yfList
-  for i in 1..mf repeat
-    iptest := (first y).1
-    iptestval := READ_-FROM_-STRING(iptest)
-    ipsum := ipsum + iptestval
-    ip := STRCONC(iptest," ")
-    iptestList := [iptestval,:iptestList]
-    ipList := [ip,:ipList]
-    y := rest y
-  ipstring := bcwords2liststring ipList
-  ipmax := APPLY ('MAX, iptestList)
-  n := mf + ipsum
-  for i in 1..mf repeat
-    xf := STRCONC((first y).1," ")
-    xfList := [xf,:xfList]
-    y := rest y
-  xfstring := bcwords2liststring xfList
-  while y repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    mid :=  STRCONC ((first y).1," ")
-    y := rest y
-    left :=  STRCONC ((first y).1," ")
-    y := rest y
-    xlist := [left,:xlist]
-    ylist := [mid,:ylist]
-    wlist := [right,:wlist]
-  xstring := bcwords2liststring xlist
-  ystring := bcwords2liststring ylist
-  wstring := bcwords2liststring wlist
-  wrktest1 := 4*m + 3*kplus1
-  wrktest2 := 8*n + 5*ipmax + mf +10
-  wrktestlist := [wrktest1,wrktest2]
-  wrkmax := APPLY ('MAX, wrktestlist)
-  lwrk := wrkmax + 2*n + 2
-  liwrk := 2*mf + 2
-  prefix := STRCONC('"e02agf(",STRINGIMAGE m,", ",STRINGIMAGE kplus1,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE nrows,", ",xmin,", ",xmax,", [",xstring)
-  prefix := STRCONC(prefix,"],[",ystring,"],[",wstring,"],",STRINGIMAGE mf)
-  prefix := STRCONC(prefix,", [",xfstring,"],[",yfstring,"],")
-  prefix := STRCONC(prefix,STRINGIMAGE lyf,", [",ipstring,"]::Matrix Integer,")
-  prefix := STRCONC(prefix,STRINGIMAGE lwrk,", ",STRINGIMAGE liwrk,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE ifail,")")
-  linkGen prefix
-
-e02ahf() ==
-  htInitPage('"E02AHF - Derivative of fitted polynomial in Chebyshev series",nil)
-  htMakePage '(
-    (domainConditions
-      (isDomain F (Float)) 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02ahf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02ahf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Determines the indefinite integral of the Chebyshev series ")
-    (text . "representation \newline \center{\htbitmap{e02ahf1}} ")
-    (text . "of a polynomial, where \htbitmap{xbar} is the ")
-    (text . "normalised argument, related to the original variable x by the ")
-    (text . "transformation \blankline \center{\htbitmap{e02adf1}}")
-    (text . ",\htbitmap{xmin} and \htbitmap{xmax} being ")
-    (text . "minimum and maximum values of {\it x} respectively. The integral")
-    (text . " polynomial has the form ")
-    (text . "\blankline \center{\htbitmap{e02ahf}}")
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Degree of the polynomial {\it n}:")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 6 n PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "\newline \htbitmap{xmin}: ")
-    (text . "\tab{32} \menuitemstyle{}\tab{34}")
-    (text . "\htbitmap{xmax}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 "-0.5" xmin F))
-    (text . "\tab{34} ")
-    (bcStrings (6 "2.5" xmax F))
---    (text . "\blankline ")
---    (text . "\newline ")
---    (text . "\menuitemstyle{}\tab{2}")
---    (text . "\newline Dimension of array {\it a}, {\it la}: ")
---    (text . "\tab{32} \menuitemstyle{}\tab{34}")
---    (text . "Dimension of {\it adif}, {\it ladif}: ") 
---    (text . "\newline\tab{2} ")
---    (bcStrings (6 7 la PI))
---    (text . "\tab{34} ")
---    (bcStrings (6 7 ladif PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "\newline Increment of array {\it a}, {\it ia1}: ")
-    (text . "\tab{32} \menuitemstyle{}\tab{34}")
-    (text . "\newline Increment of array {\it adif}, {\it ladif1}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 1 iaone PI))
-    (text . "\tab{34} ")
-    (bcStrings (6 1 ladifone PI))
-    (text . "\blankline")
-    (text . "\newline \menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02ahfSolve)
-  htShowPage()
-
-e02ahfSolve htPage ==
-  n :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n)
-    objValUnwrap htpLabelSpadValue(htPage, 'n)
-  xmin := htpLabelInputString(htPage,'xmin)
-  xmax := htpLabelInputString(htPage,'xmax)
-  iaone :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'iaone)
-    objValUnwrap htpLabelSpadValue(htPage, 'iaone)
-  ladifone :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ladifone)
-    objValUnwrap htpLabelSpadValue(htPage, 'ladifone)
-  la := 1+n*iaone
---    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'la)
---    objValUnwrap htpLabelSpadValue(htPage, 'la)
-  ladif :=1+n*ladifone
---    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ladif)
---    objValUnwrap htpLabelSpadValue(htPage, 'ladif)
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  (n = '6 and (la ='7 and ladif = '7)) => 
-     e02ahfDefaultSolve(htPage,xmin,xmax,iaone,ladifone,ifail)
-  labelList :=
-    "append"/[f(i) for i in 1..la] where f(i) ==
-      prefix := ('"\newline \tab{15} ")
-      anam := INTERN STRCONC ('"a",STRINGIMAGE i)
-      [['text,:prefix],['bcStrings,[10, "0.0000", anam, 'F]]]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList]
-  page := htInitPage("E02AHF - Derivative of fitted polynomial in Chebyshev series",nil)
-  htSay '"\menuitemstyle{}\tab{2} Coefficients of {\it a(la)}:"
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02ahfGen)
-  htpSetProperty(page,'n,n)
-  htpSetProperty(page,'la,la)
-  htpSetProperty(page,'ladif,ladif)
-  htpSetProperty(page,'xmin,xmin)
-  htpSetProperty(page,'xmax,xmax)
-  htpSetProperty(page,'iaone,iaone)
-  htpSetProperty(page,'ladifone,ladifone)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02ahfDefaultSolve  (htPage,xmin,xmax,iaone,ladifone,ifail) ==
-  n := '6
-  la := '7
-  ladif := '7
-  page := htInitPage('"E02AHF - Derivative of fitted polynomial in Chebyshev series",nil)
-  htMakePage '(
-    (domainConditions 
-      (isDomain PI (Positive Integer))
-       (isDomain F (Float)))
-    (text . "\menuitemstyle{}\tab{2} ")
-    (text . "Coefficients of {\it a(la)}: ")
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "2.53213" a1 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "1.13032" a2 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.27150" a3 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.04434" a4 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.00547" a5 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.00054" a6 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.00004" a7 F))
-    (text . "\blankline"))
-  htMakeDoneButton('"Continue",'e02ahfGen)    	
-  htpSetProperty(page,'n,n)
-  htpSetProperty(page,'la,la)
-  htpSetProperty(page,'ladif,ladif)
-  htpSetProperty(page,'xmin,xmin)
-  htpSetProperty(page,'xmax,xmax)
-  htpSetProperty(page,'iaone,iaone)
-  htpSetProperty(page,'ladifone,ladifone)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02ahfGen htPage ==
-  n := htpProperty(htPage,'n)
-  la := htpProperty(htPage,'la)
-  ladif := htpProperty(htPage,'ladif)
-  xmin := htpProperty(htPage,'xmin)
-  xmax := htpProperty(htPage,'xmax)
-  iaone := htpProperty(htPage,'iaone)
-  ladifone := htpProperty(htPage,'ladifone)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  np1 := n + 1
-  y := alist
-  while y repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y
-    arrayList := [right,:arrayList]
-  astring := bcwords2liststring arrayList
-  prefix := STRCONC('"e02ahf(",STRINGIMAGE np1,", ",xmin,", ",xmax,", [")
-  prefix := STRCONC(prefix,astring,"], ",STRINGIMAGE iaone,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE la,", ",STRINGIMAGE ladifone,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE ladif,", ",STRINGIMAGE ifail,")")
-  linkGen prefix
-
-e02ajf() ==
-  htInitPage('"E02AJF - Integral of fitted polynomial in Chebyshev series form",nil)
-  htMakePage '(
-    (domainConditions
-      (isDomain F (Float)) 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02ajf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02ajf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Determines the indefinite integral of the Chebyshev series ")
-    (text . "representation \newline \center{\htbitmap{e02ahf1}} ")
-    (text . "of a polynomial, where \htbitmap{xbar} is the normalis")
-    (text . "ed argument, related to the original variable {\it x} by the ")
-    (text . "transformation \blankline \center{\htbitmap{e02adf1}}")
-    (text . ",\htbitmap{xmin} and \htbitmap{xmax} being ")
-    (text . "minimum and maximum values of {\it x} respectively. The integral")
-    (text . " polynomial has the form ")
-    (text . "\blankline \center{\htbitmap{e02ajf}}")
-    (text . "and the integration is with respect to the original variable ")
-    (text . "{\it x} \blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Degree of the polynomial {\it n}:")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 6 n PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "\newline \htbitmap{xmin}: ")
-    (text . "\tab{32} \menuitemstyle{}\tab{34}")
-    (text . "\htbitmap{xmax}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 "-0.5" xmin F))
-    (text . "\tab{34} ")
-    (bcStrings (6 "2.5" xmax F))
---    (text . "\blankline ")
---    (text . "\newline ")
---    (text . "\menuitemstyle{}\tab{2}")
---    (text . "\newline Dimension of array {\it a}, {\it la}: ")
---    (text . "\tab{32} \menuitemstyle{}\tab{34}")
---    (text . "Dimension of {\it aint}, {\it laint}: ")
---    (text . "\newline\tab{2} ")
---    (bcStrings (6 7 la PI))
---    (text . "\tab{34} ")
---    (bcStrings (6 8 laint PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "\newline Index increment of {\it a}, {\it ia1}: ")
-    (text . "\tab{32} \menuitemstyle{}\tab{34}")
-    (text . "Increment of {\it aint}, {\it iaint1}: ")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 1 iaone PI))
-    (text . "\tab{34} ")
-    (bcStrings (6 1 iaintone PI))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Constant of integration {\it qatm1}: ")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 "0.0" qatmone F))
-    (text . "\blankline")
-    (text . "\newline \menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02ajfSolve)
-  htShowPage()
-
-e02ajfSolve htPage ==
-  n :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n)
-    objValUnwrap htpLabelSpadValue(htPage, 'n)
-  xmin := htpLabelInputString(htPage,'xmin)
-  xmax := htpLabelInputString(htPage,'xmax)
-  iaone :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'iaone)
-    objValUnwrap htpLabelSpadValue(htPage, 'iaone)
-  iaintone :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'iaintone)
-    objValUnwrap htpLabelSpadValue(htPage, 'iaintone)
-  la := 1+n*iaone
---    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'la)
---    objValUnwrap htpLabelSpadValue(htPage, 'la)
-  laint := n*iaintone + 1
-  qatmone := htpLabelInputString(htPage,'qatmone)
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  (n = '6 and (la ='7 and laint = '7)) => 
-     e02ajfDefaultSolve(htPage,xmin,xmax,iaone,iaintone,qatmone,ifail)
-  labelList :=
-    "append"/[f(i) for i in 1..la] where f(i) ==
-      prefix := ('"\newline \tab{15} ")
-      anam := INTERN STRCONC ('"a",STRINGIMAGE i)
-      [['text,:prefix],['bcStrings,[10, "0.0000", anam, 'F]]]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList]
-  page := htInitPage("E02AJF - Integral of fitted polynomial in Chebyshev series form",nil)
-  htSay '"\menuitemstyle{}\tab{2} Coefficients of {\it a(la)}: "
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02ajfGen)
-  htpSetProperty(page,'n,n)
-  htpSetProperty(page,'la,la)
-  htpSetProperty(page,'laint,laint)
-  htpSetProperty(page,'xmin,xmin)
-  htpSetProperty(page,'xmax,xmax)
-  htpSetProperty(page,'iaone,iaone)
-  htpSetProperty(page,'iaintone,iaintone)
-  htpSetProperty(page,'qatmone,qatmone)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02ajfDefaultSolve  (htPage,xmin,xmax,iaone,iaintone,qatmone,ifail) ==
-  n := '6
-  la := '7
-  laint := '8
-  page := htInitPage('"E02AJF - Integral of fitted polynomial in Chebyshev series form",nil)
-  htMakePage '(
-    (domainConditions 
-      (isDomain PI (Positive Integer))
-       (isDomain F (Float)))
-    (text . "\menuitemstyle{}\tab{2} ")
-    (text . "Coefficients of {\it a(la)}: ")
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "2.53213" a1 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "1.13032" a2 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.27150" a3 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.04434" a4 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.00547" a5 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.00054" a6 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.00004" a7 F))
-    (text . "\blankline"))
-  htMakeDoneButton('"Continue",'e02ajfGen)    	
-  htpSetProperty(page,'n,n)
-  htpSetProperty(page,'la,la)
-  htpSetProperty(page,'laint,laint)
-  htpSetProperty(page,'xmin,xmin)
-  htpSetProperty(page,'xmax,xmax)
-  htpSetProperty(page,'iaone,iaone)
-  htpSetProperty(page,'iaintone,iaintone)
-  htpSetProperty(page,'qatmone,qatmone)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02ajfGen htPage ==
-  n := htpProperty(htPage,'n)
-  la := htpProperty(htPage,'la)
-  laint := htpProperty(htPage,'laint)
-  xmin := htpProperty(htPage,'xmin)
-  xmax := htpProperty(htPage,'xmax)
-  iaone := htpProperty(htPage,'iaone)
-  iaintone := htpProperty(htPage,'iaintone)
-  qatmone := htpProperty(htPage,'qatmone)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  np1 := n + 1
-  y := alist
-  while y repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y
-    arrayList := [right,:arrayList]
-  astring := bcwords2liststring arrayList
-  prefix := STRCONC('"e02ajf(",STRINGIMAGE np1,", ",xmin,", ",xmax,", [")
-  prefix := STRCONC(prefix,astring,"], ",STRINGIMAGE iaone,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE la,", ",qatmone,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE iaintone)
-  prefix := STRCONC(prefix,", ",STRINGIMAGE laint,", ",STRINGIMAGE ifail,")")
-  linkGen prefix
-
-e02akf() ==
-  htInitPage('"E02AKF - Evaluation of fitted polynomial in one variable, from Chebyshev series form",nil)
-  htMakePage '(
-    (domainConditions
-      (isDomain F (Float)) 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02akf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02akf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Evaluates at the point x the Chebyshev series representation ")
-    (text . "representation \newline \center{\htbitmap{e02ahf1}} ")
-    (text . "of a polynomial, where \htbitmap{xbar} is the normalis")
-    (text . "ed argument, related to the original variable {\it x} by the ")
-    (text . "transformation \blankline \center{\htbitmap{e02adf1}}")
-    (text . ",\htbitmap{xmin} and \htbitmap{xmax} being ")
-    (text . "minimum and maximum values of {\it x} respectively. ")
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Degree of the polynomial {\it n}:")
-    (text . "\tab{32} \menuitemstyle{}\tab{34}")
-    (text . "Evaluation point {\it x}: ")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 6 n PI))
-    (text . "\tab{34} ")
-    (bcStrings (6 "-0.5" x F))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "\newline \htbitmap{xmin}: ")
-    (text . "\tab{32} \menuitemstyle{}\tab{34}")
-    (text . "\htbitmap{xmax}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 "-0.5" xmin F))
-    (text . "\tab{34} ")
-    (bcStrings (6 "2.5" xmax F))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
---    (text . "\newline Dimension of array {\it a}, {\it la} : ")
---    (text . "\tab{32} \menuitemstyle{}\tab{34}")
-    (text . "Index increment of {\it a}, {\it ia1}: ")
-    (text . "\newline\tab{2} ")
---    (bcStrings (6 7 la PI))
---    (text . "\tab{34} ")
-    (bcStrings (6 1 iaone PI))
-    (text . "\blankline")
-    (text . "\newline \menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02akfSolve)
-  htShowPage()
-
-e02akfSolve htPage ==
-  n :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n)
-    objValUnwrap htpLabelSpadValue(htPage, 'n)
-  x := htpLabelInputString(htPage,'x)
-  xmin := htpLabelInputString(htPage,'xmin)
-  xmax := htpLabelInputString(htPage,'xmax)
-  iaone :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'iaone)
-    objValUnwrap htpLabelSpadValue(htPage, 'iaone)
-  la := 1+n*iaone
---    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'la)
---    objValUnwrap htpLabelSpadValue(htPage, 'la)
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  (n = '6 and la ='7) =>  e02akfDefaultSolve(htPage,xmin,xmax,x,iaone,ifail)
-  labelList :=
-    "append"/[f(i) for i in 1..la] where f(i) ==
-      prefix := ('"\newline \tab{15} ")
-      anam := INTERN STRCONC ('"a",STRINGIMAGE i)
-      [['text,:prefix],['bcStrings,[10, "0.0000", anam, 'F]]]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList]
-  page := htInitPage("E02AKF - Evaluation of fitted polynomial in one variable, from Chebyshev series form",nil)
-  htSay '"\menuitemstyle{}\tab{2} Coefficients of {\it a(la)}:"
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02akfGen)
-  htpSetProperty(page,'n,n)
-  htpSetProperty(page,'x,x)
-  htpSetProperty(page,'la,la)
-  htpSetProperty(page,'xmin,xmin)
-  htpSetProperty(page,'xmax,xmax)
-  htpSetProperty(page,'iaone,iaone)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02akfDefaultSolve  (htPage,xmin,xmax,x,iaone,ifail) ==
-  n := '6
-  la := '7
-  page := htInitPage('"E02AKF - Evaluation of fitted polynomial in one variable, from Chebyshev series form",nil)
-  htMakePage '(
-    (domainConditions 
-      (isDomain PI (Positive Integer))
-       (isDomain F (Float)))
-    (text . "\menuitemstyle{}\tab{2} ")
-    (text . "Coefficients of {\it a(la)}: ")
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "2.53213" a1 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "1.13032" a2 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.27150" a3 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.04434" a4 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.00547" a5 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.00054" a6 F))
-    (text . "\newline \tab{15}")
-    (bcStrings (10 "0.00004" a7 F))
-    (text . "\blankline"))
-  htMakeDoneButton('"Continue",'e02akfGen)    	
-  htpSetProperty(page,'n,n)
-  htpSetProperty(page,'la,la)
-  htpSetProperty(page,'x,x)
-  htpSetProperty(page,'xmin,xmin)
-  htpSetProperty(page,'xmax,xmax)
-  htpSetProperty(page,'iaone,iaone)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02akfGen htPage ==
-  n := htpProperty(htPage,'n)
-  x := htpProperty(htPage,'x)
-  la := htpProperty(htPage,'la)
-  xmin := htpProperty(htPage,'xmin)
-  xmax := htpProperty(htPage,'xmax)
-  iaone := htpProperty(htPage,'iaone)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  np1 := n + 1
-  y := alist
-  while y repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y
-    arrayList := [right,:arrayList]
-  astring := bcwords2liststring arrayList
-  prefix := STRCONC('"e02akf(",STRINGIMAGE np1,", ",xmin,", ",xmax,", [")
-  prefix := STRCONC(prefix,astring,"], ",STRINGIMAGE iaone,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE la,", ",x,", ",STRINGIMAGE ifail,")")
-  linkGen prefix
-
-
-e02baf() ==
-  htInitPage('"E02BAF - Least-squares curve cubic spine fit",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02baf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02baf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Determines a least-squares cubic spline approximation to the ")
-    (text . "set of points {\it (}\htbitmap{xr},")
-    (text . "\htbitmap{yr}{\it )} with weights ")
-    (text . "\htbitmap{wr}, for r = 1,2,...,m. ")
-    (text . "The knots \htbitmap{lamdai}, for i = 1,2,...,")
-    (text . "\htbitmap{ncap}+7, are prescribed by the user. The ")
-    (text . "spline is given by the B-spline representation \blankline ")
-    (text . "\center{\htbitmap{e02baf}} where ")
-    (text . "\htbitmap{ncap} is the number of intervals of the ")
-    (text . "spline. \blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of data points {\it m}:")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 14 m PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "Number of intervals in the spline \htbitmap{ncap}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 5 ncap PI))
-    (text . "\blankline")
-    (text . "\newline")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02bafSolve)
-  htShowPage()
-
-e02bafSolve htPage ==
-  m :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
-    objValUnwrap htpLabelSpadValue(htPage, 'm)
-  ncap :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ncap)
-    objValUnwrap htpLabelSpadValue(htPage, 'ncap)
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  (m = '14 and ncap ='5) => e02bafDefaultSolve(htPage,ifail)
-  labelList :=
-    "append"/[f(i) for i in 1..m] where f(i) ==
-      prefix := ('"\newline \tab{2} ")
-      middle := ('"\tab{22} ")
-      post   := ('" \tab{42} ")
-      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
-      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
-      znam := INTERN STRCONC ('"z",STRINGIMAGE i)
-      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
-      [['text,:prefix],['bcStrings,[10, num, xnam, 'F]], 
-       ['text,:middle],['bcStrings,[10, 0.0, ynam, 'F]],
-        ['text,:post],['bcStrings,[10, 0.0, znam, 'F]]]
-  lamdaList := 
-    "append"/[g(j) for j in 5..(ncap+3)] where g(j) ==
-       anam := INTERN STRCONC ('"a",STRINGIMAGE j)
-       [['bcStrings,[6, 0.0, anam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{}\tab{2} Interior knots ")
-  prefix := STRCONC(prefix,"\htbitmap{lamdai}, for i = 5,6,...,")
-  prefix := STRCONC(prefix,"\htbitmap{ncap} + 3: \newline \tab{2}" )
-  lamdaList := [['text,:prefix],:lamdaList]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList,:lamdaList]
-  page := htInitPage("E02BAF - Least-squares curve cubic spline fit",nil)
-  htSay '"\menuitemstyle{}\tab{2} Values of \space{1} "
-  htSay '"\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} "
-  htSay '"Values of \space{1} \htbitmap{fr}: \tab{40}"
-  htSay '"\menuitemstyle{}\tab{42} Values of \space{1} "
-  htSay '"\htbitmap{dr}: "
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02bafGen)
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'ncap,ncap)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02bafDefaultSolve (htPage,ifail) ==
-  m := '14
-  ncap := '5
-  page := htInitPage('"E02BAF - Least-squares curve cubic spline fit",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\menuitemstyle{}\tab{2} Values of \space{1} ")
-    (text . "\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} ")
-    (text . "Values of \space{1} \htbitmap{yr}: \tab{40} ")
-    (text . "\menuitemstyle{}\tab{42} Values of \space{1} ")
-    (text . "\htbitmap{wr}: ")
-    (text . "\newline \tab{2}")
-    (bcStrings (10 "0.20" x1 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.00" y1 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.20" z1 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.47" x2 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "2.00" y2 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.20" z2 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.74" x3 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "4.00" y3 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.30" z3 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "1.09" x4 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "6.00" y4 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.70" z4 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "1.60" x5 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "8.00" y5 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.90" z5 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "1.90" x6 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "8.62" y6 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z6 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "2.60" x7 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "9.10" y7 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z7 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "3.10" x8 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "8.90" y8 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z8 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "4.00" x9 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "8.15" y9 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.80" z9 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "5.15" x10 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "7.00" y10 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.50" z10 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "6.17" x11 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "6.00" y11 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.70" z11 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "8.00" x12 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "4.54" y12 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z12 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "10.00" x13 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "3.39" y13 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z13 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "12.00" x14 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "2.56" y14 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z14 F))
-    (text . "\blankline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "Interior knots \htbitmap{lamdai}, for i = 5,6,...")
-    (text . "\htbitmap{ncap} + 3: \newline \tab{2}")
-    (bcStrings (6 "1.50" l1 F))
-    (bcStrings (6 "2.60" l2 F))
-    (bcStrings (6 "4.00" l3 F))
-    (bcStrings (6 "8.00" l4 F))
-    (text . "\blankline"))
-  htMakeDoneButton('"Continue",'e02bafGen)    	
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'ncap,ncap)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02bafGen htPage ==
-  m := htpProperty(htPage,'m)
-  ncap := htpProperty(htPage,'ncap)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  ncap7 := ncap + 7
-  y := alist
-  for i in (ncap+4)..(ncap+7) repeat
-    lambda := STRCONC( "0.0"," ")
-    lambdaList := [lambda,:lambdaList]
-  for i in 5..(ncap+3) repeat
-    lambda := STRCONC ((first y).1," ")
-    y := rest y
-    lambdaList := [lambda,:lambdaList]
-  for i in 1..4 repeat
-    lambda := STRCONC( "0.0"," ")
-    lambdaList := [lambda,:lambdaList]
-  lambdaString := bcwords2liststring lambdaList
-  while y repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    mid :=  STRCONC ((first y).1," ")
-    y := rest y
-    left :=  STRCONC ((first y).1," ")
-    y := rest y
-    xlist := [left,:xlist]
-    ylist := [mid,:ylist]
-    wlist := [right,:wlist]
-  xstring := bcwords2liststring xlist
-  ystring := bcwords2liststring ylist
-  wstring := bcwords2liststring wlist
-  prefix := STRCONC('"e02baf(",STRINGIMAGE m,", ",STRINGIMAGE ncap7,", [")
-  prefix := STRCONC(prefix,xstring,"],[",ystring,"],[",wstring,"], [")
-  prefix := STRCONC(prefix,lambdaString,"], ",STRINGIMAGE ifail,")")
-  linkGen prefix
-
-
-e02bbf() ==
-  htInitPage('"E02BBF - Evaluation of fitted cubic spline, function only",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02bbf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02bbf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Evaluates at the point {\it x} a cubic spline from its B-spline ")
-    (text . "B-spline representation ")
-    (text . "\center{\htbitmap{e02baf}} where ")
-    (text . "\htbitmap{ncap} is the number of intervals of the ")
-    (text . "spline. The spline has knots \htbitmap{lamdai}, for ")
-    (text . "i = 1,2,...,\htbitmap{ncap} + 7. \blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of intervals in the spline \htbitmap{ncap}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 4 ncap PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "Evaluation point {\it x}:")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 "2.0" x F))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02bbfSolve)
-  htShowPage()
-
-e02bbfSolve htPage ==
-  ncap :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ncap)
-    objValUnwrap htpLabelSpadValue(htPage, 'ncap)
-  x := htpLabelInputString(htPage,'x)
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  ncap = '4  => e02bbfDefaultSolve(htPage,x,ifail)
-  labelList :=
-    "append"/[f(i) for i in 1..(ncap+7)] where f(i) ==
-      prefix := ('"\newline \tab{2} ")
-      middle := ('"\tab{22} ")
-      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
-      cnam := INTERN STRCONC ('"c",STRINGIMAGE i)
-      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
-      [['text,:prefix],['bcStrings,[10, num, lnam, 'F]], 
-       ['text,:middle],['bcStrings,[10, 0.0, cnam, 'F]]]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList]
-  page := htInitPage("E02BBF - Evaluation of fitted cubic spline, function only",nil)
-  htSay '"\menuitemstyle{}\tab{2} Knots \htbitmap{lamdai}: "
-  htSay '"\tab{20} \menuitemstyle{}\tab{22} "
-  htSay '"Coefficients \space{1} \htbitmap{ci}: "
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02bbfGen)
-  htpSetProperty(page,'ncap,ncap)
-  htpSetProperty(page,'x,x)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02bbfDefaultSolve (htPage,x,ifail) ==
-  ncap := '4
-  page := htInitPage('"E02BBF - Evaluation of fitted cubic spline, function only",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} Knots \space{1}")
-    (text . "\htbitmap{lamdai}: \tab{20} \menuitemstyle{}\tab{22} ")
-    (text . "Coefficients \space{1} \htbitmap{ci}: ")
-    (text . "\newline \tab{2}")
-    (bcStrings (10 "1.00" l1 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "1.00" c1 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "1.00" l2 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "2.00" c2 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "1.00" l3 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "4.00" c3 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "1.00" l4 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "7.00" c4 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "3.00" l5 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "6.00" c5 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "6.00" l6 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "4.00" c6 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "8.00" l7 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "3.00" c7 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "9.00" l8 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.00" c8 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "9.00" l9 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.00" c9 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "9.00" l10 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.00" c10 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "9.00" l11 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.00" c11 F))
-    (text . "\blankline"))
-  htMakeDoneButton('"Continue",'e02bbfGen)    	
-  htpSetProperty(page,'ncap,ncap)
-  htpSetProperty(page,'x,x)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02bbfGen htPage ==
-  ncap := htpProperty(htPage,'ncap)
-  x := htpProperty(htPage,'x)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  ncap7 := ncap + 7
-  y := alist
-  while y repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    left :=  STRCONC ((first y).1," ")
-    y := rest y
-    lamlist := [left,:lamlist]
-    clist := [right,:clist]
-  lamstring := bcwords2liststring lamlist
-  cstring := bcwords2liststring clist
-  prefix := STRCONC('"e02bbf(",STRINGIMAGE ncap7,", [",lamstring,"],[")
-  prefix := STRCONC(prefix,cstring,"], ",x,", ",STRINGIMAGE ifail,")")
-  linkGen prefix
-
-
-e02bcf() ==
-  htInitPage('"E02BCF - Evaluation of fitted cubic spline, function and derivatives",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02bcf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02bcf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Evaluates at the point {\it x} a cubic spline and its first ")
-    (text . "three derivatives from its B-spline representation ")
-    (text . "\center{\htbitmap{e02baf}} where ")
-    (text . "\htbitmap{ncap} is the number of intervals of the ")
-    (text . "spline. The spline has knots \htbitmap{lamdai}, for ")
-    (text . "i = 1,2,...,\htbitmap{ncap} + 7. \blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of intervals in the spline \htbitmap{ncap}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 7 ncap PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "Evaluation point {\it x}:")
-    (text . "\newline \tab{2} ")
-    (bcStrings (6 "2.0" x F))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "{\it LEFT} specifies whether LH or RH derivatives are required: ")
-    (radioButtons deriv
-        ("" "  Left-hand derivative" left)
-        ("" "  Right-hand derivative" right))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02bcfSolve)
-  htShowPage()
-
-e02bcfSolve htPage ==
-  ncap :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ncap)
-    objValUnwrap htpLabelSpadValue(htPage, 'ncap)
-  x := htpLabelInputString(htPage,'x)
-  temp := htpButtonValue(htPage,'deriv)
-  deriv :=
-    temp = 'left => '1
-    '2
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  ncap = '7  => e02bcfDefaultSolve(htPage,x,deriv,ifail)
-  labelList :=
-    "append"/[f(i) for i in 1..(ncap+7)] where f(i) ==
-      prefix := ('"\newline \tab{2} ")
-      middle := ('"\tab{22} ")
-      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
-      cnam := INTERN STRCONC ('"c",STRINGIMAGE i)
-      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
-      [['text,:prefix],['bcStrings,[10, num, lnam, 'F]], 
-       ['text,:middle],['bcStrings,[10, 0.0, cnam, 'F]]]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList]
-  page := htInitPage("E02BCF - Evaluation of fitted cubic spline, function and derivatives",nil)
-  htSay '"\menuitemstyle{}\tab{2} Knots \htbitmap{lamdai}: "
-  htSay '"\tab{20} \menuitemstyle{}\tab{22} "
-  htSay '"Coefficients \space{1} \htbitmap{ci}: "
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02bcfGen)
-  htpSetProperty(page,'ncap,ncap)
-  htpSetProperty(page,'x,x)
-  htpSetProperty(page,'deriv,deriv)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02bcfDefaultSolve (htPage,x,deriv,ifail) ==
-  ncap := '7
-  page := htInitPage('"E02BCF - Evaluation of fitted cubic spline, function and derivatives",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\menuitemstyle{}\tab{2} Knots \space{1}")
-    (text . "\htbitmap{lamdai}: \tab{20} \menuitemstyle{}\tab{22} ")
-    (text . "Coefficients \space{1} \htbitmap{ci}: ")
-    (text . "\newline \tab{2}")
-    (bcStrings (10 "0.0" l1 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "10.00" c1 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.00" l2 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "12.00" c2 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.00" l3 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "13.00" c3 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.00" l4 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "15.00" c4 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "1.00" l5 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "22.00" c5 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "3.00" l6 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "26.00" c6 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "3.00" l7 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "24.00" c7 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "3.00" l8 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "18.00" c8 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "4.00" l9 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "14.00" c9 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "4.00" l10 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "12.00" c10 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "6.00" l11 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.00" c11 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "6.00" l12 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.00" c12 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "6.00" l13 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.00" c13 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "6.00" l14 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.00" c14 F))
-    (text . "\blankline"))
-  htMakeDoneButton('"Continue",'e02bcfGen)    	
-  htpSetProperty(page,'ncap,ncap)
-  htpSetProperty(page,'x,x)
-  htpSetProperty(page,'deriv,deriv)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02bcfGen htPage ==
-  ncap := htpProperty(htPage,'ncap)
-  x := htpProperty(htPage,'x)
-  deriv := htpProperty(htPage,'deriv)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  ncap7 := ncap + 7
-  y := alist
-  while y repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    left :=  STRCONC ((first y).1," ")
-    y := rest y
-    lamlist := [left,:lamlist]
-    clist := [right,:clist]
-  lamstring := bcwords2liststring lamlist
-  cstring := bcwords2liststring clist
-  prefix := STRCONC('"e02bcf(",STRINGIMAGE ncap7,", [",lamstring,"],[")
-  prefix := STRCONC(prefix,cstring,"], ",x,", ",STRINGIMAGE deriv)
-  prefix := STRCONC(prefix,", ",STRINGIMAGE ifail,")")
-  linkGen prefix
-
-
-
-e02bdf() ==
-  htInitPage('"E02BDF - Evaluation of fitted cubic spline, definite integral",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02bdf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02bdf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Evaluates the definite integral of a cubic spline from its ")
-    (text . "B-spline representation \center{\htbitmap{e02baf}} ")
-    (text . "where \htbitmap{ncap} is the number of intervals of ")
-    (text . "the spline. The spline has knots \htbitmap{lamdai}, ")
-    (text . "for i = 1,2,...,\htbitmap{ncap} + 7, and the integral ")
-    (text . "is evaluated over the range \htbitmap{e02bdf} ")
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of intervals in the spline \htbitmap{ncap}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 7 ncap PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02bdfSolve)
-  htShowPage()
-
-e02bdfSolve htPage ==
-  ncap :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ncap)
-    objValUnwrap htpLabelSpadValue(htPage, 'ncap)
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  ncap = '7 => e02bdfDefaultSolve(htPage,ifail)
-  labelList :=
-    "append"/[f(i) for i in 1..(ncap+7)] where f(i) ==
-      prefix := ('"\newline \tab{2} ")
-      middle := ('"\tab{22} ")
-      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
-      cnam := INTERN STRCONC ('"c",STRINGIMAGE i)
-      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
-      [['text,:prefix],['bcStrings,[10, num, lnam, 'F]], 
-       ['text,:middle],['bcStrings,[10, 0.0, cnam, 'F]]]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList]
-  page := htInitPage("E02BDF - Evaluation of fitted cubic spline, definite integral",nil)
-  htSay '"\menuitemstyle{}\tab{2} Knots \htbitmap{lamdai}: "
-  htSay '"\tab{20} \menuitemstyle{}\tab{22} "
-  htSay '"Coefficients \space{1} \htbitmap{ci}: "
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02bdfGen)
-  htpSetProperty(page,'ncap,ncap)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02bdfDefaultSolve(htPage,ifail) ==
-  ncap := '7
-  page := htInitPage('"E02BDF - Evaluation of fitted cubic spline, definite integral",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain EM $EmptyMode)
-       (isDomain F (Float))
-       (isDomain I (Integer)))
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} Knots \space{1}")
-    (text . "\htbitmap{lamdai}: \tab{20} \menuitemstyle{}\tab{22} ")
-    (text . "Coefficients \space{1} \htbitmap{ci}: ")
-    (text . "\newline \tab{2}")
-    (bcStrings (10 "0.0" l1 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "10.00" c1 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.00" l2 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "12.00" c2 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.00" l3 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "13.00" c3 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.00" l4 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "15.00" c4 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "1.00" l5 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "22.00" c5 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "3.00" l6 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "26.00" c6 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "3.00" l7 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "24.00" c7 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "3.00" l8 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "18.00" c8 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "4.00" l9 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "14.00" c9 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "4.00" l10 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "12.00" c10 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "6.00" l11 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.00" c11 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "6.00" l12 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.00" c12 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "6.00" l13 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.00" c13 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "6.00" l14 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.00" c14 F)))
-  htpSetProperty(page,'ncap,ncap)
-  htpSetProperty(page,'ifail,ifail)
-  htMakeDoneButton('"Continue",'e02bdfGen)    	
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02bdfGen htPage ==
-  ncap := htpProperty(htPage,'ncap)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  ncap7 := ncap + 7
-  y := alist
-  while y repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    left :=  STRCONC ((first y).1," ")
-    y := rest y
-    lamlist := [left,:lamlist]
-    clist := [right,:clist]
-  lamstring := bcwords2liststring lamlist
-  cstring := bcwords2liststring clist
-  prefix := STRCONC('"e02bdf(",STRINGIMAGE ncap7,", [",lamstring,"],[")
-  prefix := STRCONC(prefix,cstring,"], ",STRINGIMAGE ifail,")")
-  linkGen prefix
-
-
-
-e02bef() ==
-  htInitPage('"E02BEF - Least-squares curve cubic spline fit, automatic knot placement",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02bef} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02bef| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "\newline ")
-    (text . "Determines a cubic spline approximation to the set of points ")
-    (text . "{\it ( \htbitmap{xr},\htbitmap{yr}) } ")
-    (text . "with weights \htbitmap{wr}, for r = 1,2,...,m. ")
-    (text . "The knots \htbitmap{lamdai}, for i = 1,2,...,n, ")
-    (text . "are chosen by the routine, but a single parameter S must be ")
-    (text . "specified to control the trade-off between closeness of fit and ")
-    (text . "smoothness of fit. This affects the number of knots required ")
-    (text . "by the spline, which is given in the B-spline representation ")
-    (text . "\center{\htbitmap{e02bef}}, where n-1 is the number of")
-    (text . " intervals of the spline. ")
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of data points {\it m}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 15 m PI))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Smoothing factor {\it s}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 "1.0" s F))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2}  ")
-    (text . "Over-estimate of number n of knots {\it nest}:\newline\tab{2} ")
-    (bcStrings (6 54 nest PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Start value: ")
-    (radioButtons start
-        ("" "  Cold Start - no values needed for {\it n,lamda,wrk} or {\it iwrk}" cold)
-        ("" "  Warm Start - uses knots found in a previous call" warm))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02befSolve)
-  htShowPage()
-
-e02befSolve htPage ==
-  m :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
-    objValUnwrap htpLabelSpadValue(htPage, 'm)
-  nest :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nest)
-    objValUnwrap htpLabelSpadValue(htPage, 'nest)
-  lwrk := 4*m +16*nest + 41
-  s := htpLabelInputString(htPage,'s)
-  initial := htpButtonValue(htPage,'start)
-  start :=
-    initial = 'cold => '1
-    '2
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  (m = 15 and start = 1) => e02befDefaultSolve (htPage,nest,lwrk,s,ifail)
-  start = 1 => e02befColdSolve (htPage,m,nest,lwrk,s,ifail)
-  -- warm start not really possible from hyperdoc
-  -- as inputing a workspace array of dimension 1105 is asking too much
-  -- user should use the command line, using the previous calculated 
-  -- parameters
-  htInitPage('"E02BEF - Least-squares curve cubic spline fit, automatic knot placement",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\blankline ")
-    (text . "{\center{\it Hyperdoc interface not available for warm starts.}}")
-    (text . "\newline ")
-    (text . "{\center{\it Please use the command line.}}"))
-  htMakeDoneButton('"Continue",'e02bef)
-  htShowPage()
-
-
-
-e02befColdSolve(htPage,m,nest,lwrk,s,ifail) ==
-  labelList :=
-    "append"/[f(i) for i in 1..m] where f(i) ==
-      prefix := ('"\newline \tab{2} ")
-      middle := ('"\tab{22} ")
-      post   := ('" \tab{42} ")
-      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
-      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
-      znam := INTERN STRCONC ('"z",STRINGIMAGE i)
-      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
-      [['text,:prefix],['bcStrings,[10, num, xnam, 'F]], 
-       ['text,:middle],['bcStrings,[10, 0.0, ynam, 'F]],
-        ['text,:post],['bcStrings,[10, 0.0, znam, 'F]]]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList]
-  page := htInitPage('"E02BEF - Least-squares curve cubic spline fit, automatic knot placement",nil)
-  htSay '"\menuitemstyle{}\tab{2} Values of \space{1} "
-  htSay '"\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} "
-  htSay '"Values of \space{1} \htbitmap{yr}: \tab{40}"
-  htSay '"\menuitemstyle{}\tab{42} Values of \space{1} "
-  htSay '"\htbitmap{wr}: "
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02befColdGen)
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'nest,nest)
-  htpSetProperty(page,'lwrk,lwrk)
-  htpSetProperty(page,'s,s)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02befDefaultSolve (htPage,nest,lwrk,s,ifail) ==
-  m := 15
-  page := htInitPage('"E02BEF - Least-squares curve cubic spline fit, automatic knot placement",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} Values of \space{1} ")
-    (text . "\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} ")
-    (text . "Values of \space{1} \htbitmap{yr}: \tab{40} ")
-    (text . "\menuitemstyle{}\tab{42} Values of \space{1} ")
-    (text . "\htbitmap{wr}: ")
-    (text . "\newline \tab{2}")
-    (bcStrings (10 "0.00" x1 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "-1.1" y1 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z1 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "0.50" x2 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "-0.372" y2 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "2.00" z2 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "1.00" x3 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "0.431" y3 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.50" z3 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "1.50" x4 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "1.69" y4 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z4 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "2.00" x5 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "2.11" y5 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "3.00" z5 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "2.50" x6 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "3.10" y6 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z6 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "3.00" x7 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "4.23" y7 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "0.50" z7 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "4.00" x8 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "4.35" y8 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z8 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "4.50" x9 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "4.81" y9 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "2.00" z9 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "5.00" x10 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "4.61" y10 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "2.50" z10 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "5.50" x11 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "4.79" y11 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z11 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "6.00" x12 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "5.23" y12 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "3.00" z12 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "7.00" x13 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "6.35" y13 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z13 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "7.50" x14 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "7.19" y14 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "2.00" z14 F))
-    (text . "\newline \tab{2} ")
-    (bcStrings (10 "8.00" x15 F))
-    (text . "\tab{22} ")
-    (bcStrings (10 "7.97" y15 F))
-    (text . "\tab{42} ")
-    (bcStrings (10 "1.00" z15 F))
-    (text . "\blankline"))
-  htMakeDoneButton('"Continue",'e02befColdGen)    	
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'nest,nest)
-  htpSetProperty(page,'lwrk,lwrk)
-  htpSetProperty(page,'s,s)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02befColdGen htPage ==
-  m := htpProperty(htPage,'m)
-  nest := htpProperty(htPage,'nest)
-  lwrk := htpProperty(htPage,'lwrk)
-  s := htpProperty(htPage,'s)
-  cold := '"c"
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  y := alist
-  while y repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    mid :=  STRCONC ((first y).1," ")
-    y := rest y
-    left :=  STRCONC ((first y).1," ")
-    y := rest y
-    xlist := [left,:xlist]
-    ylist := [mid,:ylist]
-    wlist := [right,:wlist]
-  xstring := bcwords2liststring xlist
-  ystring := bcwords2liststring ylist
-  wstring := bcwords2liststring wlist
-  -- additional entries needed to get it running
-  -- but as Start = c they are not used
-  -- mmax := 50
-  -- nest := mmax + 4 (54)
-  -- lwrk := 4*mmax + 16*nest+41 (1105)
-  prefix := STRCONC('"e02bef(_"",cold,"_",",STRINGIMAGE m,", [",xstring,"],[")
-  prefix := STRCONC(prefix,ystring,"],[",wstring,"], ",STRINGIMAGE s,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE nest,", ",STRINGIMAGE lwrk)
---  prefix := STRCONC(prefix,",0, [[0.0 for i in 1..",STRINGIMAGE nest,"]],")
---  prefix := STRCONC(prefix,STRINGIMAGE ifail,", [[0.0 for i in 1..")
---  prefix := STRCONC(prefix,STRINGIMAGE lwrk,"]], [[0 for i in 1..")
---  prefix := STRCONC(prefix,STRINGIMAGE nest,"]] :: Matrix Integer)")
-  prefix := STRCONC(prefix,",0, new(1,",STRINGIMAGE nest,",0.0)$Matrix DoubleFloat,")
-  prefix := STRCONC(prefix,STRINGIMAGE ifail,", new(1,",STRINGIMAGE lwrk,",0.0)$Matrix DoubleFloat, ")
-  prefix := STRCONC(prefix," new(1,",STRINGIMAGE nest,",0)$Matrix Integer)")
-  linkGen prefix
-
-e02def() == 
-  htInitPage('"E02DEF - Evaluation of a fitted bicubic spline at a vector of points",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02def} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02def| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Evaluates a bicubic spline at the (\htbitmap{xr},")
-    (text . "\htbitmap{yr}), for r = 1,2,...,m, from its B-spline ")
-    (text . "representation \htbitmap{e02daf} ")
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of evaluation points, {\it m}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 7 m PI))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of (interior & exterior) knots ")
-    (text . "\lambda, \htbitmap{px} \htbitmap{great=} 8: \newline\tab{2} ")
-    (bcStrings (6 11 px PI))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of (interior & exterior) knots ")
-    (text . "\mu, \htbitmap{py} \htbitmap{great=} 8: \newline\tab{2} ")
-    (bcStrings (6 10 py PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02defSolve)
-  htShowPage()
-
-e02defSolve htPage ==
-  m :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
-    objValUnwrap htpLabelSpadValue(htPage, 'm)
-  px :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'px)
-    objValUnwrap htpLabelSpadValue(htPage, 'px)
-  py :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'py)
-    objValUnwrap htpLabelSpadValue(htPage, 'py)
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  ((m = '7 and px = '11) and py = '10) => e02defDefaultSolve(htPage,ifail)
-  labelList :=
-    "append"/[fxy(i) for i in 1..m] where fxy(i) ==
-      prefix := ('"\newline \tab{2} ")
-      middle := ('"\tab{22} ")
-      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
-      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
-      [['text,:prefix],['bcStrings,[8, 0.0, xnam, 'F]], 
-       ['text,:middle],['bcStrings,[8, 0.0, ynam, 'F]]]
-  lamList :=
-    "append"/[flam(i) for i in 1..px] where flam(i) ==
-      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, lnam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} {\it \lambda(nxest)}: \newline")
-  lamList := [['text,:prefix],:lamList]
-  muList :=
-    "append"/[fmu(i) for i in 1..(py)] where fmu(i) ==
-      mnam := INTERN STRCONC ('"m",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, mnam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} {\it \mu(nyest)}:")
-  prefix := STRCONC(prefix,"\newline ")
-  muList := [['text,:prefix],:muList]
-  cList :=
-    "append"/[fp(i) for i in 1..((px-4)*(py-4))] where fp(i) ==
-      pnam := INTERN STRCONC ('"p",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, pnam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{}\tab{2}Enter values of ")
-  prefix := STRCONC(prefix,"{\it c((nxest*4)-(nyest*4))}: \newline ")
-  cList := [['text,:prefix],:cList]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList,:lamList,:muList,:cList]
-  page := htInitPage('"E02DEF - Evaluation of a fitted bicubic spline at a vector of points",nil)
-  htSay '"\menuitemstyle{}\tab{2} Values of \htbitmap{xr}: "
-  htSay '"\tab{20} \menuitemstyle{}\tab{22} Values of \htbitmap{yr}:"
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02defGen)
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'px,px)
-  htpSetProperty(page,'py,py)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02defDefaultSolve (htPage,ifail) ==
-  m := '7
-  px := '11
-  py := '10
-  page := htInitPage('"E02DEF - Evaluation of a fitted bicubic spline at a vector of points",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} Values of \htbitmap{xr}:")
-    (text . "\tab{20} \menuitemstyle{} \tab{22} Values of ")
-    (text . "\htbitmap{yr}: ")
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "1" x1 F))  
-    (text . "\tab{22}")
-    (bcStrings (8 "0" y1 F))  
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "1.1" x2 F))  
-    (text . "\tab{22}")
-    (bcStrings (8 "0.1" y2 F))  
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "1.5" x3 F))  
-    (text . "\tab{22}")
-    (bcStrings (8 "0.7" y3 F))  
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "1.6" x4 F))  
-    (text . "\tab{22}")
-    (bcStrings (8 "0.4" y4 F))  
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "1.9" x5 F))  
-    (text . "\tab{22}")
-    (bcStrings (8 "0.3" y5 F))  
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "1.9" x6 F))  
-    (text . "\tab{22}")
-    (bcStrings (8 "0.8" y6 F))  
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "2" x7 F))  
-    (text . "\tab{22}")
-    (bcStrings (8 "1" y7 F))  
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} {\it \lambda(nxest)}:")
-    (text . "\newline ")
-    (bcStrings (8 "1.0" l1 F))
-    (bcStrings (8 "1.0" l2 F))
-    (bcStrings (8 "1.0" l3 F))
-    (bcStrings (8 "1.0" l4 F))
-    (bcStrings (8 "1.3" l5 F))
-    (bcStrings (8 "1.5" l6 F))
-    (bcStrings (8 "1.6" l7 F))
-    (bcStrings (8 "2" l8 F))
-    (bcStrings (8 "2" l9 F))
-    (bcStrings (8 "2" l10 F))
-    (bcStrings (8 "2" l11 F))
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} {\it \mu(nyest)}:")
-    (text . "\newline ")
-    (bcStrings (8 "0" mu1 F))
-    (bcStrings (8 "0" mu2 F))
-    (bcStrings (8 "0" mu3 F))
-    (bcStrings (8 "0" mu4 F))
-    (bcStrings (8 "0.4" mu5 F))
-    (bcStrings (8 "0.7" mu6 F))
-    (bcStrings (8 "1" mu7 F))
-    (bcStrings (8 "1" mu8 F))
-    (bcStrings (8 "1" mu9 F))
-    (bcStrings (8 "1" mu10 F))
-    (text . "\blankline \menuitemstyle{}\tab{2} ")
-    (text . "Enter values for {\it c((nxest-4)*(nyest-4))}:")
-    (text . "\newline ")
-    (bcStrings (8 "1" c1 F))	
-    (bcStrings (8 "1.1333" c2 F))	
-    (bcStrings (8 "1.3667" c3 F))	
-    (bcStrings (8 "1.7" c4 F))	
-    (bcStrings (8 "1.9" c5 F))	
-    (bcStrings (8 "2" c6 F))	
-    (bcStrings (8 "1.2" c7 F))	
-    (bcStrings (8 "1.3333" c8 F))	
-    (bcStrings (8 "1.5667" c9 F))	
-    (bcStrings (8 "1.9" c10 F))	
-    (bcStrings (8 "2.1" c11 F))	
-    (bcStrings (8 "2.2" c12 F))	
-    (bcStrings (8 "1.5833" c13 F))	
-    (bcStrings (8 "1.7167" c14 F))	
-    (bcStrings (8 "1.95" c15 F))	
-    (bcStrings (8 "2.2833" c16 F))	
-    (bcStrings (8 "2.4833" c17 F))	
-    (bcStrings (8 "2.5833" c18 F))	
-    (bcStrings (8 "2.1433" c19 F))	
-    (bcStrings (8 "2.2767" c20 F))	
-    (bcStrings (8 "2.51" c21 F))	
-    (bcStrings (8 "2.8433" c22 F))	
-    (bcStrings (8 "3.0433" c23 F))	
-    (bcStrings (8 "3.1433" c24 F))	
-    (bcStrings (8 "2.8667" c25 F))	
-    (bcStrings (8 "3" c26 F))	
-    (bcStrings (8 "3.2333" c27 F))	
-    (bcStrings (8 "3.5667" c28 F))	
-    (bcStrings (8 "3.7667" c29 F))	
-    (bcStrings (8 "3.8667" c30 F))	
-    (bcStrings (8 "3.4667" c31 F))	
-    (bcStrings (8 "3.6" c32 F))	
-    (bcStrings (8 "3.8333" c33 F))	
-    (bcStrings (8 "4.1667" c34 F))	
-    (bcStrings (8 "4.3667" c35 F))	
-    (bcStrings (8 "4.4667" c36 F))	
-    (bcStrings (8 "4" c37 F))	
-    (bcStrings (8 "4.1333" c38 F))	
-    (bcStrings (8 "4.3667" c39 F))	
-    (bcStrings (8 "4.7" c40 F))	
-    (bcStrings (8 "4.9" c41 F))	
-    (bcStrings (8 "5" c42 F))	
-    (text . "\blankline "))
-  htMakeDoneButton('"Continue",'e02defGen)    	
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'px,px)
-  htpSetProperty(page,'py,py)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02defGen htPage ==
-  m := htpProperty(htPage,'m)
-  px := htpProperty(htPage,'px)
-  py := htpProperty(htPage,'py)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  y := alist
-  -- c
-  for i in 1..((px-4)*(py-4)) repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y
-    cList := [right,:cList]
-  cstring := bcwords2liststring cList
-  -- mu 
-  for i in 1..py repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    muList := [right,:muList]
-  mustring := bcwords2liststring muList
-  -- lamda
-  for i in 1..px repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    lamList := [right,:lamList]
-  lamstring := bcwords2liststring lamList
-  -- x & y
-  while y repeat
-    one := STRCONC((first y).1," ")
-    y := rest y
-    two := STRCONC((first y).1," ")
-    y := rest y
-    xlist := [two,:xlist]
-    ylist := [one,:ylist]
-  xstring := bcwords2liststring xlist
-  ystring := bcwords2liststring ylist
-  prefix := STRCONC('"e02def(",STRINGIMAGE m,", ",STRINGIMAGE px,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE py,",[",xstring,"],[",ystring,"],[")
-  prefix := STRCONC(prefix,lamstring,"],[",mustring,"],[",cstring,"],")
-  prefix := STRCONC(prefix,STRINGIMAGE ifail,")")
-  linkGen prefix
-
-
-e02dff() == 
-  htInitPage('"E02DFF - Evaluation of a fitted bicubic spline at a mesh of points",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02dff} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02dff| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Evaluates a bicubic spline at all the points on a rectangular ")
-    (text . "grid defined by \htbitmap{mx} points ")
-    (text . "\htbitmap{xq}on the x-axis and \htbitmap{my}")
-    (text . "points \htbitmap{yr} on the y-axis, from its B-spline ")
-    (text . "representation \center{\htbitmap{e02daf}} \newline with knot sets ")
-    (text . "\{\lambda\} and \{\mu\}. ")
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "\newline Grid points on x-axis \htbitmap{mx}: ")
-    (text . "\tab{32} \menuitemstyle{}\tab{34}")
-    (text . "Grid points on y-axis \htbitmap{my}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 7 mx PI))
-    (text . "\tab{34} ")
-    (bcStrings (6 6 my PI))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} ")
-    (text . "Number of (interior & exterior) knots \lambda, ")
-    (text . "\htbitmap{px} \htbitmap{great=} 8: \newline\tab{2} ")
-    (bcStrings (6 11 px PI))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} ")
-    (text . "Number of (interior & exterior) knots \mu, ")
-    (text . "\htbitmap{py} \htbitmap{great=} 8: \newline\tab{2} ")
-    (bcStrings (6 10 py PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02dffSolve)
-  htShowPage()
-
-e02dffSolve htPage ==
-  mx :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'mx)
-    objValUnwrap htpLabelSpadValue(htPage, 'mx)
-  my :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'my)
-    objValUnwrap htpLabelSpadValue(htPage, 'my)
-  px :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'px)
-    objValUnwrap htpLabelSpadValue(htPage, 'px)
-  py :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'py)
-    objValUnwrap htpLabelSpadValue(htPage, 'py)
-  nwrk1 := 4*mx + px
-  nwrk2 := 4*my + py
-  nwrklist := [nwrk1,nwrk2]
-  nwrkmin := APPLY ('MIN, nwrklist)
-  lwrk := nwrkmin
-  liwrk :=
-    nwrkmin = nwrk2 => my + py -4
-    mx + px -4
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  ((mx = '7 and my = '6) and (px = '11 and py = '10)) => 
-    e02dffDefaultSolve(htPage,lwrk,liwrk,ifail)
-  xList :=
-    "append"/[fx(i) for i in 1..mx] where fx(i) ==
-      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, xnam, 'F]]]
-  yList :=
-    "append"/[fy(i) for i in 1..my] where fy(i) ==
-      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, ynam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} Enter values of ")
-  prefix := STRCONC(prefix,"\htbitmap{yr} : \newline")
-  yList := [['text,:prefix],:yList]
-  lamList :=
-    "append"/[flam(i) for i in 1..px] where flam(i) ==
-      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, lnam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{}\tab{2} {\it \lambda(nxest)}:\newline")
-  lamList := [['text,:prefix],:lamList]
-  muList :=
-    "append"/[fmu(i) for i in 1..(py)] where fmu(i) ==
-      mnam := INTERN STRCONC ('"m",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, mnam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} {\it mu(nyest)}:")
-  prefix := STRCONC(prefix,"\newline ")
-  muList := [['text,:prefix],:muList]
-  cList :=
-    "append"/[fp(i) for i in 1..((px-4)*(py-4))] where fp(i) ==
-      pnam := INTERN STRCONC ('"p",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, pnam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{}\tab{2} Enter values of ")
-  prefix := STRCONC(prefix,"{\it c((px-4)*(py-4))}: \newline")
-  cList := [['text,:prefix],:cList]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :xList,:yList,:lamList,:muList,:cList]
-  page := htInitPage('"E02DFF - Evaluation of a fitted bicubic spline at a mesh of points",nil)
-  htSay '"\menuitemstyle{}\tab{2} Values of \htbitmap{xr}:\newline "
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02dffGen)
-  htpSetProperty(page,'mx,mx)
-  htpSetProperty(page,'my,my)
-  htpSetProperty(page,'px,px)
-  htpSetProperty(page,'py,py)
-  htpSetProperty(page,'lwrk,lwrk)
-  htpSetProperty(page,'liwrk,liwrk)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02dffDefaultSolve (htPage,lwrk,liwrk,ifail) ==
-  mx := '7
-  my := '6
-  px := '11
-  py := '10
-  page := htInitPage('"E02DFF - Evaluation of a fitted bicubic spline at a mesh of points",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} Enter values of \htbitmap{xr}:")
-    (text . "\newline ")
-    (bcStrings (8 "1" x1 F))  
-    (bcStrings (8 "1.1" x2 F))  
-    (bcStrings (8 "1.3" x3 F))  
-    (bcStrings (8 "1.4" x4 F))  
-    (bcStrings (8 "1.5" x5 F))  
-    (bcStrings (8 "1.7" x6 F))  
-    (bcStrings (8 "2" x7 F))  
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} Enter values of \htbitmap{yr}:")
-    (text . "\newline ")
-    (bcStrings (8 "0" y1 F))  
-    (bcStrings (8 "0.2" y2 F))  
-    (bcStrings (8 "0.4" y3 F))  
-    (bcStrings (8 "0.6" y4 F))  
-    (bcStrings (8 "0.8" y5 F))  
-    (bcStrings (8 "1" y6 F))  
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} Enter values of {\it \lambda(nxest)}:")
-    (text . "\newline ")
-    (bcStrings (8 "1" l1 F))
-    (bcStrings (8 "1" l2 F))
-    (bcStrings (8 "1" l3 F))
-    (bcStrings (8 "1" l4 F))
-    (bcStrings (8 "1.3" l5 F))
-    (bcStrings (8 "1.5" l6 F))
-    (bcStrings (8 "1.6" l7 F))
-    (bcStrings (8 "2" l8 F))
-    (bcStrings (8 "2" l9 F))
-    (bcStrings (8 "2" l10 F))
-    (bcStrings (8 "2" l11 F))
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} Enter values of {\it \mu(nyest)}:")
-    (text . "\newline ")
-    (bcStrings (8 "0" mu1 F))
-    (bcStrings (8 "0" mu2 F))
-    (bcStrings (8 "0" mu3 F))
-    (bcStrings (8 "0" mu4 F))
-    (bcStrings (8 "0.4" mu5 F))
-    (bcStrings (8 "0.7" mu6 F))
-    (bcStrings (8 "1" mu7 F))
-    (bcStrings (8 "1" mu8 F))
-    (bcStrings (8 "1" mu9 F))
-    (bcStrings (8 "1" mu10 F))
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} Enter values of {\it c((px-4)*(py-4))}:")
-    (text . "\newline ")
-    (bcStrings (8 "1" c1 F))	
-    (bcStrings (8 "1.1333" c2 F))	
-    (bcStrings (8 "1.3667" c3 F))	
-    (bcStrings (8 "1.7" c4 F))	
-    (bcStrings (8 "1.9" c5 F))	
-    (bcStrings (8 "2" c6 F))	
-    (bcStrings (8 "1.2" c7 F))	
-    (bcStrings (8 "1.3333" c8 F))	
-    (bcStrings (8 "1.5667" c9 F))	
-    (bcStrings (8 "1.9" c10 F))	
-    (bcStrings (8 "2.1" c11 F))	
-    (bcStrings (8 "2.2" c12 F))	
-    (bcStrings (8 "1.5833" c13 F))	
-    (bcStrings (8 "1.7167" c14 F))	
-    (bcStrings (8 "1.95" c15 F))	
-    (bcStrings (8 "2.2833" c16 F))	
-    (bcStrings (8 "2.4833" c17 F))	
-    (bcStrings (8 "2.5833" c18 F))	
-    (bcStrings (8 "2.1433" c19 F))	
-    (bcStrings (8 "2.2767" c20 F))	
-    (bcStrings (8 "2.51" c21 F))	
-    (bcStrings (8 "2.8433" c22 F))	
-    (bcStrings (8 "3.0433" c23 F))	
-    (bcStrings (8 "3.1433" c24 F))	
-    (bcStrings (8 "2.8667" c25 F))	
-    (bcStrings (8 "3" c26 F))	
-    (bcStrings (8 "3.2333" c27 F))	
-    (bcStrings (8 "3.5667" c28 F))	
-    (bcStrings (8 "3.7667" c29 F))	
-    (bcStrings (8 "3.8667" c30 F))	
-    (bcStrings (8 "3.4667" c31 F))	
-    (bcStrings (8 "3.6" c32 F))	
-    (bcStrings (8 "3.8333" c33 F))	
-    (bcStrings (8 "4.1667" c34 F))	
-    (bcStrings (8 "4.3667" c35 F))	
-    (bcStrings (8 "4.4667" c36 F))	
-    (bcStrings (8 "4" c37 F))	
-    (bcStrings (8 "4.1333" c38 F))	
-    (bcStrings (8 "4.3667" c39 F))	
-    (bcStrings (8 "4.7" c40 F))	
-    (bcStrings (8 "4.9" c41 F))	
-    (bcStrings (8 "5" c42 F))	
-    (text . "\blankline"))
-  htMakeDoneButton('"Continue",'e02dffGen)    	
-  htpSetProperty(page,'mx,mx)
-  htpSetProperty(page,'my,my)
-  htpSetProperty(page,'px,px)
-  htpSetProperty(page,'py,py)
-  htpSetProperty(page,'lwrk,lwrk)
-  htpSetProperty(page,'liwrk,liwrk)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02dffGen htPage ==
-  mx := htpProperty(htPage,'mx)
-  my := htpProperty(htPage,'my)
-  px := htpProperty(htPage,'px)
-  py := htpProperty(htPage,'py)
-  lwrk := htpProperty(htPage,'lwrk)
-  liwrk := htpProperty(htPage,'liwrk)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  y := alist
-  -- c
-  for i in 1..((px-4)*(py-4)) repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y
-    cList := [right,:cList]
-  cstring := bcwords2liststring cList
-  -- mu 
-  for i in 1..py repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    muList := [right,:muList]
-  mustring := bcwords2liststring muList
-  -- lamda
-  for i in 1..px repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    lamList := [right,:lamList]
-  lamstring := bcwords2liststring lamList
-  -- y
-  for i in 1..my repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    yList := [right,:yList]
-  ystring := bcwords2liststring yList
-  -- x 
-  for i in 1..mx repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    xList := [right,:xList]
-  xstring := bcwords2liststring xList
-  prefix := STRCONC('"e02dff(",STRINGIMAGE mx,", ",STRINGIMAGE my,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE px,", ",STRINGIMAGE py,",[")
-  prefix := STRCONC(prefix,xstring,"],[",ystring,"],[",lamstring,"],[")
-  prefix := STRCONC(prefix,mustring,"],[",cstring,"],",STRINGIMAGE lwrk,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE liwrk,", ",STRINGIMAGE ifail,")")
-  linkGen prefix
-
-e02gaf() ==
-  htInitPage('"E02GAF - \htbitmap{l1}-approximation by general linear function",nil)
-  htMakePage '(
-    (domainConditions 
-      (isDomain F (Float))
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02gaf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02gaf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Calculates an \htbitmap{l1} solution to the over determined system")
-    (text . " of linear equations {\it Ax = b}, where A is an {\it m} by {\it n")
-    (text . "} matrix, {\it x} is an {\it n} element vector, and {\it b} is an ")
-    (text . "{\it m} element vector.  The matrix {\it A} need not be of full ")
-    (text . "rank. \blankline ")
-    (text . "\menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of rows of {\it A}, {\it m}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 5 m PI))
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of columns of {\it A}, {\it n}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 3 n PI))
---    (text . "\blankline ")
---    (text . "\menuitemstyle{}\tab{2} \newline ")
---    (text . "First dimension of {\it A(la,n+2)}, {\it la}\htbitmap{great=}")
---    (text . " {\it m + 2}: \newline\tab{2} ")
---    (bcStrings (6 7 la PI))
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} \newline ")
-    (text . "Tolerance (default is zero), {\it toler}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (10 "0.0" toler F))
-    (text . "\blankline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02gafSolve)
-  htShowPage()
-
-e02gafSolve htPage ==
-  m :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
-    objValUnwrap htpLabelSpadValue(htPage, 'm)
-  n :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n)
-    objValUnwrap htpLabelSpadValue(htPage, 'n)
-  la := m+2
---    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'la)
---    objValUnwrap htpLabelSpadValue(htPage, 'la)
-  toler := htpLabelInputString(htPage,'toler)
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  ((m = 5 and n = 3) and la = 7) => e02gafDefaultSolve (htPage,toler,ifail) 
-  labelList :=
-    "append"/[fc(i,n) for i in 1..la] where fc(i,n) ==
-      tempList := 
-        "append"/[fr(i,j) for j in 1..(n+2)] where fr(i,j) == 
-          fnam := INTERN STRCONC ('"f",STRINGIMAGE i, STRINGIMAGE j)
-          [['bcStrings,[9, 0.0, fnam, 'F]]]
-      prefix := ('"\newline ")
-      tempList := [['text,:prefix],:tempList]
-  bList := 
-    "append"/[fb(i) for i in 1..m] where fb(i) ==
-      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
-      [['bcStrings,[9, 0.0, lnam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} Values of {\it B(m)}: \newline")
-  bList := [['text,:prefix],:bList]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList,:bList]
-  page := htInitPage('"E02GAF - \htbitmap{l1}-approximation by general linear function",nil)
-  htSay '"\menuitemstyle{}\tab{2} Values of {\it A(la,n+2)}:"
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02gafGen)
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'n,n)
-  htpSetProperty(page,'la,la)
-  htpSetProperty(page,'toler,toler)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02gafDefaultSolve (htPage,toler,ifail) ==
-  m := '5
-  n := '3
-  la := '7
-  page := htInitPage('"E02GAF - \htbitmap{l1}-approximation by general linear function",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} Values of {\it A(la,n+2)}:")
-    (text . "\newline ")
-    (bcStrings (9 "1.0" a11 F))  
-    (bcStrings (9 "1.0" a12 F))  
-    (bcStrings (9 "1.0" a13 F))  
-    (bcStrings (9 "0.0" a14 F))  
-    (bcStrings (9 "0.0" a15 F))  
-    (text . "\newline ")
-    (bcStrings (9 "exp(0.2)" a21 F))  
-    (bcStrings (9 "exp(-0.2)" a22 F))  
-    (bcStrings (9 "1.0" a23 F))  
-    (bcStrings (9 "0.0" a24 F))  
-    (bcStrings (9 "0.0" a25 F))  
-    (text . "\newline ")
-    (bcStrings (9 "exp(0.4)" a31 F))  
-    (bcStrings (9 "exp(-0.4)" a32 F))  
-    (bcStrings (9 "1.0" a33 F))  
-    (bcStrings (9 "0.0" a34 F))  
-    (bcStrings (9 "0.0" a35 F))  
-    (text . "\newline ")
-    (bcStrings (9 "exp(0.6)" a41 F))  
-    (bcStrings (9 "exp(-0.6)" a42 F))  
-    (bcStrings (9 "1.0" a43 F))  
-    (bcStrings (9 "0.0" a44 F))  
-    (bcStrings (9 "0.0" a45 F))  
-    (text . "\newline ")
-    (bcStrings (9 "exp(0.8)" a51 F))  
-    (bcStrings (9 "exp(-0.8)" a52 F))  
-    (bcStrings (9 "1.0" a53 F))  
-    (bcStrings (9 "0.0" a54 F))  
-    (bcStrings (9 "0.0" a55 F))  
-    (text . "\newline ")
-    (bcStrings (9 "0.0" a61 F))  
-    (bcStrings (9 "0.0" a62 F))  
-    (bcStrings (9 "0.0" a63 F))  
-    (bcStrings (9 "0.0" a64 F))  
-    (bcStrings (9 "0.0" a65 F))  
-    (text . "\newline ")
-    (bcStrings (9 "0.0" a71 F))  
-    (bcStrings (9 "0.0" a72 F))  
-    (bcStrings (9 "0.0" a73 F))  
-    (bcStrings (9 "0.0" a74 F))  
-    (bcStrings (9 "0.0" a75 F))  
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} Values of {\it B(m)}:")
-    (text . "\newline ")
-    (bcStrings (9 "4.501" b1 F))  
-    (bcStrings (9 "4.36" b2 F))  
-    (bcStrings (9 "4.333" b3 F))  
-    (bcStrings (9 "4.418" b4 F))  
-    (bcStrings (9 "4.625" b5 F)))  
-  htMakeDoneButton('"Continue",'e02gafGen)    	
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'n,n)
-  htpSetProperty(page,'toler,toler)
-  htpSetProperty(page,'la,la)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02gafGen htPage ==
-  m := htpProperty(htPage,'m)
-  n := htpProperty(htPage,'n)
-  la := htpProperty(htPage,'la)
-  toler := htpProperty(htPage,'toler)
-  ifail := htpProperty(htPage,'ifail)
-  nplustwo := n + 2
-  alist := htpInputAreaAlist htPage
-  y := alist
-  for i in 1..m repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    blist := [right,:blist]    
-  bstring := bcwords2liststring blist
-  y := REVERSE y
-  k := -1
-  matform := [[y.(k := k + 1).1 for j in 0..(nplustwo-1)] for i in 0..(la-1)]
-  matstring := bcwords2liststring [bcwords2liststring x for x in matform] 
-  prefix := STRCONC('"e02gaf(",STRINGIMAGE m,", ",STRINGIMAGE la,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE nplustwo,", ",STRINGIMAGE toler,", ")
-  prefix := STRCONC(prefix,matstring,",[",bstring,"], ")
-  prefix := STRCONC(prefix,STRINGIMAGE ifail,")")
-  linkGen prefix
-
-
-e02daf() == 
-  htInitPage('"E02DAF - Least-squares surface fit, bicubic splines",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02daf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02daf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Determines a minimal, least squares bicubic B-spline surface fit")
-    (text . "\htbitmap{e02daf} to the set of points ")
-    (text . "{\em (\htbitmap{xr},\htbitmap{yr},\htbitmap{fr})} with weights ")
-    (text . "\htbitmap{wr}, for r = 1,2,...,m. The user must supply internal ")
-    (text . "knot sets {\lambda},in the x-direction and {\mu} in the ")
-    (text . "y-direction, ")
-    (text . "which can be thought of as dividing the data region into panels;")
-    (text . "s(x,y) consists of a seperate bicubic polynomial in each panel, ")
-    (text . "the polynomial joining together with second derivative ")
-    (text . "continuity. Eight additional (external) knots are added to each ")
-    (text . "of the knot sets by this routine. The routine minimizes \Sigma, ")
-    (text . "the sum of squares of the weighted residuals ")
-    (text . "\htbitmap{e02daf1}, for r = 1,2,...,m, subject to the ")
-    (text . "given knot sets. \newline ")
-    (text . "A call of this routine should be preceded by a call of E02ZAF ")
-    (text . "to provide indexing information. ")
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of data points {\it m}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 30 m PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "\newline Knots in x direction {\em px}")
-    (text . "\htbitmap{great=} 8: \tab{32} \menuitemstyle{}\tab{34}")
-    (text . "Knots in y direction {\em py}:")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 8 px PI))
-    (text . "\tab{34} ")
-    (bcStrings (6 10 py PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "\newline Rank threshold {\em eps}:")
-    (text . "\newline\tab{2} ")
-    (bcStrings (10 "0.000001" eps F))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Dimension of point {\it npoint}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 43 npoint PI))
-    -- include a radio button later to allow switching of
-    -- x & y if px <= py 
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02dafSolve)
-  htShowPage()
-
-e02dafSolve htPage ==
-  m :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
-    objValUnwrap htpLabelSpadValue(htPage, 'm)
-  px :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'px)
-    objValUnwrap htpLabelSpadValue(htPage, 'px)
-  py :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'py)
-    objValUnwrap htpLabelSpadValue(htPage, 'py)
-  npoint :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'npoint)
-    objValUnwrap htpLabelSpadValue(htPage, 'npoint)
-  nc := (px - 4)*(py - 4)
-  nws := (2*nc + 1)*(3*py - 6) -2
-  eps := htpLabelInputString(htPage,'eps)
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  ((m = '30 and px = '8) and py = '10) => e02dafDefaultSolve(htPage,eps,nws,npoint,ifail)
-  labelList :=
-    "append"/[fxy(i) for i in 1..m] where fxy(i) ==
-      prefix := ('"\newline \tab{2} ")
-      middle := ('"\tab{17} ")
-      next := ('"\tab{32} ")
-      end := ('"\tab{47} ")
-      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
-      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
-      fnam := INTERN STRCONC ('"f",STRINGIMAGE i)
-      wnam := INTERN STRCONC ('"w",STRINGIMAGE i)
-      [['text,:prefix],['bcStrings,[8, 0.0, xnam, 'F]], 
-       ['text,:middle],['bcStrings,[8, 0.0, ynam, 'F]],
-         ['text,:next],['bcStrings,[8, 0.0, fnam, 'F]],
-           ['text,:end],['bcStrings,[8, 0.0, wnam, 'F]]]
-  lamList :=
-    "append"/[flam(i) for i in 5..(px-4)] where flam(i) ==
-      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, lnam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} lamda(5) to lamda(px-4): ")
-  prefix := STRCONC(prefix,"\newline \tab{2} ")
-  postfix := ('"\newline \blankline ")
-  lamList := [['text,:prefix],:lamList,['text,:postfix]]
-  muList :=
-    "append"/[fmu(i) for i in 5..(py-4)] where fmu(i) ==
-      mnam := INTERN STRCONC ('"m",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, mnam, 'F]]]
-  prefix := ('"\menuitemstyle{} \tab{2} mu(5) to mu(py-4):")
-  prefix := STRCONC(prefix,"\newline \tab{2} ")
-  muList := [['text,:prefix],:muList]
-  pList :=
-    "append"/[fp(i) for i in 1..npoint] where fp(i) ==
-      prefix := ('"\newline \tab{2} ")
-      pnam := INTERN STRCONC ('"p",STRINGIMAGE i)
-      [['text,:prefix],['bcStrings,[8, 0.0, pnam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} Enter values of Point: ")
-  pList := [['text,:prefix],:pList]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList,:lamList,:muList,:pList]
-  page := htInitPage('"E02DAF - Least-squares surface fit, bicubic splines",nil)
-  htSay '"\menuitemstyle{}\tab{2} Values of \htbitmap{xr}: "
-  htSay '"\tab{15} \menuitemstyle{}\tab{17} Values of \htbitmap{yr}:"
-  htSay '"\tab{30} \menuitemstyle{}\tab{32} Values of \htbitmap{fr}:" 
-  htSay '"\tab{44} \menuitemstyle{}\tab{46} Values of \htbitmap{wr}:"
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02dafGen)
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'px,px)
-  htpSetProperty(page,'py,py)
-  htpSetProperty(page,'nws,nws)
-  htpSetProperty(page,'eps,eps)
-  htpSetProperty(page,'npoint,npoint)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02dafDefaultSolve (htPage,eps,nws,npoint,ifail) ==
-  m := '30
-  px := '8
-  py := '10
-  page := htInitPage('"E02DAF - Least-squares surface fit, bicubic splines",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} Values of \htbitmap{xr}:")
-    (text . "\tab{15} \menuitemstyle{} \tab{17} Values of ")
-    (text . "\htbitmap{yr}: \tab{30} \menuitemstyle{} \tab{32} ")
-    (text . "Values of \htbitmap{fr}: \tab{44} \menuitemstyle{} ")
-    (text . "\tab{46} Values of \htbitmap{wr}:")
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.52" x1 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.60" y1 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.93" f1 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "10" w1 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.61" x2 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "-0.95" y2 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "-1.79" f2 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "10" w2 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.93" x3 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.87" y3 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.36" f3 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "10" w3 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.09" x4 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.84" y4 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.52" f4 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "10" w4 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.88" x5 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.17" y5 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.49" f5 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "10" w5 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.70" x6 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "-0.87" y6 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "-1.76" f6 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "10" w6 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "1" x7 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "1" y7 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.33" f7 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w7 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "1" x8 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.1" y8 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.48" f8 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w8 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.3" x9 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.24" y9 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.65" f9 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w9 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.77" x10 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "-0.77" y10 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "-1.82" f10 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w10 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.23" x11 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.32" y11 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.92" f11 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w11 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-1" x12 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "1" y12 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "1" f12 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w12 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.26" x13 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "-0.63" y13 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "8.88" f13 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w13 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.83" x14 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "-0.66" y14 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "-2.01" f14 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w14 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.22" x15 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.93" y15 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.47" f15 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w15 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.89" x16 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.15" y16 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.49" f16 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w16 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.80" x17 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.99" y17 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.84" f17 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w17 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.88" x18 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "-0.54" y18 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "-2.42" f18 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w18 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.68" x19 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.44" y19 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.47" f19 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w19 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.14" x20 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "-0.72" y20 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "7.15" f20 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w20 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.67" x21 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.63" y21 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.44" f21 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w21 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.90" x22 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "-0.40" y22 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "-3.34" f22 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w22 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.84" x23 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.20" y23 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "2.78" f23 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w23 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.84" x24 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.43" y24 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.44" f24 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w24 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.15" x25 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.28" y25 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.70" f25 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w25 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.91" x26 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "-0.24" y26 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "-6.52" f26 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w26 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.35" x27 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.86" y27 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "0.66" f27 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w27 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.16" x28 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "-0.41" y28 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "2.32" f28 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w28 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-0.35" x29 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "-0.05" y29 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "1.66" f29 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w29 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "-1" x30 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "-1" y30 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "-1" f30 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w30 F))    
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} mu(5) to mu(py-4):")
-    (text . "\newline \tab{2}")
-    (bcStrings (8 "-0.50" mu5 F))
-    (bcStrings (8 "0.00" mu6 F))
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} Enter values for point:")
-    (text . "\newline \tab{2}")
-    (bcStrings (6 3 p1 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 6 p2 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 4 p3 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 5 p4 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 7 p5 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 10 p6 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 8 p7 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 9 p8 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 11 p9 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 13 p10 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 12 p11 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 15 p12 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 14 p13 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 18 p14 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 16 p15 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 17 p16 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 19 p17 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 20 p18 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 21 p19 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 30 p20 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 23 p21 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 26 p22 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 24 p23 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 25 p24 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 27 p25 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 28 p26 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 0 p27 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 29 p28 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 0 p29 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 0 p30 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 2 p31 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 22 p32 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 1 p33 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 0 p34 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 0 p35 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 0 p36 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 0 p37 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 0 p38 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 0 p39 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 0 p40 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 0 p41 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 0 p42 PI))	
-    (text . "\newline \tab{2}")
-    (bcStrings (6 0 p43 PI))	
-    (text . "\blankline"))
-  htMakeDoneButton('"Continue",'e02dafGen)    	
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'px,px)
-  htpSetProperty(page,'py,py)
-  htpSetProperty(page,'nws,nws)
-  htpSetProperty(page,'eps,eps)
-  htpSetProperty(page,'npoint,npoint)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02dafGen htPage ==
-  m := htpProperty(htPage,'m)
-  px := htpProperty(htPage,'px)
-  py := htpProperty(htPage,'py)
-  nws := htpProperty(htPage,'nws)
-  eps := htpProperty(htPage,'eps)
-  npoint := htpProperty(htPage,'npoint)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  y := alist
-  nadres := (px-7)*(py-7)
-  -- point
-  for i in 1..npoint repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y
-    pointList := [right,:pointList]
-  pstring := bcwords2liststring pointList
-  -- mu 
-  for i in 1..4 repeat
-    muList := ['"0 ",:muList]
-  for i in 5..(py-4) repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    muList := [right,:muList]
-  for i in (py-3)..py repeat
-    muList := ['"0 ",:muList]
-  mustring := bcwords2liststring muList
-  -- lamda
-  for i in 1..4 repeat
-    lamList := ['"0 ",:lamList]
-  for i in 5..(px-4) repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    lamList := [right,:lamList]
-  for i in (px-3)..px repeat
-    lamList := ['"0 ",:lamList]
-  lamstring := bcwords2liststring lamList
-  -- x & y
-  while y repeat
-    one := STRCONC((first y).1," ")
-    y := rest y
-    two := STRCONC((first y).1," ")
-    y := rest y
-    three := STRCONC ((first y).1," ")
-    y := rest y    
-    four :=  STRCONC ((first y).1," ")
-    y := rest y
-    xlist := [four,:xlist]
-    ylist := [three,:ylist]
-    flist := [two,:flist]
-    wlist := [one,:wlist]
-  xstring := bcwords2liststring xlist
-  ystring := bcwords2liststring ylist
-  fstring := bcwords2liststring flist
-  wstring := bcwords2liststring wlist
-  nc := (px-4)*(py-4)
-  prefix := STRCONC('"e02daf(",STRINGIMAGE m,", ",STRINGIMAGE px,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE py,",[",xstring,"],[",ystring,"],[")
-  prefix := STRCONC(prefix,fstring,"],[",wstring,"],[",mustring,"],[")
-  prefix := STRCONC(prefix,pstring,"], ",STRINGIMAGE npoint,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE nc,", ",STRINGIMAGE nws,", ",eps,", [")
-  prefix := STRCONC(prefix,lamstring,"], ",STRINGIMAGE ifail,")")
-  linkGen prefix
-
-
-e02dcf() ==
-  htInitPage('"E02DCF - Least-squares curve by bicubic splines with automatic knot placement, data on a rectangular grid",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02dcf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02dcf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "\newline ")
-    (text . "Determines a bicubic spline approximation to a set of points ")
-    (text . "given on a rectangular grid defined by \htbitmap{mx} ")
-    (text . "points \htbitmap{xq} on the x-axis and ")
-    (text . "\htbitmap{my} points \htbitmap{yr} on the ")
-    (text . "y-axix. The knots \htbitmap{lamdai}, for i = 1,2,...,")
-    (text . "\htbitmap{nx} and \htbitmap{mui}, for ")
-    (text . "i = 1,2,...,\htbitmap{ny} are chosen for this routine ")
-    (text . ", but a single parameter S must be specified to control the ")
-    (text . "trade-off between closeness of fit and smoothness of fit.  This ")
-    (text . "affects the number of knots required by the spline, which is ")
-    (text . "given in the B-spline representation \htbitmap{e02daf}")
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Grid points on x-axis \htbitmap{mx}: ")    
-    (text . "\tab{30} \menuitemstyle{}\tab{32} Grid points on y-axis ")
-    (text . "\htbitmap{my}: ")    
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 11 mx PI))
-    (text . "\tab{32} ")
-    (bcStrings (6 9 my PI))    
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} ")
-    (text . "Over-estimate of \htbitmap{nx} of knots \lambda of the ") 
-    (text . "computed spline, {\it nxest}: \newline\tab{2} ")
-    (bcStrings (6 15 nxest PI))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} ")
-    (text . "Over-estimate of \htbitmap{ny} of knots \mu of the computed ") 
-    (text . "spline, {\it nyest}: \newline\tab{2} ")
-    (bcStrings (6 13 nyest PI))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Smoothing factor {\it s}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 "0.1" s F))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Start value: ")
-    (radioButtons start
-        ("" "  Cold Start - no values needed for {\it nx,ny,lamda,mu} or {\it iwrk}" cold)
-        ("" "  Warm Start - uses knots found in a previous call" warm))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02dcfSolve)
-  htShowPage()
-
-e02dcfSolve htPage ==
-  mx :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'mx)
-    objValUnwrap htpLabelSpadValue(htPage, 'mx)
-  my :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'my)
-    objValUnwrap htpLabelSpadValue(htPage, 'my)
-  nxest :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nxest)
-    objValUnwrap htpLabelSpadValue(htPage, 'nxest)
-  nyest :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nyest)
-    objValUnwrap htpLabelSpadValue(htPage, 'nyest)
-  wrklist := [my,nxest]
-  wrkmax := APPLY ('MAX, wrklist)
-  lwrk := 4*(mx + my) +11*(nxest + nyest) + nxest*my + wrkmax +54
-  liwrk := 3 + mx + my + nxest + nyest
-  s := htpLabelInputString(htPage,'s)
-  initial := htpButtonValue(htPage,'start)
-  start :=
-    initial = 'cold => '1
-    '2
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  ((mx = 11 and my = 9) and start = 1) => 
-		e02dcfDefaultSolve (htPage,nxest,nyest,lwrk,liwrk,s,ifail)
-  start = 1 => e02dcfColdSolve (htPage,mx,my,nxest,nyest,lwrk,liwrk,s,ifail)
-  -- warm start not really possible from hyperdoc
-  -- as inputing a workspace array of dimension 592 is asking too much
-  -- user should use the command line, using the previous calculated 
-  -- parameters
-  htInitPage('"E02DCF - Least-squares curve by bicubic splines with automatic knot placement, data on a rectangular grid",nil)  
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\blankline ")
-    (text . "{\center{\em Hyperdoc interface not available for warm starts.}}")
-    (text . "\newline ")
-    (text . "{\center{\em Please use the command line.}}"))
-  htMakeDoneButton('"Continue",'e02dcf)
-  htShowPage()
-
-
-
-e02dcfColdSolve(htPage,mx,my,nxest,nyest,lwrk,liwrk,s,ifail) ==
-  xList :=
-    "append"/[f(i) for i in 1..mx] where f(i) ==
-      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, xnam, 'F]]] 
-  yList :=
-    "append"/[g(i) for i in 1..my] where g(i) ==
-      ynam := INTERN STRCONC ('"g",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, ynam, 'F]]] 
-  prefix:= ('"\blankline \menuitemstyle{}\tab{2} Values of {\it y(my)}: \newline ")
-  yList := [['text,:prefix],:yList]
-  fList :=
-    "append"/[h(i) for i in 1..(mx*my)] where h(i) ==
-      fnam := INTERN STRCONC ('"g",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, fnam, 'F]]] 
-  prefix:=('"\blankline \menuitemstyle{} \tab{2} Values of {\it f(mx*my)}: \newline ")
-  fList := [['text,:prefix],:fList]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :xList,:yList,:fList]
-  page := htInitPage('"E02DCF - Least-squares curve by bicubic splines with automatic knot placement, data on a rectangular grid",nil)
-  htSay '"\menuitemstyle{}\tab{2} Values of {\it x(mx)}: \newline "
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02dcfColdGen)
-  htpSetProperty(page,'mx,mx)
-  htpSetProperty(page,'my,my)
-  htpSetProperty(page,'nxest,nxest)
-  htpSetProperty(page,'nyest,nyest)
-  htpSetProperty(page,'lwrk,lwrk)
-  htpSetProperty(page,'liwrk,liwrk)
-  htpSetProperty(page,'s,s)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02dcfDefaultSolve (htPage,nxest,nyest,lwrk,liwrk,s,ifail) ==
-  mx := 11
-  my := 9
-  page := htInitPage('"E02DCF - Least-squares curve by bicubic splines with automatic knot placement, data on a rectangular grid",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} Values of {\it x(mx)}:")
-    (text . "\newline ")
-    (bcStrings (8 "0" x1 F))
-    (bcStrings (8 "0.5" x2 F))
-    (bcStrings (8 "1" x3 F))
-    (bcStrings (8 "1.5" x4 F))
-    (bcStrings (8 "2" x5 F))
-    (bcStrings (8 "2.5" x6 F))
-    (bcStrings (8 "3" x7 F))
-    (bcStrings (8 "3.5" x8 F))
-    (bcStrings (8 "4" x9 F))
-    (bcStrings (8 "4.5" x10 F))
-    (bcStrings (8 "5" x11 F))
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} Values of {\it y(my)}:")
-    (text . "\newline ")
-    (bcStrings (8 "0" y1 F))
-    (bcStrings (8 "0.5" y2 F))
-    (bcStrings (8 "1" y3 F))
-    (bcStrings (8 "1.5" y4 F))
-    (bcStrings (8 "2" y5 F))
-    (bcStrings (8 "2.5" y6 F))
-    (bcStrings (8 "3" y7 F))
-    (bcStrings (8 "3.5" y8 F))
-    (bcStrings (8 "4" y9 F))
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} Values of {\it f(mx*my)}:")
-    (text . "\newline ")
-    (bcStrings (8 "1" f1 F))
-    (bcStrings (8 "0.88758" f2 F))
-    (bcStrings (8 "0.5403" f3 F))
-    (bcStrings (8 "0.070737" f4 F))
-    (bcStrings (8 "-0.41515" f5 F))
-    (bcStrings (8 "-0.80114" f6 F))
-    (bcStrings (8 "-0.97999" f7 F))
-    (bcStrings (8 "-0.93446" f8 F))
-    (bcStrings (8 "-0.65664" f9 F))
-    (bcStrings (8 "1.5" f10 F))
-    (bcStrings (8 "1.3564" f11 F))
-    (bcStrings (8 "0.82045" f12 F))
-    (bcStrings (8 "0.10611" f13 F))
-    (bcStrings (8 "-0.62422" f14 F))
-    (bcStrings (8 "-1.2317" f15 F))
-    (bcStrings (8 "-1.485" f16 F))
-    (bcStrings (8 "-1.3047" f17 F))
-    (bcStrings (8 "-0.98547" f18 F))
-    (bcStrings (8 "2.06" f19 F))
-    (bcStrings (8 "1.7552" f20 F))
-    (bcStrings (8 "1.0806" f21 F))
-    (bcStrings (8 "0.15147" f22 F))
-    (bcStrings (8 "-0.83229" f23 F))
-    (bcStrings (8 "-1.6023" f24 F))
-    (bcStrings (8 "-1.97" f25 F))
-    (bcStrings (8 "-1.8729" f26 F))
-    (bcStrings (8 "-1.4073" f27 F))
-    (bcStrings (8 "2.57" f28 F))
-    (bcStrings (8 "2.124" f29 F))
-    (bcStrings (8 "1.3508" f30 F))
-    (bcStrings (8 "0.17684" f31 F))
-    (bcStrings (8 "-1.0404" f32 F))
-    (bcStrings (8 "-2.0029" f33 F))
-    (bcStrings (8 "-2.475" f34 F))
-    (bcStrings (8 "-2.3511" f35 F))
-    (bcStrings (8 "-1.6741" f36 F))
-    (bcStrings (8 "3" f37 F))
-    (bcStrings (8 "2.6427" f38 F))
-    (bcStrings (8 "1.6309" f39 F))
-    (bcStrings (8 "0.21221" f40 F))
-    (bcStrings (8 "-1.2484" f41 F))
-    (bcStrings (8 "-2.2034" f42 F))
-    (bcStrings (8 "-2.97" f43 F))
-    (bcStrings (8 "-2.8094" f44 F))
-    (bcStrings (8 "-1.9809" f45 F))
-    (bcStrings (8 "3.5" f46 F))
-    (bcStrings (8 "3.1715" f47 F))
-    (bcStrings (8 "1.8611" f48 F))
-    (bcStrings (8 "0.24458" f49 F))
-    (bcStrings (8 "-1.4565" f50 F))
-    (bcStrings (8 "-2.864" f51 F))
-    (bcStrings (8 "-3.265" f52 F))
-    (bcStrings (8 "-3.2776" f53 F))
-    (bcStrings (8 "-2.2878" f54 F))
-    (bcStrings (8 "4.04" f55 F))
-    (bcStrings (8 "3.5103" f56 F))
-    (bcStrings (8 "2.0612" f57 F))
-    (bcStrings (8 "0.28595" f58 F))
-    (bcStrings (8 "-1.6946" f59 F))
-    (bcStrings (8 "-3.2046" f60 F))
-    (bcStrings (8 "-3.96" f61 F))
-    (bcStrings (8 "-3.7958" f62 F))
-    (bcStrings (8 "-2.6146" f63 F))
-    (bcStrings (8 "4.5" f64 F))
-    (bcStrings (8 "3.9391" f65 F))
-    (bcStrings (8 "2.4314" f66 F))
-    (bcStrings (8 "0.31632" f67 F))
-    (bcStrings (8 "-1.8627" f68 F))
-    (bcStrings (8 "-3.6351" f69 F))
-    (bcStrings (8 "-4.455" f70 F))
-    (bcStrings (8 "-4.2141" f71 F))
-    (bcStrings (8 "-2.9314" f72 F))
-    (bcStrings (8 "5.04" f73 F))
-    (bcStrings (8 "4.3879" f74 F))
-    (bcStrings (8 "2.7515" f75 F))
-    (bcStrings (8 "0.35369" f76 F))
-    (bcStrings (8 "-2.0707" f77 F))
-    (bcStrings (8 "-4.0057" f78 F))
-    (bcStrings (8 "-4.97" f79 F))
-    (bcStrings (8 "-4.6823" f80 F))
-    (bcStrings (8 "-3.2382" f81 F))
-    (bcStrings (8 "5.505" f82 F))
-    (bcStrings (8 "4.8367" f83 F))
-    (bcStrings (8 "2.9717" f84 F))
-    (bcStrings (8 "0.38505" f85 F))
-    (bcStrings (8 "-2.2888" f86 F))
-    (bcStrings (8 "-4.4033" f87 F))
-    (bcStrings (8 "-5.445" f88 F))
-    (bcStrings (8 "-5.1405" f89 F))
-    (bcStrings (8 "-3.595" f90 F))
-    (bcStrings (8 "6" f91 F))
-    (bcStrings (8 "5.2755" f92 F))
-    (bcStrings (8 "3.2418" f93 F))
-    (bcStrings (8 "0.42442" f94 F))
-    (bcStrings (8 "-2.4769" f95 F))
-    (bcStrings (8 "-4.8169" f96 F))
-    (bcStrings (8 "-5.93" f97 F))
-    (bcStrings (8 "-5.6387" f98 F))
-    (bcStrings (8 "-3.9319" f99 F)))
-  htMakeDoneButton('"Continue",'e02dcfColdGen)    	
-  htpSetProperty(page,'mx,mx)
-  htpSetProperty(page,'my,my)
-  htpSetProperty(page,'nxest,nxest)
-  htpSetProperty(page,'nyest,nyest)
-  htpSetProperty(page,'lwrk,lwrk)
-  htpSetProperty(page,'liwrk,liwrk)
-  htpSetProperty(page,'s,s)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02dcfColdGen htPage ==
-  mx := htpProperty(htPage,'mx)
-  my := htpProperty(htPage,'my)
-  nxest := htpProperty(htPage,'nxest)
-  nyest := htpProperty(htPage,'nyest)
-  lwrk := htpProperty(htPage,'lwrk)
-  liwrk := htpProperty(htPage,'liwrk)
-  s := htpProperty(htPage,'s)
-  cold := '"c"
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  y := alist
-  for i in 1..(mx*my) repeat
-    end := STRCONC((first y).1," ")
-    y := rest y
-    fList := [end,:fList]
-  fstring := bcwords2liststring fList
-  for i in 1..my repeat
-    mid :=  STRCONC ((first y).1," ")
-    y := rest y
-    ylist := [mid,:ylist]
-  ystring := bcwords2liststring ylist
-  while y repeat
-    start :=  STRCONC ((first y).1," ")
-    y := rest y
-    xlist := [start,:xlist]
-  xstring := bcwords2liststring xlist
-  -- additional entries needed to get it running
-  -- but as Start = c they are not used
-  prefix := STRCONC('"e02dcf(_"",cold,"_",",STRINGIMAGE mx,", [",xstring,"],")
-  prefix := STRCONC(prefix,STRINGIMAGE my,",[",ystring,"],[",fstring,"], ")
-  prefix := STRCONC(prefix,STRINGIMAGE s,", ",STRINGIMAGE nxest,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE nyest,", ",STRINGIMAGE lwrk,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE liwrk,",0,new(1,", STRINGIMAGE nxest,",0.0)$MATRIX DFLOAT,")
-  prefix := STRCONC(prefix,"0,new(1,", STRINGIMAGE nyest,",0.0)$MATRIX DFLOAT,")
-  end := STRCONC("new(1,", STRINGIMAGE lwrk,",0.0)$MATRIX DFLOAT,[[0 for i in 1..")
-  end := STRCONC(end,STRINGIMAGE liwrk,"]]::Matrix Integer,",STRINGIMAGE ifail,")")
-  linkGen STRCONC(prefix,end)
-
-
-e02ddf() ==
-  htInitPage('"E02DDF - Least-squares surface fit by bicubic splines with automatic knot placement, scattered data",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02ddf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02ddf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "\newline ")
-    (text . "Determines a bicubic spline approximation to a set of scattered")
-    (text . " points ( \htbitmap{xr},\htbitmap{yr}, ")
-    (text . "\htbitmap{fr})")
-    (text . "with weights \htbitmap{wr}, for r = 1,2,...,m. ")
-    (text . "The knots \htbitmap{lamdai}, for i = 1,2,...,")
-    (text . "\htbitmap{nx} and \htbitmap{mui}, for ")
-    (text . "i = 1,2,...,\htbitmap{ny} are chosen by the routine ")
-    (text . ", but a single parameter S must be specified to control the ")
-    (text . "trade-off between closeness of fit and smoothness of fit.  This ")
-    (text . "affects the number of knots required by the spline, which is ")
-    (text . "given in the B-spline representation \htbitmap{e02daf}")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of data points {\it m}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 30 m PI))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} ")
-    (text . "Over-estimate of \htbitmap{nx} of knots \lambda of the ") 
-    (text . "computed spline, {\it nxest}: \newline\tab{2} ")
-    (bcStrings (6 14 nxest PI))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} ")
-    (text . "Over-estimate of \htbitmap{ny} of knots \mu of the computed ") 
-    (text . "spline, {\it nyest}: \newline\tab{2} ")
-    (bcStrings (6 14 nyest PI))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Smoothing factor {\it s}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 "10" s F))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Start value: ")
-    (radioButtons start
-        ("" "  Cold Start - no values needed for {\it nx,ny,lamda,wrk,iwrk}" cold)
-        ("" "  Warm Start - uses knots found in a previous call" warm))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02ddfSolve)
-  htShowPage()
-
-e02ddfSolve htPage ==
-  m :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
-    objValUnwrap htpLabelSpadValue(htPage, 'm)
-  nxest :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nxest)
-    objValUnwrap htpLabelSpadValue(htPage, 'nxest)
-  nyest :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nyest)
-    objValUnwrap htpLabelSpadValue(htPage, 'nyest)
-  u := nxest - 4
-  v := nyest - 4
-  wlist := [u,v]
-  w := APPLY ('MAX, wlist)
-  lwrk := (7*u*v + 25*w)*(w + 1) + 2*(u + v + 4*m) + 23*w + 56
-  liwrk := m + 2*(nxest - 7)*(nyest - 7)
-  s := htpLabelInputString(htPage,'s)
-  initial := htpButtonValue(htPage,'start)
-  start :=
-    initial = 'cold => '1
-    '2
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  (m = 30 and start = 1) => e02ddfDefaultSolve (htPage,nxest,nyest,lwrk,liwrk,s,ifail) 
-  start = 1 => e02ddfColdSolve (htPage,m,nxest,nyest,lwrk,liwrk,s,ifail) 
-  -- need to change as only wrk(1) is required
-  labelList :=
-    "append"/[f(i) for i in 1..m] where f(i) ==
-      prefix := ('"\newline \tab{2} ")
-      middle := ('"\tab{17} ")
-      post   := ('"\tab{32} ")
-      end    := ('"\tab{47} ")
-      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
-      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
-      fnam := INTERN STRCONC ('"f",STRINGIMAGE i)
-      wnam := INTERN STRCONC ('"w",STRINGIMAGE i)
-      [['text,:prefix],['bcStrings,[8, 0.0, xnam, 'F]], 
-       ['text,:middle],['bcStrings,[8, 0.0, ynam, 'F]],
-        ['text,:post],['bcStrings,[8, 0.0, fnam, 'F]],
-         ['text,:end],['bcStrings,[8, 0.0, wnam, 'F]]]
-  lamdaList := 
-    "append"/[g(i) for i in 1..nxest] where g(i) ==
-      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, lnam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} Values of Lamda: \newline")
-  lamdaList := [['text,:prefix],:lamdaList]
-  muList := 
-    "append"/[h(i) for i in 1..nyest] where h(i) ==
-      mnam := INTERN STRCONC ('"m",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, mnam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} Values of Mu: \newline")
-  muList := [['text,:prefix],:muList]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} Value of nx: \newline \tab{2}")
-  nxList := [['text,:prefix],['bcStrings,[8, 10, 'nx, 'PI]]]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} Value of ny: \newline \tab{2}")
-  nyList := [['text,:prefix],['bcStrings,[8, 9, 'ny, 'PI]]]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} Value of WRK(1): \newline \tab{2}")
-  wList := [['text,:prefix],['bcStrings,[8, 0.0, 'wone, 'F]]]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList,:lamdaList,:muList,:nxList,:nyList,:wList]
-  page := htInitPage('"E02DDF - Least-squares surface fit by bicubic splines with automatic knot placement, scattered data",nil)
-  htSay '"\menuitemstyle{}\tab{2} Values of \space{1} "
-  htSay '"\htbitmap{xr}: \tab{15} \menuitemstyle{}\tab{17} "
-  htSay '"Values of \space{1} \htbitmap{yr}: \tab{30}"
-  htSay '"\menuitemstyle{}\tab{32} Values of \space{1} "
-  htSay '"\htbitmap{fr}: \tab{45} \menuitemstyle{} "
-  htSay '"\tab{47} Values of \htbitmap{wr}:"
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02ddfWarmGen)
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'nxest,nxest)
-  htpSetProperty(page,'nyest,nyest)
-  htpSetProperty(page,'lwrk,lwrk)
-  htpSetProperty(page,'liwrk,liwrk)
-  htpSetProperty(page,'s,s)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-
-
-e02ddfColdSolve(htPage,m,nxest,nyest,lwrk,liwrk,s,ifail)  ==
-  labelList :=
-    "append"/[f(i) for i in 1..m] where f(i) ==
-      prefix := ('"\newline \tab{2} ")
-      middle := ('"\tab{17} ")
-      post   := ('"\tab{32} ")
-      end    := ('"\tab{47} ")
-      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
-      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
-      fnam := INTERN STRCONC ('"f",STRINGIMAGE i)
-      wnam := INTERN STRCONC ('"w",STRINGIMAGE i)
-      [['text,:prefix],['bcStrings,[8, 0.0, xnam, 'F]], 
-       ['text,:middle],['bcStrings,[8, 0.0, ynam, 'F]],
-        ['text,:post],['bcStrings,[8, 0.0, fnam, 'F]],
-         ['text,:end],['bcStrings,[8, 0.0, wnam, 'F]]]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList]
-  page := htInitPage('"E02DDF - Least-squares surface fit by bicubic splines with automatic knot placement, scattered data",nil)
-  htSay '"\menuitemstyle{}\tab{2} Values of \space{1} "
-  htSay '"\htbitmap{xr}: \tab{15} \menuitemstyle{}\tab{17} "
-  htSay '"Values of \space{1} \htbitmap{yr}: \tab{30}"
-  htSay '"\menuitemstyle{}\tab{32} Values of \space{1} "
-  htSay '"\htbitmap{fr}: \tab{44} \menuitemstyle{} "
-  htSay '"\tab{46} Values of \htbitmap{wr}:"
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02ddfColdGen)
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'nxest,nxest)
-  htpSetProperty(page,'nyest,nyest)
-  htpSetProperty(page,'lwrk,lwrk)
-  htpSetProperty(page,'liwrk,liwrk)
-  htpSetProperty(page,'s,s)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02ddfDefaultSolve (htPage,nxest,nyest,lwrk,liwrk,s,ifail) ==
-  m := 30
-  page := htInitPage('"E02DDF - Least-squares surface fit by bicubic splines with automatic knot placement, scattered data",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} Values of \htbitmap{xr}:")
-    (text . "\tab{15} \menuitemstyle{} \tab{17} Values of ")
-    (text . "\htbitmap{yr}: \tab{30} \menuitemstyle{} \tab{32} ")
-    (text . "Values of \htbitmap{fr}: \tab{44} \menuitemstyle{} ")
-    (text . "\tab{46} Values of \htbitmap{wr}:")
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "11.16" x1 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "1.24" y1 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "22.15" f1 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w1 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "12.85" x2 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "3.06" y2 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "22.11" f2 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w2 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "19.85" x3 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "10.72" y3 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "7.97" f3 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w3 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "19.72" x4 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "1.39" y4 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "16.83" f4 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w4 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "15.91" x5 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "7.74" y5 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "15.30" f5 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w5 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0" x6 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "20" y6 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "34.6" f6 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w6 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "20.87" x7 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "20" y7 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "5.74" f7 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w7 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "3.45" x8 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "12.78" y8 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "41.24" f8 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w8 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "14.26" x9 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "17.87" y9 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "10.74" f9 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w9 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "17.43" x10 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "3.46" y10 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "18.60" f10 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w10 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "22.8" x11 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "12.39" y11 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "5.47" f11 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w11 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "7.58" x12 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "1.98" y12 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "29.87" f12 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w12 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "25" x13 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "11.87" y13 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "4.4" f13 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w13 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0" x14 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0" y14 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "58.2" f14 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w14 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "9.66" x15 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "20" y15 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "4.73" f15 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w15 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "5.22" x16 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "14.66" y16 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "40.36" f16 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w16 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "17.25" x17 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "19.57" y17 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "6.43" f17 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w17 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "25" x18 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "3.87" y18 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "8.74" f18 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w18 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "12.13" x19 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "10.79" y19 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "13.71" f19 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w19 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "22.23" x20 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "6.21" y20 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "10.25" f20 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w20 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "11.52" x21 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "8.53" y21 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "15.74" f21 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w21 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "15.2" x22 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0" y22 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "21.6" f22 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w22 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "7.54" x23 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "10.69" y23 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "19.31" f23 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w23 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "17.32" x24 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "13.78" y24 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "12.11" f24 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w24 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "2.14" x25 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "15.03" y25 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "53.1" f25 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w25 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.51" x26 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "8.37" y26 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "49.43" f26 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w26 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "22.69" x27 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "19.63" y27 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "3.25" f27 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w27 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "5.47" x28 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "17.13" y28 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "28.63" f28 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w28 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "21.67" x29 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "14.36" y29 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "5.52" f29 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w29 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "3.31" x30 F))  
-    (text . "\tab{17}")
-    (bcStrings (8 "0.33" y30 F))    
-    (text . "\tab{32}")
-    (bcStrings (8 "44.08" f30 F))    
-    (text . "\tab{47}")
-    (bcStrings (8 "1" w30 F))    
-    (text . "\blankline"))
-  htMakeDoneButton('"Continue",'e02ddfColdGen)    	
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'nxest,nxest)
-  htpSetProperty(page,'nyest,nyest)
-  htpSetProperty(page,'lwrk,lwrk)
-  htpSetProperty(page,'liwrk,liwrk)
-  htpSetProperty(page,'s,s)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02ddfColdGen htPage ==
-  m := htpProperty(htPage,'m)
-  nxest := htpProperty(htPage,'nxest)
-  nyest := htpProperty(htPage,'nyest)
-  lwrk := htpProperty(htPage,'lwrk)
-  liwrk := htpProperty(htPage,'liwrk)
-  s := htpProperty(htPage,'s)
-  cold := '"c"
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  y := alist
-  while y repeat
-    end :=  STRCONC ((first y).1," ")
-    y := rest y
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    mid :=  STRCONC ((first y).1," ")
-    y := rest y
-    left :=  STRCONC ((first y).1," ")
-    y := rest y
-    xlist := [left,:xlist]
-    ylist := [mid,:ylist]
-    flist := [right,:flist]
-    wlist := [end,:wlist]
-  xstring := bcwords2liststring xlist
-  ystring := bcwords2liststring ylist
-  fstring := bcwords2liststring flist
-  wstring := bcwords2liststring wlist
-  -- additional entries nx,ny,lamda,mu,wrk needed to get it running
-  -- but they are just set to 0.0
-  prefix := STRCONC('"e02ddf(_"",cold,"_",",STRINGIMAGE m,", [",xstring,"],[")
-  prefix := STRCONC(prefix,ystring,"],[",fstring,"],[",wstring,"], ")
-  prefix := STRCONC(prefix,STRINGIMAGE s,", ",STRINGIMAGE nxest,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE nyest,", ",STRINGIMAGE lwrk,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE liwrk,", 0,")
-  prefix := STRCONC(prefix,"new(1,", STRINGIMAGE nxest,",0.0)$MATRIX DFLOAT,0,")
-  prefix := STRCONC(prefix,"new(1,", STRINGIMAGE nyest,",0.0)$MATRIX DFLOAT,")
-  prefix := STRCONC(prefix,"new(1,", STRINGIMAGE lwrk,",0.0)$MATRIX DFLOAT,")
---  prefix := STRCONC(prefix,"[[0.0 for i in 1..", STRINGIMAGE nxest,"]],0,")
---  prefix := STRCONC(prefix,"[[0.0 for i in 1..", STRINGIMAGE nyest,"]],")
---  prefix := STRCONC(prefix,"[[0.0 for i in 1..", STRINGIMAGE lwrk,"]],")
-  prefix := STRCONC(prefix,STRINGIMAGE ifail,")")
-  linkGen prefix
-
-e02ddfWarmGen htPage ==
-  m := htpProperty(htPage,'m)
-  nxest := htpProperty(htPage,'nxest)
-  nyest := htpProperty(htPage,'nyest)
-  lwrk := htpProperty(htPage,'lwrk)
-  liwrk := htpProperty(htPage,'liwrk)
-  s := htpProperty(htPage,'s)
-  warm := '"w"
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  y := alist
-  wrk := (first y).1
-  y := rest y
-  for i in 1..lwrk repeat
-    wrkList := ['"0.0 ",:wrkList]
-  wrkList := [wrk,:wrkList]
-  wrkstring := bcwords2liststring wrkList
-  ny := STRCONC((first y).1," ")
-  y := rest y
-  nx := STRCONC((first y).1," ")
-  y := rest y
-  for i in 1..nyest repeat
-    mu := STRCONC ((first y).1, " ")
-    y := rest y
-    muList := [mu,:muList]
-  mustring := bcwords2liststring muList
-  for i in 1..nxest repeat
-    lam := STRCONC ((first y).1, " ")
-    y := rest y
-    lamList := [lam,:lamList]
-  lamstring := bcwords2liststring lamList
-  while y repeat
-    end :=  STRCONC ((first y).1," ")
-    y := rest y
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    mid :=  STRCONC ((first y).1," ")
-    y := rest y
-    left :=  STRCONC ((first y).1," ")
-    y := rest y
-    xlist := [left,:xlist]
-    ylist := [mid,:ylist]
-    flist := [right,:flist]
-    wlist := [end,:wlist]
-  xstring := bcwords2liststring xlist
-  ystring := bcwords2liststring ylist
-  fstring := bcwords2liststring flist
-  wstring := bcwords2liststring wlist
-  -- additional entries nx,ny,lamda,mu,wrk needed to get it running
-  -- but they are just set to 0.0
-  prefix := STRCONC('"e02ddf(_"",warm,"_",",STRINGIMAGE m,", [",xstring,"],[")
-  prefix := STRCONC(prefix,ystring,"],[",fstring,"],[",wstring,"], ")
-  prefix := STRCONC(prefix,STRINGIMAGE s,", ",STRINGIMAGE nxest,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE nyest,", ",STRINGIMAGE lwrk,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE liwrk,", ",nx,",[",lamstring,"],",ny)
-  prefix := STRCONC(prefix,",[",mustring,"],[",wrkstring,"],")
-  prefix := STRCONC(prefix,STRINGIMAGE ifail,")")
-  linkGen prefix
-
-e02zaf() == 
-  htInitPage('"E02ZAF - Sort 2-D sata into panels for fitting bicubic splines",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain PI (PositiveInteger)))
-    (text . "\windowlink{Manual Page}{manpageXXe02zaf} for this routine ")
-    (text . "\newline ")
-    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02zaf| '|NagFittingPackage|)} for this routine")
-    (text . "\newline \horizontalline ")
-    (text . "Sorts the set of points {\em (\htbitmap{xr},")
-    (text . "\htbitmap{yr})} into panels defined by \space{1}")
-    (text . "\htbitmap{px} -8 points \htbitmap{lamdai} ")
-    (text . "on the x-axis and \space{1}\htbitmap{py}-8 points ")
-    (text . "\htbitmap{muj} on the y axis. The points are ordered ")
-    (text . "so that all points in a panel occur before data in succeeding ")
-    (text . "panels. Within a panel, the points maintain their original ")
-    (text . "order. ") 
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Number of points to be sorted to be sorted {\it m}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 10 m PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2}")
-    (text . "\newline Intercepts + 8 on x axis {\em px}:")
-    (text . "\tab{32} \menuitemstyle{}\tab{34}")
-    (text . "Intercepts + 8 on y axis {\em py}:")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 9 px PI))
-    (text . "\tab{34} ")
-    (bcStrings (6 10 py PI))
-    (text . "\blankline ")
-    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
-    (text . "Dimension of point {\it npoint}: ")
-    (text . "\newline\tab{2} ")
-    (bcStrings (6 45 npoint PI))
-    (text . "\blankline ")
-    (text . "\newline ")
-    (text . "\menuitemstyle{} \tab{2} ")
-    (text . "\newline \tab{2} ")
-    (text . "Ifail value: ")
-    (radioButtons ifail
-        ("" " -1, Print error messages" minusOne)
-        ("" "  1, Suppress error messages" one)))
-  htMakeDoneButton('"Continue", 'e02zafSolve)
-  htShowPage()
-
-e02zafSolve htPage ==
-  m :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
-    objValUnwrap htpLabelSpadValue(htPage, 'm)
-  px :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'px)
-    objValUnwrap htpLabelSpadValue(htPage, 'px)
-  py :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'py)
-    objValUnwrap htpLabelSpadValue(htPage, 'py)
-  npoint :=
-    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'npoint)
-    objValUnwrap htpLabelSpadValue(htPage, 'npoint)
-  error := htpButtonValue(htPage,'ifail)
-  ifail :=
-    error = 'one => '1
-    '-1
-  ((m = '10 and px = '9) and py = '10) => e02zafDefaultSolve(htPage,npoint,ifail)
-  labelList :=
-    "append"/[fxy(i) for i in 1..m] where fxy(i) ==
-      prefix := ('"\newline \tab{2} ")
-      middle := ('"\tab{32} ")
-      lnam := INTERN STRCONC ('"x",STRINGIMAGE i)
-      cnam := INTERN STRCONC ('"y",STRINGIMAGE i)
-      [['text,:prefix],['bcStrings,[8, 0.0, lnam, 'F]], 
-       ['text,:middle],['bcStrings,[8, 0.0, cnam, 'F]]]
-  lamList :=
-    "append"/[flam(i) for i in 5..(px-4)] where flam(i) ==
-      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, lnam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} {\it \lambda(5) to ")
-  prefix := STRCONC(prefix,"\lambda(px-4)}: \newline \tab{2} ")
-  lamList := [['text,:prefix],:lamList]
-  muList :=
-    "append"/[fmu(i) for i in 5..(py-4)] where fmu(i) ==
-      mnam := INTERN STRCONC ('"m",STRINGIMAGE i)
-      [['bcStrings,[8, 0.0, mnam, 'F]]]
-  prefix := ('"\blankline \menuitemstyle{} \tab{2} {\it \mu(5) to \mu(py-4)}: ")
-  prefix := STRCONC(prefix,"\newline \tab{2} ")
-  muList := [['text,:prefix],:muList]
-  equationPart := [
-     '(domainConditions 
-        (isDomain P (Polynomial $EmptyMode))
-         (isDomain S (String))
-          (isDomain F (Float))
-           (isDomain PI (PositiveInteger))),
-	    :labelList,:lamList,:muList]
-  page := htInitPage('"E02ZAF - Sort 2-D sata into panels for fitting bicubic splines",nil)
-  htSay '"\menuitemstyle{}\tab{2} {\it x(m)}: "
-  htSay '"\tab{30} \menuitemstyle{}\tab{32} {\it y(m)}: "
-  htMakePage equationPart
-  htSay '"\blankline "
-  htMakeDoneButton('"Continue",'e02zafGen)
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'px,px)
-  htpSetProperty(page,'py,py)
-  htpSetProperty(page,'npoint,npoint)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-
-e02zafDefaultSolve (htPage,npoint,ifail) ==
-  m := '10
-  px := '9
-  py := '10
-  page := htInitPage('"E02ZAF - Sort 2-D sata into panels for fitting bicubic splines",nil)
-  htMakePage '(
-    (domainConditions 
-       (isDomain F (Float)))
-    (text . "\newline ")
-    (text . "\menuitemstyle{}\tab{2} {\it x(m)}:")
-    (text . "\tab{30} \menuitemstyle{} \tab{32} {\it y(m)}:")
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.00" x1 F))  
-    (text . "\tab{32}")
-    (bcStrings (8 "0.77" y1 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.70" x2 F))  
-    (text . "\tab{32}")
-    (bcStrings (8 "1.06" y2 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "1.44" x3 F))  
-    (text . "\tab{32}")
-    (bcStrings (8 "0.33" y3 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.21" x4 F))  
-    (text . "\tab{32}")
-    (bcStrings (8 "0.44" y4 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "1.01" x5 F))  
-    (text . "\tab{32}")
-    (bcStrings (8 "0.50" y5 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "1.84" x6 F))  
-    (text . "\tab{32}")
-    (bcStrings (8 "0.02" y6 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.71" x7 F))  
-    (text . "\tab{32}")
-    (bcStrings (8 "1.95" y7 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "1.00" x8 F))  
-    (text . "\tab{32}")
-    (bcStrings (8 "1.20" y8 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "0.54" x9 F))  
-    (text . "\tab{32}")
-    (bcStrings (8 "0.04" y9 F))    
-    (text . "\newline \tab{2} ")
-    (bcStrings (8 "1.531" x10 F))  
-    (text . "\tab{32}")
-    (bcStrings (8 "0.18" y10 F))    
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} {\it \lambda(5) to \lambda(px-4)}:")
-    (text . "\newline \tab{2}")
-    (bcStrings (8 "1.00" l5 F))
-    (text . "\blankline ")
-    (text . "\menuitemstyle{}\tab{2} {\it \mu(5) to \mu(py-4)}:")
-    (text . "\newline \tab{2}")
-    (bcStrings (8 "0.80" mu5 F))
-    (bcStrings (8 "1.20" mu6 F))
-    (text . "\blankline "))
-  htMakeDoneButton('"Continue",'e02zafGen)    	
-  htpSetProperty(page,'m,m)
-  htpSetProperty(page,'px,px)
-  htpSetProperty(page,'py,py)
-  htpSetProperty(page,'npoint,npoint)
-  htpSetProperty(page,'ifail,ifail)
-  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
-  htShowPage()
-
-e02zafGen htPage ==
-  m := htpProperty(htPage,'m)
-  px := htpProperty(htPage,'px)
-  py := htpProperty(htPage,'py)
-  npoint := htpProperty(htPage,'npoint)
-  ifail := htpProperty(htPage,'ifail)
-  alist := htpInputAreaAlist htPage
-  y := alist
-  nadres := (px-7)*(py-7)
-  -- mu 
-  for i in 1..4 repeat
-    muList := ['"0 ",:muList]
-  for i in 5..(py-4) repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    muList := [right,:muList]
-  for i in (py-3)..py repeat
-    muList := ['"0 ",:muList]
-  mustring := bcwords2liststring muList
-  -- lamda
-  for i in 1..4 repeat
-    lamList := ['"0 ",:lamList]
-  for i in 5..(px-4) repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    lamList := [right,:lamList]
-  for i in (px-3)..px repeat
-    lamList := ['"0 ",:lamList]
-  lamstring := bcwords2liststring lamList
-  -- x & y
-  while y repeat
-    right := STRCONC ((first y).1," ")
-    y := rest y    
-    left :=  STRCONC ((first y).1," ")
-    y := rest y
-    xlist := [left,:xlist]
-    ylist := [right,:ylist]
-  xstring := bcwords2liststring xlist
-  ystring := bcwords2liststring ylist
-  prefix := STRCONC('"e02zaf(",STRINGIMAGE px,", ",STRINGIMAGE py,",[")
-  prefix := STRCONC(prefix,lamstring,"],[",mustring,"], ",STRINGIMAGE m,", [")
-  prefix := STRCONC(prefix,xstring,"],[",ystring,"], ",STRINGIMAGE npoint,", ")
-  prefix := STRCONC(prefix,STRINGIMAGE nadres,", ",STRINGIMAGE ifail,")")
-  linkGen prefix
-
-
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/interp/nag-e02.lisp.pamphlet b/src/interp/nag-e02.lisp.pamphlet
new file mode 100644
index 0000000..4c94867
--- /dev/null
+++ b/src/interp/nag-e02.lisp.pamphlet
@@ -0,0 +1,11349 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/interp nag-e02.lisp}
+\author{The Axiom Team}
+\maketitle
+\begin{abstract}
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+<<*>>=
+(IN-PACKAGE "BOOT" )
+
+;e02adf() ==
+;  htInitPage('"E02ADF - Least-squares curve fit, by polynomials, arbitrary data points", nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02adf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02adf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Determines weighted least-squares polynomial approximations of ")
+;    (text . "degrees 0,1,...,k to the set of points {\it (} ")
+;    (text . "\htbitmap{xr}, \htbitmap{yr}{\it )} ")
+;    (text . "with weights \htbitmap{wr}, for r = 1,2,...,m. ")
+;    (text . "The polynomials are in the Chebyshev series form, the ")
+;    (text . "approximation of degree {\it i} being represented as ")
+;    (text . "\newline \center{\htbitmap{e02adf}} , where ")
+;    (text . "\htbitmap{xbar} is the normalised argument, which is ")
+;    (text . "related to the original variable {\it x} by the transformation ")
+;    (text . "\blankline  \center{\htbitmap{e02adf1}} ")
+;    (text . ",\htbitmap{xmin} and \htbitmap{xmax} being ")
+;    (text . "the values of \htbitmap{xr} respectively ")
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of data points {\it m}:")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 11 m PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "Maximum degree required {\it k}:")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 3 k PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} \newline ")
+;    (text . "First dimension of A, {\it nrows} \htbitmap{great=} {\it k+1}: ")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 50 nrows I))
+;    (text . "\blankline")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02adfSolve)
+;  htShowPage()
+
+(DEFUN |e02adf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02ADF - Least-squares curve fit, by polynomials, arbitrary data points")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02adf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02adf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Determines weighted least-squares polynomial approximations of ")
+          (|text| . "degrees 0,1,...,k to the set of points {\\it (} ")
+          (|text| . "\\htbitmap{xr}, \\htbitmap{yr}{\\it )} ")
+          (|text| . "with weights \\htbitmap{wr}, for r = 1,2,...,m. ")
+          (|text|
+           . "The polynomials are in the Chebyshev series form, the ")
+          (|text|
+           . "approximation of degree {\\it i} being represented as ")
+          (|text| . "\\newline \\center{\\htbitmap{e02adf}} , where ")
+          (|text|
+           . "\\htbitmap{xbar} is the normalised argument, which is ")
+          (|text|
+           . "related to the original variable {\\it x} by the transformation ")
+          (|text| . "\\blankline  \\center{\\htbitmap{e02adf1}} ")
+          (|text| . ",\\htbitmap{xmin} and \\htbitmap{xmax} being ")
+          (|text| . "the values of \\htbitmap{xr} respectively ")
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Number of data points {\\it m}:")
+          (|text| . "\\newline \\tab{2} ") (|bcStrings| (6 11 |m| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "Maximum degree required {\\it k}:")
+          (|text| . "\\newline \\tab{2} ") (|bcStrings| (6 3 |k| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2} \\newline ")
+          (|text|
+        . "First dimension of A, {\\it nrows} \\htbitmap{great=} {\\it k+1}: ")
+          (|text| . "\\newline \\tab{2} ")
+          (|bcStrings| (6 50 |nrows| I)) (|text| . "\\blankline")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02adfSolve|)
+    (|htShowPage|)))
+
+;e02adfSolve htPage ==
+;  m :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
+;    objValUnwrap htpLabelSpadValue(htPage, 'm)
+;  k :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'k)
+;    objValUnwrap htpLabelSpadValue(htPage, 'k)
+;  nrows :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nrows)
+;    objValUnwrap htpLabelSpadValue(htPage, 'nrows)
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  (m = '11 and k ='3) => e02adfDefaultSolve(htPage,k,nrows,ifail)
+;  labelList :=
+;    "append"/[f(i) for i in 1..m] where f(i) ==
+;      prefix := ('"\newline \tab{2} ")
+;      middle := ('"\tab{22} ")
+;      post   := ('" \tab{42} ")
+;      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
+;      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
+;      znam := INTERN STRCONC ('"z",STRINGIMAGE i)
+;      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
+;      [['text,:prefix],['bcStrings,[10, num, xnam, 'F]],
+;       ['text,:middle],['bcStrings,[10, 0.0, ynam, 'F]],
+;        ['text,:post],['bcStrings,[10, 0.0, znam, 'F]]]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList]
+;  page := htInitPage("E02ADF - Least-squares curve fit, by polynomials, arbitrary data points", htpPropertyList htPage)
+;  htSay '"\menuitemstyle{}\tab{2} Values of \space{1} "
+;  htSay '"\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} "
+;  htSay '"Values of \space{1} \htbitmap{fr}: \tab{40}"
+;  htSay '"\menuitemstyle{}\tab{42} Values of \space{1} "
+;  htSay '"\htbitmap{dr}: "
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02adfGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'k,k)
+;  htpSetProperty(page,'nrows,nrows)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02adfSolve,f| (|i|)
+  (PROG (|prefix| |middle| |post| |xnam| |ynam| |znam| |num|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |middle| (MAKESTRING "\\tab{22} "))
+           (SPADLET |post| (MAKESTRING " \\tab{42} "))
+           (SPADLET |xnam|
+                    (INTERN (STRCONC (MAKESTRING "x")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |ynam|
+                    (INTERN (STRCONC (MAKESTRING "y")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |znam|
+                    (INTERN (STRCONC (MAKESTRING "z")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |num|
+                    (INTERN (STRCONC (STRINGIMAGE (QUOTIENT |i| 10))
+                                     (INTERN "." "BOOT")
+                                     (STRINGIMAGE (REM |i| 10)))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 10
+                                     (CONS |num|
+                                      (CONS |xnam| (CONS 'F NIL))))
+                                    NIL))
+                             (CONS (CONS '|text| |middle|)
+                                   (CONS
+                                    (CONS '|bcStrings|
+                                     (CONS
+                                      (CONS 10
+                                       (CONS 0.0
+                                        (CONS |ynam| (CONS 'F NIL))))
+                                      NIL))
+                                    (CONS (CONS '|text| |post|)
+                                     (CONS
+                                      (CONS '|bcStrings|
+                                       (CONS
+                                        (CONS 10
+                                         (CONS 0.0
+                                          (CONS |znam| (CONS 'F NIL))))
+                                        NIL))
+                                      NIL)))))))))))
+
+(DEFUN |e02adfSolve| (|htPage|)
+  (PROG (|m| |k| |nrows| |error| |ifail| |labelList| |equationPart|
+             |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|m|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|m|)))))
+             (SPADLET |k|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|k|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|k|)))))
+             (SPADLET |nrows|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|nrows|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|nrows|)))))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((AND (BOOT-EQUAL |m| '11) (BOOT-EQUAL |k| '3))
+                (|e02adfDefaultSolve| |htPage| |k| |nrows| |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G166078)
+                           (SPADLET G166078 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |m|) G166078)
+                               (SEQ (EXIT
+                                     (SETQ G166078
+                                      (APPEND G166078
+                                       (|e02adfSolve,f| |i|)))))))))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               |labelList|))
+                (SPADLET |page|
+                         (|htInitPage|
+     '|E02ADF - Least-squares curve fit, by polynomials, arbitrary data points|
+                             (|htpPropertyList| |htPage|)))
+                (|htSay| (MAKESTRING
+                            "\\menuitemstyle{}\\tab{2} Values of \\space{1} "))
+                (|htSay| (MAKESTRING
+                      "\\htbitmap{xr}: \\tab{20} \\menuitemstyle{}\\tab{22} "))
+                (|htSay| (MAKESTRING
+                             "Values of \\space{1} \\htbitmap{fr}: \\tab{40}"))
+                (|htSay| (MAKESTRING
+                           "\\menuitemstyle{}\\tab{42} Values of \\space{1} "))
+                (|htSay| (MAKESTRING "\\htbitmap{dr}: "))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02adfGen|)
+                (|htpSetProperty| |page| '|m| |m|)
+                (|htpSetProperty| |page| '|k| |k|)
+                (|htpSetProperty| |page| '|nrows| |nrows|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02adfDefaultSolve  (htPage,k,nrows,ifail) ==
+;  m := '11
+;  page := htInitPage('"E02ADF - Least-squares curve fit, by polynomials, arbitrary data points", htpPropertyList htPage)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} Values of \space{1} ")
+;    (text . "\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} ")
+;    (text . "Values of \space{1} \htbitmap{yr}: \tab{40} ")
+;    (text . "\menuitemstyle{}\tab{42} Values of \space{1} ")
+;    (text . "\htbitmap{wr}: ")
+;    (text . "\newline \tab{2}")
+;    (bcStrings (10 "1.00" x1 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "10.40" y1 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z1 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "2.10" x2 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "7.90" y2 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z2 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "3.10" x3 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "4.70" y3 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z3 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "3.90" x4 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "2.50" y4 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z4 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "4.90" x5 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "1.20" y5 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z5 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "5.80" x6 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "2.20" y6 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.80" z6 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "6.50" x7 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "5.10" y7 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.80" z7 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "7.10" x8 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "9.20" y8 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.70" z8 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "7.80" x9 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "16.10" y9 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.50" z9 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "8.40" x10 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "24.50" y10 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.30" z10 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "9.00" x11 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "35.30" y11 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.20" z11 F))
+;    (text . "\blankline"))
+;  htMakeDoneButton('"Continue",'e02adfGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'k,k)
+;  htpSetProperty(page,'nrows,nrows)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02adfDefaultSolve| (|htPage| |k| |nrows| |ifail|)
+  (PROG (|m| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |m| '11)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02ADF - Least-squares curve fit, by polynomials, arbitrary data points")
+                     (|htpPropertyList| |htPage|)))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text| . "\\newline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of \\space{1} ")
+              (|text|
+               . "\\htbitmap{xr}: \\tab{20} \\menuitemstyle{}\\tab{22} ")
+              (|text|
+               . "Values of \\space{1} \\htbitmap{yr}: \\tab{40} ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{42} Values of \\space{1} ")
+              (|text| . "\\htbitmap{wr}: ")
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (10 "1.00" |x1| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "10.40" |y1| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z1| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "2.10" |x2| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "7.90" |y2| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z2| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "3.10" |x3| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "4.70" |y3| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z3| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "3.90" |x4| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "2.50" |y4| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z4| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "4.90" |x5| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "1.20" |y5| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z5| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "5.80" |x6| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "2.20" |y6| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "0.80" |z6| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "6.50" |x7| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "5.10" |y7| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "0.80" |z7| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "7.10" |x8| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "9.20" |y8| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "0.70" |z8| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "7.80" |x9| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "16.10" |y9| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "0.50" |z9| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "8.40" |x10| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "24.50" |y10| F))
+              (|text| . "\\tab{42} ") (|bcStrings| (10 "0.30" |z10| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "9.00" |x11| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "35.30" |y11| F))
+              (|text| . "\\tab{42} ") (|bcStrings| (10 "0.20" |z11| F))
+              (|text| . "\\blankline")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02adfGen|)
+        (|htpSetProperty| |page| '|m| |m|)
+        (|htpSetProperty| |page| '|k| |k|)
+        (|htpSetProperty| |page| '|nrows| |nrows|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02adfGen htPage ==
+;  m := htpProperty(htPage,'m)
+;  k := htpProperty(htPage,'k)
+;  nrows := htpProperty(htPage,'nrows)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  kplus1 := k + 1
+;  y := alist
+;  while y repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    mid :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    left :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    xlist := [left,:xlist]
+;    ylist := [mid,:ylist]
+;    wlist := [right,:wlist]
+;  xstring := bcwords2liststring xlist
+;  ystring := bcwords2liststring ylist
+;  wstring := bcwords2liststring wlist
+;  prefix := STRCONC('"e02adf(",STRINGIMAGE m,", ",STRINGIMAGE kplus1,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE nrows,", [",xstring,"],[",ystring,"],[")
+;  prefix := STRCONC(prefix,wstring,"],",STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02adfGen| (|htPage|)
+  (PROG (|m| |k| |nrows| |ifail| |alist| |kplus1| |right| |mid| |left|
+             |y| |xlist| |ylist| |wlist| |xstring| |ystring| |wstring|
+             |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m| (|htpProperty| |htPage| '|m|))
+             (SPADLET |k| (|htpProperty| |htPage| '|k|))
+             (SPADLET |nrows| (|htpProperty| |htPage| '|nrows|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |kplus1| (PLUS |k| 1))
+             (SPADLET |y| |alist|)
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |mid|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |left|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |xlist| (CONS |left| |xlist|))
+                            (SPADLET |ylist| (CONS |mid| |ylist|))
+                            (SPADLET |wlist| (CONS |right| |wlist|))))))
+             (SPADLET |xstring| (|bcwords2liststring| |xlist|))
+             (SPADLET |ystring| (|bcwords2liststring| |ylist|))
+             (SPADLET |wstring| (|bcwords2liststring| |wlist|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02adf(") (STRINGIMAGE |m|)
+                               '|, | (STRINGIMAGE |kplus1|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |nrows|) '|, [|
+                               |xstring| '|],[| |ystring| '|],[|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |wstring| '|],|
+                               (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02aef() ==
+;  htInitPage('"E02AEF - Evaluation of fitted polynomial in one variable from Chebyshev series form", nil)
+;  htMakePage '(
+;    (domainConditions
+;      (isDomain F (Float))
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02aef} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02aef| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Evaluates a polynomial in Chabyshev series representation ")
+;    (text . "\newline \center{\htbitmap{e02aef}} ")
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of terms in the series {\it n}:")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 4 n PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "\htbitmap{xbar}: ")
+;    (text . " \newline \tab{2} ")
+;    (bcStrings (6 "-1.0" xcap F))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02aefSolve)
+;  htShowPage()
+
+(DEFUN |e02aef| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02AEF - Evaluation of fitted polynomial in one variable from Chebyshev series form")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| F (|Float|))
+              (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02aef} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02aef| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Evaluates a polynomial in Chabyshev series representation ")
+          (|text| . "\\newline \\center{\\htbitmap{e02aef}} ")
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Number of terms in the series {\\it n}:")
+          (|text| . "\\newline \\tab{2} ") (|bcStrings| (6 4 |n| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "\\htbitmap{xbar}: ")
+          (|text| . " \\newline \\tab{2} ")
+          (|bcStrings| (6 "-1.0" |xcap| F)) (|text| . "\\blankline ")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02aefSolve|)
+    (|htShowPage|)))
+
+;e02aefSolve htPage ==
+;  n :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n)
+;    objValUnwrap htpLabelSpadValue(htPage, 'n)
+;  xcap := htpLabelInputString(htPage,'xcap)
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  n = '4 => e02aefDefaultSolve(htPage,xcap,ifail)
+;  labelList :=
+;    "append"/[f(i) for i in 1..(n+1)] where f(i) ==
+;      prefix := ('"\newline \tab{15} ")
+;      anam := INTERN STRCONC ('"a",STRINGIMAGE i)
+;      [['text,:prefix],['bcStrings,[10, 0.0, anam, 'F]]]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList]
+;  page := htInitPage("E02AEF - Evaluation of fitted polynomial in one variable from Chebyshev series from", nil)
+;  htSay '"\menuitemstyle{}\tab{2} Enter the coefficients of {\it a(n+1)}:"
+;  htSay '"\blankline "
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02aefGen)
+;  htpSetProperty(page,'n,n)
+;  htpSetProperty(page,'xcap,xcap)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02aefSolve,f| (|i|)
+  (PROG (|prefix| |anam|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{15} "))
+           (SPADLET |anam|
+                    (INTERN (STRCONC (MAKESTRING "a")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 10
+                                     (CONS 0.0
+                                      (CONS |anam| (CONS 'F NIL))))
+                                    NIL))
+                             NIL)))))))
+
+(DEFUN |e02aefSolve| (|htPage|)
+  (PROG (|n| |xcap| |error| |ifail| |labelList| |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |n|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|n|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|n|)))))
+             (SPADLET |xcap| (|htpLabelInputString| |htPage| '|xcap|))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((BOOT-EQUAL |n| '4)
+                (|e02aefDefaultSolve| |htPage| |xcap| |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G166160)
+                           (SPADLET G166160 NIL)
+                           (RETURN
+                             (DO ((G166165 (PLUS |n| 1))
+                                  (|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| G166165) G166160)
+                               (SEQ (EXIT
+                                     (SETQ G166160
+                                      (APPEND G166160
+                                       (|e02aefSolve,f| |i|)))))))))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               |labelList|))
+                (SPADLET |page|
+                         (|htInitPage|
+                             '|E02AEF - Evaluation of fitted polynomial in one variable from Chebyshev series from|
+                             NIL))
+                (|htSay| (MAKESTRING
+         "\\menuitemstyle{}\\tab{2} Enter the coefficients of {\\it a(n+1)}:"))
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02aefGen|)
+                (|htpSetProperty| |page| '|n| |n|)
+                (|htpSetProperty| |page| '|xcap| |xcap|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02aefDefaultSolve  (htPage,xcap,ifail) ==
+;  n := '4
+;  page := htInitPage('"E02AEF - Evaluation of fitted polynomial in one variable from Chebyshev series form", nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} ")
+;    (text . "Enter the coeffients of {\it a(n+1)}: ")
+;    (text . "\blankline ")
+;    (text . "\newline \tab{15} ")
+;    (bcStrings (10 "2.0000" a1 F))
+;    (text . "\newline \tab{15} ")
+;    (bcStrings (10 "0.5000" a2 F))
+;    (text . "\newline \tab{15} ")
+;    (bcStrings (10 "0.2500" a3 F))
+;    (text . "\newline \tab{15} ")
+;    (bcStrings (10 "0.1250" a4 F))
+;    (text . "\newline \tab{15} ")
+;    (bcStrings (10 "0.0625" a5 F))
+;    (text . "\blankline "))
+;  htMakeDoneButton('"Continue",'e02aefGen)
+;  htpSetProperty(page,'n,n)
+;  htpSetProperty(page,'xcap,xcap)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02aefDefaultSolve| (|htPage| |xcap| |ifail|)
+  (PROG (|n| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |n| '4)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02AEF - Evaluation of fitted polynomial in one variable from Chebyshev series form")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text| . "\\newline ")
+              (|text| . "\\menuitemstyle{}\\tab{2} ")
+              (|text| . "Enter the coeffients of {\\it a(n+1)}: ")
+              (|text| . "\\blankline ")
+              (|text| . "\\newline \\tab{15} ")
+              (|bcStrings| (10 "2.0000" |a1| F))
+              (|text| . "\\newline \\tab{15} ")
+              (|bcStrings| (10 "0.5000" |a2| F))
+              (|text| . "\\newline \\tab{15} ")
+              (|bcStrings| (10 "0.2500" |a3| F))
+              (|text| . "\\newline \\tab{15} ")
+              (|bcStrings| (10 "0.1250" |a4| F))
+              (|text| . "\\newline \\tab{15} ")
+              (|bcStrings| (10 "0.0625" |a5| F))
+              (|text| . "\\blankline ")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02aefGen|)
+        (|htpSetProperty| |page| '|n| |n|)
+        (|htpSetProperty| |page| '|xcap| |xcap|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02aefGen htPage ==
+;  n := htpProperty(htPage,'n)
+;  xcap := htpProperty(htPage,'xcap)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  nplus1 := n + 1
+;  y := alist
+;  while y repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    arrayList := [right,:arrayList]
+;  astring := bcwords2liststring arrayList
+;  prefix := STRCONC('"e02aef(",STRINGIMAGE nplus1,", [",astring ,"], ")
+;  prefix := STRCONC(prefix,STRINGIMAGE xcap,", ",STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02aefGen| (|htPage|)
+  (PROG (|n| |xcap| |ifail| |alist| |nplus1| |right| |y| |arrayList|
+             |astring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |n| (|htpProperty| |htPage| '|n|))
+             (SPADLET |xcap| (|htpProperty| |htPage| '|xcap|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |nplus1| (PLUS |n| 1))
+             (SPADLET |y| |alist|)
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |arrayList|
+                                     (CONS |right| |arrayList|))))))
+             (SPADLET |astring| (|bcwords2liststring| |arrayList|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02aef(")
+                               (STRINGIMAGE |nplus1|) '|, [| |astring|
+                               '|], |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |xcap|) '|, |
+                               (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02agf() ==
+;  htInitPage('"E02AGF - Least-squares polynomial fit, values and derivatives may be constrained, arbitrary data values",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02agf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02agf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Determines constrained least-squares polynomial approximations ")
+;    (text . "to the set of points {\it (\htbitmap{xr},\htbitmap{yr})} with ")
+;    (text . "weights \htbitmap{wr}, for r = 1,2,...,m. The values of the ")
+;    (text . "approximations and any number of their derivatives must be ")
+;    (text . "specified at a further set of points \htbitmap{xii}, ")
+;    (text . "for i = 1,2,...,{\it mf}. The total number of interpolating ")
+;    (text . "conditions is given by \center{\htbitmap{e02agf}} where ")
+;    (text . "\htbitmap{pi} is the highest order derivative ")
+;    (text . "specified at point \htbitmap{xii}.  The values ")
+;    (text . "\htbitmap{xr} and \htbitmap{xii} all lie ")
+;    (text . "in the interval [\htbitmap{xmin},")
+;    (text . "\htbitmap{xmax}]. The polynomials are given in ")
+;    (text . "Chebyshev series form, the approximation of degree {\it i} being")
+;    (text . " represented as\blankline  \center{\htbitmap{e02agf1}}")
+;    (text . "\newline, where \htbitmap{xbar} is the normalised ")
+;    (text . "argument, related to the original variable {\it x} by the ")
+;    (text . "transformation \newline \center{\htbitmap{e02adf1}} ")
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "\newline Number of data points {\it m}:")
+;    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;    (text . "Maximum degree required {\it k}:")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 5 m PI))
+;    (text . "\tab{34} ")
+;    (bcStrings (6 4 k PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} \newline ")
+;    (text . "First dimension of A, {\it nrows \htbitmap{great=} k+1}: ")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 6 nrows I))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "\newline \htbitmap{xmin}: ")
+;    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;    (text . "\htbitmap{xmax}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 "0.0" xmin F))
+;    (text . "\tab{34} ")
+;    (bcStrings (6 "4.0" xmax F))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "\newline Dimension of {\it xf} & {\it ip}, {\it mf}: ")
+;    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;    (text . "Dimension of {\it yf}, {\it lyf}:")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 2 mf PI))
+;    (text . "\tab{34} ")
+;    (bcStrings (6 15 lyf PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02agfSolve)
+;  htShowPage()
+
+(DEFUN |e02agf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02AGF - Least-squares polynomial fit, values and derivatives may be constrained, arbitrary data values")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02agf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02agf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Determines constrained least-squares polynomial approximations ")
+          (|text|
+           . "to the set of points {\\it (\\htbitmap{xr},\\htbitmap{yr})} with ")
+          (|text|
+           . "weights \\htbitmap{wr}, for r = 1,2,...,m. The values of the ")
+          (|text|
+           . "approximations and any number of their derivatives must be ")
+          (|text|
+           . "specified at a further set of points \\htbitmap{xii}, ")
+          (|text|
+           . "for i = 1,2,...,{\\it mf}. The total number of interpolating ")
+          (|text|
+           . "conditions is given by \\center{\\htbitmap{e02agf}} where ")
+          (|text| . "\\htbitmap{pi} is the highest order derivative ")
+          (|text| . "specified at point \\htbitmap{xii}.  The values ")
+          (|text| . "\\htbitmap{xr} and \\htbitmap{xii} all lie ")
+          (|text| . "in the interval [\\htbitmap{xmin},")
+          (|text| . "\\htbitmap{xmax}]. The polynomials are given in ")
+          (|text|
+           . "Chebyshev series form, the approximation of degree {\\it i} being")
+          (|text|
+           . " represented as\\blankline  \\center{\\htbitmap{e02agf1}}")
+          (|text|
+           . "\\newline, where \\htbitmap{xbar} is the normalised ")
+          (|text|
+           . "argument, related to the original variable {\\it x} by the ")
+          (|text|
+           . "transformation \\newline \\center{\\htbitmap{e02adf1}} ")
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "\\newline Number of data points {\\it m}:")
+          (|text| . "\\tab{32} \\menuitemstyle{}\\tab{34}")
+          (|text| . "Maximum degree required {\\it k}:")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 5 |m| PI))
+          (|text| . "\\tab{34} ") (|bcStrings| (6 4 |k| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2} \\newline ")
+          (|text|
+           . "First dimension of A, {\\it nrows \\htbitmap{great=} k+1}: ")
+          (|text| . "\\newline \\tab{2} ")
+          (|bcStrings| (6 6 |nrows| I)) (|text| . "\\blankline ")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "\\newline \\htbitmap{xmin}: ")
+          (|text| . "\\tab{32} \\menuitemstyle{}\\tab{34}")
+          (|text| . "\\htbitmap{xmax}: ")
+          (|text| . "\\newline\\tab{2} ")
+          (|bcStrings| (6 "0.0" |xmin| F)) (|text| . "\\tab{34} ")
+          (|bcStrings| (6 "4.0" |xmax| F)) (|text| . "\\blankline ")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text|
+           . "\\newline Dimension of {\\it xf} & {\\it ip}, {\\it mf}: ")
+          (|text| . "\\tab{32} \\menuitemstyle{}\\tab{34}")
+          (|text| . "Dimension of {\\it yf}, {\\it lyf}:")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 2 |mf| PI))
+          (|text| . "\\tab{34} ") (|bcStrings| (6 15 |lyf| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02agfSolve|)
+    (|htShowPage|)))
+
+;e02agfSolve htPage ==
+;  m :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
+;    objValUnwrap htpLabelSpadValue(htPage, 'm)
+;  k :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'k)
+;    objValUnwrap htpLabelSpadValue(htPage, 'kplus1)
+;  nrows :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nrows)
+;    objValUnwrap htpLabelSpadValue(htPage, 'nrows)
+;  xmin := htpLabelInputString(htPage,'xmin)
+;  xmax := htpLabelInputString(htPage,'xmax)
+;  mf :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'mf)
+;    objValUnwrap htpLabelSpadValue(htPage, 'mf)
+;  lyf :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'lyf)
+;    objValUnwrap htpLabelSpadValue(htPage, 'lyf)
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  (m = '5 and k ='4 and mf = '2 and lyf = '15) => e02agfDefaultSolve(htPage,nrows,xmin,xmax,ifail)
+;  labelList :=
+;    "append"/[f(i) for i in 1..m] where f(i) ==
+;      prefix := ('"\newline \tab{2} ")
+;      middle := ('"\tab{22} ")
+;      post   := ('" \tab{42} ")
+;      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
+;      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
+;      znam := INTERN STRCONC ('"z",STRINGIMAGE i)
+;      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
+;      [['text,:prefix],['bcStrings,[10, num, xnam, 'F]],
+;       ['text,:middle],['bcStrings,[10, 0.0, ynam, 'F]],
+;        ['text,:post],['bcStrings,[10, 0.0, znam, 'F]]]
+;  xfList :=
+;    "append"/[g(j) for j in 1..mf] where g(j) ==
+;      xfnam := INTERN STRCONC ('"xf",STRINGIMAGE j)
+;      [['bcStrings,[6, 0.0, xfnam, 'F]]]
+;  prefix := ('"\blankline \newline \menuitemstyle{}\tab{2} Values of ")
+;  prefix := STRCONC(prefix,"{\it xf}: \newline \tab{2} ")
+;  xfList := [['text,:prefix],:xfList]
+;  ipList :=
+;    "append"/[h(k) for k in 1..mf] where h(k) ==
+;      ipnam := INTERN STRCONC ('"ip",STRINGIMAGE k)
+;      [['bcStrings,[6, 0, ipnam, 'PI]]]
+;  prefix := ('"\blankline \newline \menuitemstyle{}\tab{2} Values of ")
+;  prefix := STRCONC(prefix,"{\it ip}: \newline \tab{2} ")
+;  ipList := [['text,:prefix],:ipList]
+;  yfList :=
+;    "append"/[i(l) for l in 1..lyf] where i(l) ==
+;      prefix := ('"\newline \tab{2} ")
+;      yfnam := INTERN STRCONC ('"lyf",STRINGIMAGE l)
+;      [['text,:prefix],['bcStrings,[10, 0.0, yfnam, 'F]]]
+;  prefix := ('"\blankline \newline \menuitemstyle{}\tab{2} Values of ")
+;  prefix := STRCONC(prefix,"{\it yf}: \newline \tab{2} ")
+;  yfList := [['text,:prefix],:yfList]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList,:xfList,:ipList,:yfList]
+;  page := htInitPage("E02AGF - Least-squares polynomial fit, values and derivatives may be constrained, arbitrary data values",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Values of \space{1} "
+;  htSay '"\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} "
+;  htSay '"Values of \space{1} \htbitmap{yr}: \tab{40}"
+;  htSay '"\menuitemstyle{}\tab{42} Values of \space{1} "
+;  htSay '"\htbitmap{wr}: "
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02agfGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'k,k)
+;  htpSetProperty(page,'nrows,nrows)
+;  htpSetProperty(page,'nrows,nrows)
+;  htpSetProperty(page,'xmin,xmin)
+;  htpSetProperty(page,'xmax,xmax)
+;  htpSetProperty(page,'mf,mf)
+;  htpSetProperty(page,'lyf,lyf)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02agfSolve,f| (|i|)
+  (PROG (|prefix| |middle| |post| |xnam| |ynam| |znam| |num|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |middle| (MAKESTRING "\\tab{22} "))
+           (SPADLET |post| (MAKESTRING " \\tab{42} "))
+           (SPADLET |xnam|
+                    (INTERN (STRCONC (MAKESTRING "x")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |ynam|
+                    (INTERN (STRCONC (MAKESTRING "y")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |znam|
+                    (INTERN (STRCONC (MAKESTRING "z")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |num|
+                    (INTERN (STRCONC (STRINGIMAGE (QUOTIENT |i| 10))
+                                     (INTERN "." "BOOT")
+                                     (STRINGIMAGE (REM |i| 10)))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 10
+                                     (CONS |num|
+                                      (CONS |xnam| (CONS 'F NIL))))
+                                    NIL))
+                             (CONS (CONS '|text| |middle|)
+                                   (CONS
+                                    (CONS '|bcStrings|
+                                     (CONS
+                                      (CONS 10
+                                       (CONS 0.0
+                                        (CONS |ynam| (CONS 'F NIL))))
+                                      NIL))
+                                    (CONS (CONS '|text| |post|)
+                                     (CONS
+                                      (CONS '|bcStrings|
+                                       (CONS
+                                        (CONS 10
+                                         (CONS 0.0
+                                          (CONS |znam| (CONS 'F NIL))))
+                                        NIL))
+                                      NIL)))))))))))
+
+(DEFUN |e02agfSolve,g| (|j|)
+  (PROG (|xfnam|)
+    (RETURN
+      (SEQ (SPADLET |xfnam|
+                    (INTERN (STRCONC (MAKESTRING "xf")
+                                     (STRINGIMAGE |j|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 6
+                                    (CONS 0.0
+                                     (CONS |xfnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02agfSolve,h| (|k|)
+  (PROG (|ipnam|)
+    (RETURN
+      (SEQ (SPADLET |ipnam|
+                    (INTERN (STRCONC (MAKESTRING "ip")
+                                     (STRINGIMAGE |k|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 6
+                                    (CONS 0
+                                     (CONS |ipnam| (CONS 'PI NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02agfSolve,i| (|l|)
+  (PROG (|prefix| |yfnam|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |yfnam|
+                    (INTERN (STRCONC (MAKESTRING "lyf")
+                                     (STRINGIMAGE |l|))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 10
+                                     (CONS 0.0
+                                      (CONS |yfnam| (CONS 'F NIL))))
+                                    NIL))
+                             NIL)))))))
+
+(DEFUN |e02agfSolve| (|htPage|)
+  (PROG (|m| |k| |nrows| |xmin| |xmax| |mf| |lyf| |error| |ifail|
+             |labelList| |xfList| |ipList| |prefix| |yfList|
+             |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|m|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|m|)))))
+             (SPADLET |k|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|k|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|kplus1|)))))
+             (SPADLET |nrows|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|nrows|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|nrows|)))))
+             (SPADLET |xmin| (|htpLabelInputString| |htPage| '|xmin|))
+             (SPADLET |xmax| (|htpLabelInputString| |htPage| '|xmax|))
+             (SPADLET |mf|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|mf|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|mf|)))))
+             (SPADLET |lyf|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|lyf|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|lyf|)))))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((AND (BOOT-EQUAL |m| '5) (BOOT-EQUAL |k| '4)
+                     (BOOT-EQUAL |mf| '2) (BOOT-EQUAL |lyf| '15))
+                (|e02agfDefaultSolve| |htPage| |nrows| |xmin| |xmax|
+                    |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G166254)
+                           (SPADLET G166254 NIL)
+                           (RETURN
+                             (DO ((|e02agfSolve,i| 1
+                                      (QSADD1 |e02agfSolve,i|)))
+                                 ((QSGREATERP |e02agfSolve,i| |m|)
+                                  G166254)
+                               (SEQ (EXIT
+                                     (SETQ G166254
+                                      (APPEND G166254
+                                       (|e02agfSolve,f|
+                                        |e02agfSolve,i|)))))))))
+                (SPADLET |xfList|
+                         (PROG (G166262)
+                           (SPADLET G166262 NIL)
+                           (RETURN
+                             (DO ((|j| 1 (QSADD1 |j|)))
+                                 ((QSGREATERP |j| |mf|) G166262)
+                               (SEQ (EXIT
+                                     (SETQ G166262
+                                      (APPEND G166262
+                                       (|e02agfSolve,g| |j|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                 "\\blankline \\newline \\menuitemstyle{}\\tab{2} Values of "))
+                (SPADLET |prefix|
+                         (STRCONC |prefix|
+                                  '|{\\it xf}: \\newline \\tab{2} |))
+                (SPADLET |xfList|
+                         (CONS (CONS '|text| |prefix|) |xfList|))
+                (SPADLET |ipList|
+                         (PROG (G166270)
+                           (SPADLET G166270 NIL)
+                           (RETURN
+                             (DO ((|k| 1 (QSADD1 |k|)))
+                                 ((QSGREATERP |k| |mf|) G166270)
+                               (SEQ (EXIT
+                                     (SETQ G166270
+                                      (APPEND G166270
+                                       (|e02agfSolve,h| |k|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                 "\\blankline \\newline \\menuitemstyle{}\\tab{2} Values of "))
+                (SPADLET |prefix|
+                         (STRCONC |prefix|
+                                  '|{\\it ip}: \\newline \\tab{2} |))
+                (SPADLET |ipList|
+                         (CONS (CONS '|text| |prefix|) |ipList|))
+                (SPADLET |yfList|
+                         (PROG (G166278)
+                           (SPADLET G166278 NIL)
+                           (RETURN
+                             (DO ((|l| 1 (QSADD1 |l|)))
+                                 ((QSGREATERP |l| |lyf|) G166278)
+                               (SEQ (EXIT
+                                     (SETQ G166278
+                                      (APPEND G166278
+                                       (|e02agfSolve,i| |l|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                 "\\blankline \\newline \\menuitemstyle{}\\tab{2} Values of "))
+                (SPADLET |prefix|
+                         (STRCONC |prefix|
+                                  '|{\\it yf}: \\newline \\tab{2} |))
+                (SPADLET |yfList|
+                         (CONS (CONS '|text| |prefix|) |yfList|))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               (APPEND |labelList|
+                                       (APPEND |xfList|
+                                        (APPEND |ipList| |yfList|)))))
+                (SPADLET |page|
+                         (|htInitPage|
+                         '|E02AGF - Least-squares polynomial fit, values and derivatives may be constrained, arbitrary data values|
+                             NIL))
+                (|htSay| (MAKESTRING
+                            "\\menuitemstyle{}\\tab{2} Values of \\space{1} "))
+                (|htSay| (MAKESTRING
+                      "\\htbitmap{xr}: \\tab{20} \\menuitemstyle{}\\tab{22} "))
+                (|htSay| (MAKESTRING
+                             "Values of \\space{1} \\htbitmap{yr}: \\tab{40}"))
+                (|htSay| (MAKESTRING
+                           "\\menuitemstyle{}\\tab{42} Values of \\space{1} "))
+                (|htSay| (MAKESTRING "\\htbitmap{wr}: "))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02agfGen|)
+                (|htpSetProperty| |page| '|m| |m|)
+                (|htpSetProperty| |page| '|k| |k|)
+                (|htpSetProperty| |page| '|nrows| |nrows|)
+                (|htpSetProperty| |page| '|nrows| |nrows|)
+                (|htpSetProperty| |page| '|xmin| |xmin|)
+                (|htpSetProperty| |page| '|xmax| |xmax|)
+                (|htpSetProperty| |page| '|mf| |mf|)
+                (|htpSetProperty| |page| '|lyf| |lyf|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02agfDefaultSolve  (htPage,nrows,xmin,xmax,ifail) ==
+;  m := '5
+;  k := '4
+;  mf := '2
+;  lyf := '15
+;  page := htInitPage('"E02AGF - Least-squares polynomial fit, values and derivativesby polynomials, arbitrary data points", htpPropertyList htPage)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\menuitemstyle{}\tab{2} Values of \space{1} ")
+;    (text . "\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} ")
+;    (text . "Values of \space{1} \htbitmap{yr}: \tab{40} ")
+;    (text . "\menuitemstyle{}\tab{42} Values of \space{1} ")
+;    (text . "\htbitmap{wr}: ")
+;    (text . "\newline \tab{2}")
+;    (bcStrings (10 "0.5" x1 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.03" y1 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.0" z1 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "1.0" x2 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "-0.75" y2 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.0" z2 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "2.0" x3 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "-1.0" y3 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.0" z3 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "2.5" x4 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "-0.1" y4 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.0" z4 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "3.0" x5 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "1.75" y5 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.0" z5 F))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} Values of {\it xf}: ")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 "0.0" xf1 F))
+;    (bcStrings (6 "4.0" xf2 F))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} Values of {\it ip}: ")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 1 ip1 PI))
+;    (bcStrings (6 0 ip2 PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} Values of {\it yf}: ")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "1.0" lyf1 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "-2.0" lyf2 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "9.0" lyf3 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.0" lyf4 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.0" lyf5 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.0" lyf6 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.0" lyf7 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.0" lyf8 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.0" lyf9 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.0" lyf10 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.0" lyf11 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.0" lyf12 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.0" lyf13 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.0" lyf14 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.0" lyf15 F)))
+;  htMakeDoneButton('"Continue",'e02agfGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'k,k)
+;  htpSetProperty(page,'nrows,nrows)
+;  htpSetProperty(page,'xmin,xmin)
+;  htpSetProperty(page,'xmax,xmax)
+;  htpSetProperty(page,'mf,mf)
+;  htpSetProperty(page,'lyf,lyf)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02agfDefaultSolve| (|htPage| |nrows| |xmin| |xmax| |ifail|)
+  (PROG (|m| |k| |mf| |lyf| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |m| '5)
+        (SPADLET |k| '4)
+        (SPADLET |mf| '2)
+        (SPADLET |lyf| '15)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02AGF - Least-squares polynomial fit, values and derivativesby polynomials, arbitrary data points")
+                     (|htpPropertyList| |htPage|)))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of \\space{1} ")
+              (|text|
+               . "\\htbitmap{xr}: \\tab{20} \\menuitemstyle{}\\tab{22} ")
+              (|text|
+               . "Values of \\space{1} \\htbitmap{yr}: \\tab{40} ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{42} Values of \\space{1} ")
+              (|text| . "\\htbitmap{wr}: ")
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (10 "0.5" |x1| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.03" |y1| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.0" |z1| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "1.0" |x2| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "-0.75" |y2| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.0" |z2| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "2.0" |x3| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "-1.0" |y3| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.0" |z3| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "2.5" |x4| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "-0.1" |y4| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.0" |z4| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "3.0" |x5| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "1.75" |y5| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.0" |z5| F)) (|text| . "\\blankline ")
+              (|text| . "\\newline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of {\\it xf}: ")
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (6 "0.0" |xf1| F))
+              (|bcStrings| (6 "4.0" |xf2| F)) (|text| . "\\blankline ")
+              (|text| . "\\newline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of {\\it ip}: ")
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (6 1 |ip1| PI)) (|bcStrings| (6 0 |ip2| PI))
+              (|text| . "\\blankline ") (|text| . "\\newline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of {\\it yf}: ")
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "1.0" |lyf1| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "-2.0" |lyf2| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "9.0" |lyf3| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.0" |lyf4| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.0" |lyf5| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.0" |lyf6| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.0" |lyf7| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.0" |lyf8| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.0" |lyf9| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.0" |lyf10| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.0" |lyf11| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.0" |lyf12| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.0" |lyf13| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.0" |lyf14| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.0" |lyf15| F))))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02agfGen|)
+        (|htpSetProperty| |page| '|m| |m|)
+        (|htpSetProperty| |page| '|k| |k|)
+        (|htpSetProperty| |page| '|nrows| |nrows|)
+        (|htpSetProperty| |page| '|xmin| |xmin|)
+        (|htpSetProperty| |page| '|xmax| |xmax|)
+        (|htpSetProperty| |page| '|mf| |mf|)
+        (|htpSetProperty| |page| '|lyf| |lyf|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02agfGen htPage ==
+;  m := htpProperty(htPage,'m)
+;  k := htpProperty(htPage,'k)
+;  nrows := htpProperty(htPage,'nrows)
+;  xmin := htpProperty(htPage,'xmin)
+;  xmax := htpProperty(htPage,'xmax)
+;  mf := htpProperty(htPage,'mf)
+;  lyf := htpProperty(htPage,'lyf)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  kplus1 := k + 1
+;  ipsum := 0
+;  y := alist
+;  for i in 1..lyf repeat
+;    yf := STRCONC((first y).1," ")
+;    yfList := [yf,:yfList]
+;    y := rest y
+;  yfstring := bcwords2liststring yfList
+;  for i in 1..mf repeat
+;    iptest := (first y).1
+;    iptestval := READ_-FROM_-STRING(iptest)
+;    ipsum := ipsum + iptestval
+;    ip := STRCONC(iptest," ")
+;    iptestList := [iptestval,:iptestList]
+;    ipList := [ip,:ipList]
+;    y := rest y
+;  ipstring := bcwords2liststring ipList
+;  ipmax := APPLY ('MAX, iptestList)
+;  n := mf + ipsum
+;  for i in 1..mf repeat
+;    xf := STRCONC((first y).1," ")
+;    xfList := [xf,:xfList]
+;    y := rest y
+;  xfstring := bcwords2liststring xfList
+;  while y repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    mid :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    left :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    xlist := [left,:xlist]
+;    ylist := [mid,:ylist]
+;    wlist := [right,:wlist]
+;  xstring := bcwords2liststring xlist
+;  ystring := bcwords2liststring ylist
+;  wstring := bcwords2liststring wlist
+;  wrktest1 := 4*m + 3*kplus1
+;  wrktest2 := 8*n + 5*ipmax + mf +10
+;  wrktestlist := [wrktest1,wrktest2]
+;  wrkmax := APPLY ('MAX, wrktestlist)
+;  lwrk := wrkmax + 2*n + 2
+;  liwrk := 2*mf + 2
+;  prefix := STRCONC('"e02agf(",STRINGIMAGE m,", ",STRINGIMAGE kplus1,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE nrows,", ",xmin,", ",xmax,", [",xstring)
+;  prefix := STRCONC(prefix,"],[",ystring,"],[",wstring,"],",STRINGIMAGE mf)
+;  prefix := STRCONC(prefix,", [",xfstring,"],[",yfstring,"],")
+;  prefix := STRCONC(prefix,STRINGIMAGE lyf,", [",ipstring,"]::Matrix Integer,")
+;  prefix := STRCONC(prefix,STRINGIMAGE lwrk,", ",STRINGIMAGE liwrk,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02agfGen| (|htPage|)
+  (PROG (|m| |k| |nrows| |xmin| |xmax| |mf| |lyf| |ifail| |alist|
+             |kplus1| |yf| |yfList| |yfstring| |iptest| |iptestval|
+             |ipsum| |ip| |iptestList| |ipList| |ipstring| |ipmax| |n|
+             |xf| |xfList| |xfstring| |right| |mid| |left| |y| |xlist|
+             |ylist| |wlist| |xstring| |ystring| |wstring| |wrktest1|
+             |wrktest2| |wrktestlist| |wrkmax| |lwrk| |liwrk| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m| (|htpProperty| |htPage| '|m|))
+             (SPADLET |k| (|htpProperty| |htPage| '|k|))
+             (SPADLET |nrows| (|htpProperty| |htPage| '|nrows|))
+             (SPADLET |xmin| (|htpProperty| |htPage| '|xmin|))
+             (SPADLET |xmax| (|htpProperty| |htPage| '|xmax|))
+             (SPADLET |mf| (|htpProperty| |htPage| '|mf|))
+             (SPADLET |lyf| (|htpProperty| |htPage| '|lyf|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |kplus1| (PLUS |k| 1))
+             (SPADLET |ipsum| 0)
+             (SPADLET |y| |alist|)
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |lyf|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |yf|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |yfList| (CONS |yf| |yfList|))
+                            (SPADLET |y| (CDR |y|))))))
+             (SPADLET |yfstring| (|bcwords2liststring| |yfList|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |mf|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |iptest| (ELT (CAR |y|) 1))
+                            (SPADLET |iptestval|
+                                     (READ-FROM-STRING |iptest|))
+                            (SPADLET |ipsum|
+                                     (PLUS |ipsum| |iptestval|))
+                            (SPADLET |ip| (STRCONC |iptest| '| |))
+                            (SPADLET |iptestList|
+                                     (CONS |iptestval| |iptestList|))
+                            (SPADLET |ipList| (CONS |ip| |ipList|))
+                            (SPADLET |y| (CDR |y|))))))
+             (SPADLET |ipstring| (|bcwords2liststring| |ipList|))
+             (SPADLET |ipmax| (APPLY 'MAX |iptestList|))
+             (SPADLET |n| (PLUS |mf| |ipsum|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |mf|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |xf|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |xfList| (CONS |xf| |xfList|))
+                            (SPADLET |y| (CDR |y|))))))
+             (SPADLET |xfstring| (|bcwords2liststring| |xfList|))
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |mid|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |left|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |xlist| (CONS |left| |xlist|))
+                            (SPADLET |ylist| (CONS |mid| |ylist|))
+                            (SPADLET |wlist| (CONS |right| |wlist|))))))
+             (SPADLET |xstring| (|bcwords2liststring| |xlist|))
+             (SPADLET |ystring| (|bcwords2liststring| |ylist|))
+             (SPADLET |wstring| (|bcwords2liststring| |wlist|))
+             (SPADLET |wrktest1|
+                      (PLUS (TIMES 4 |m|) (TIMES 3 |kplus1|)))
+             (SPADLET |wrktest2|
+                      (PLUS (PLUS (PLUS (TIMES 8 |n|)
+                                        (TIMES 5 |ipmax|))
+                                  |mf|)
+                            10))
+             (SPADLET |wrktestlist|
+                      (CONS |wrktest1| (CONS |wrktest2| NIL)))
+             (SPADLET |wrkmax| (APPLY 'MAX |wrktestlist|))
+             (SPADLET |lwrk| (PLUS (PLUS |wrkmax| (TIMES 2 |n|)) 2))
+             (SPADLET |liwrk| (PLUS (TIMES 2 |mf|) 2))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02agf(") (STRINGIMAGE |m|)
+                               '|, | (STRINGIMAGE |kplus1|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |nrows|) '|, |
+                               |xmin| '|, | |xmax| '|, [| |xstring|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| '|],[| |ystring| '|],[|
+                               |wstring| '|],| (STRINGIMAGE |mf|)))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| '|, [| |xfstring| '|],[|
+                               |yfstring| '|],|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |lyf|) '|, [|
+                               |ipstring| '|]::Matrix Integer,|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |lwrk|) '|, |
+                               (STRINGIMAGE |liwrk|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02ahf() ==
+;  htInitPage('"E02AHF - Derivative of fitted polynomial in Chebyshev series",nil)
+;  htMakePage '(
+;    (domainConditions
+;      (isDomain F (Float))
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02ahf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02ahf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Determines the indefinite integral of the Chebyshev series ")
+;    (text . "representation \newline \center{\htbitmap{e02ahf1}} ")
+;    (text . "of a polynomial, where \htbitmap{xbar} is the ")
+;    (text . "normalised argument, related to the original variable x by the ")
+;    (text . "transformation \blankline \center{\htbitmap{e02adf1}}")
+;    (text . ",\htbitmap{xmin} and \htbitmap{xmax} being ")
+;    (text . "minimum and maximum values of {\it x} respectively. The integral")
+;    (text . " polynomial has the form ")
+;    (text . "\blankline \center{\htbitmap{e02ahf}}")
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Degree of the polynomial {\it n}:")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 6 n PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "\newline \htbitmap{xmin}: ")
+;    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;    (text . "\htbitmap{xmax}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 "-0.5" xmin F))
+;    (text . "\tab{34} ")
+;    (bcStrings (6 "2.5" xmax F))
+;--    (text . "\blankline ")
+;--    (text . "\newline ")
+;--    (text . "\menuitemstyle{}\tab{2}")
+;--    (text . "\newline Dimension of array {\it a}, {\it la}: ")
+;--    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;--    (text . "Dimension of {\it adif}, {\it ladif}: ")
+;--    (text . "\newline\tab{2} ")
+;--    (bcStrings (6 7 la PI))
+;--    (text . "\tab{34} ")
+;--    (bcStrings (6 7 ladif PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "\newline Increment of array {\it a}, {\it ia1}: ")
+;    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;    (text . "\newline Increment of array {\it adif}, {\it ladif1}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 1 iaone PI))
+;    (text . "\tab{34} ")
+;    (bcStrings (6 1 ladifone PI))
+;    (text . "\blankline")
+;    (text . "\newline \menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02ahfSolve)
+;  htShowPage()
+
+(DEFUN |e02ahf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02AHF - Derivative of fitted polynomial in Chebyshev series")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| F (|Float|))
+              (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02ahf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02ahf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Determines the indefinite integral of the Chebyshev series ")
+          (|text|
+           . "representation \\newline \\center{\\htbitmap{e02ahf1}} ")
+          (|text| . "of a polynomial, where \\htbitmap{xbar} is the ")
+          (|text|
+           . "normalised argument, related to the original variable x by the ")
+          (|text|
+           . "transformation \\blankline \\center{\\htbitmap{e02adf1}}")
+          (|text| . ",\\htbitmap{xmin} and \\htbitmap{xmax} being ")
+          (|text|
+           . "minimum and maximum values of {\\it x} respectively. The integral")
+          (|text| . " polynomial has the form ")
+          (|text| . "\\blankline \\center{\\htbitmap{e02ahf}}")
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Degree of the polynomial {\\it n}:")
+          (|text| . "\\newline \\tab{2} ") (|bcStrings| (6 6 |n| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "\\newline \\htbitmap{xmin}: ")
+          (|text| . "\\tab{32} \\menuitemstyle{}\\tab{34}")
+          (|text| . "\\htbitmap{xmax}: ")
+          (|text| . "\\newline\\tab{2} ")
+          (|bcStrings| (6 "-0.5" |xmin| F)) (|text| . "\\tab{34} ")
+          (|bcStrings| (6 "2.5" |xmax| F)) (|text| . "\\blankline ")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text|
+           . "\\newline Increment of array {\\it a}, {\\it ia1}: ")
+          (|text| . "\\tab{32} \\menuitemstyle{}\\tab{34}")
+          (|text|
+           . "\\newline Increment of array {\\it adif}, {\\it ladif1}: ")
+          (|text| . "\\newline\\tab{2} ")
+          (|bcStrings| (6 1 |iaone| PI)) (|text| . "\\tab{34} ")
+          (|bcStrings| (6 1 |ladifone| PI)) (|text| . "\\blankline")
+          (|text| . "\\newline \\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02ahfSolve|)
+    (|htShowPage|)))
+
+;e02ahfSolve htPage ==
+;  n :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n)
+;    objValUnwrap htpLabelSpadValue(htPage, 'n)
+;  xmin := htpLabelInputString(htPage,'xmin)
+;  xmax := htpLabelInputString(htPage,'xmax)
+;  iaone :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'iaone)
+;    objValUnwrap htpLabelSpadValue(htPage, 'iaone)
+;  ladifone :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ladifone)
+;    objValUnwrap htpLabelSpadValue(htPage, 'ladifone)
+;  la := 1+n*iaone
+;--    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'la)
+;--    objValUnwrap htpLabelSpadValue(htPage, 'la)
+;  ladif :=1+n*ladifone
+;--    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ladif)
+;--    objValUnwrap htpLabelSpadValue(htPage, 'ladif)
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  (n = '6 and (la ='7 and ladif = '7)) =>
+;     e02ahfDefaultSolve(htPage,xmin,xmax,iaone,ladifone,ifail)
+;  labelList :=
+;    "append"/[f(i) for i in 1..la] where f(i) ==
+;      prefix := ('"\newline \tab{15} ")
+;      anam := INTERN STRCONC ('"a",STRINGIMAGE i)
+;      [['text,:prefix],['bcStrings,[10, "0.0000", anam, 'F]]]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList]
+;  page := htInitPage("E02AHF - Derivative of fitted polynomial in Chebyshev series",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Coefficients of {\it a(la)}:"
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02ahfGen)
+;  htpSetProperty(page,'n,n)
+;  htpSetProperty(page,'la,la)
+;  htpSetProperty(page,'ladif,ladif)
+;  htpSetProperty(page,'xmin,xmin)
+;  htpSetProperty(page,'xmax,xmax)
+;  htpSetProperty(page,'iaone,iaone)
+;  htpSetProperty(page,'ladifone,ladifone)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02ahfSolve,f| (|i|)
+  (PROG (|prefix| |anam|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{15} "))
+           (SPADLET |anam|
+                    (INTERN (STRCONC (MAKESTRING "a")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 10
+                                     (CONS '|0.0000|
+                                      (CONS |anam| (CONS 'F NIL))))
+                                    NIL))
+                             NIL)))))))
+
+(DEFUN |e02ahfSolve| (|htPage|)
+  (PROG (|n| |xmin| |xmax| |iaone| |ladifone| |la| |ladif| |error|
+             |ifail| |labelList| |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |n|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|n|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|n|)))))
+             (SPADLET |xmin| (|htpLabelInputString| |htPage| '|xmin|))
+             (SPADLET |xmax| (|htpLabelInputString| |htPage| '|xmax|))
+             (SPADLET |iaone|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|iaone|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|iaone|)))))
+             (SPADLET |ladifone|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|ladifone|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|ladifone|)))))
+             (SPADLET |la| (PLUS 1 (TIMES |n| |iaone|)))
+             (SPADLET |ladif| (PLUS 1 (TIMES |n| |ladifone|)))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((AND (BOOT-EQUAL |n| '6) (BOOT-EQUAL |la| '7)
+                     (BOOT-EQUAL |ladif| '7))
+                (|e02ahfDefaultSolve| |htPage| |xmin| |xmax| |iaone|
+                    |ladifone| |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G166451)
+                           (SPADLET G166451 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |la|) G166451)
+                               (SEQ (EXIT
+                                     (SETQ G166451
+                                      (APPEND G166451
+                                       (|e02ahfSolve,f| |i|)))))))))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               |labelList|))
+                (SPADLET |page|
+                         (|htInitPage|
+                '|E02AHF - Derivative of fitted polynomial in Chebyshev series|
+                             NIL))
+                (|htSay| (MAKESTRING
+                    "\\menuitemstyle{}\\tab{2} Coefficients of {\\it a(la)}:"))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02ahfGen|)
+                (|htpSetProperty| |page| '|n| |n|)
+                (|htpSetProperty| |page| '|la| |la|)
+                (|htpSetProperty| |page| '|ladif| |ladif|)
+                (|htpSetProperty| |page| '|xmin| |xmin|)
+                (|htpSetProperty| |page| '|xmax| |xmax|)
+                (|htpSetProperty| |page| '|iaone| |iaone|)
+                (|htpSetProperty| |page| '|ladifone| |ladifone|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02ahfDefaultSolve  (htPage,xmin,xmax,iaone,ladifone,ifail) ==
+;  n := '6
+;  la := '7
+;  ladif := '7
+;  page := htInitPage('"E02AHF - Derivative of fitted polynomial in Chebyshev series",nil)
+;  htMakePage '(
+;    (domainConditions
+;      (isDomain PI (Positive Integer))
+;       (isDomain F (Float)))
+;    (text . "\menuitemstyle{}\tab{2} ")
+;    (text . "Coefficients of {\it a(la)}: ")
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "2.53213" a1 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "1.13032" a2 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.27150" a3 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.04434" a4 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.00547" a5 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.00054" a6 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.00004" a7 F))
+;    (text . "\blankline"))
+;  htMakeDoneButton('"Continue",'e02ahfGen)
+;  htpSetProperty(page,'n,n)
+;  htpSetProperty(page,'la,la)
+;  htpSetProperty(page,'ladif,ladif)
+;  htpSetProperty(page,'xmin,xmin)
+;  htpSetProperty(page,'xmax,xmax)
+;  htpSetProperty(page,'iaone,iaone)
+;  htpSetProperty(page,'ladifone,ladifone)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02ahfDefaultSolve|
+       (|htPage| |xmin| |xmax| |iaone| |ladifone| |ifail|)
+  (PROG (|n| |la| |ladif| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |n| '6)
+        (SPADLET |la| '7)
+        (SPADLET |ladif| '7)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02AHF - Derivative of fitted polynomial in Chebyshev series")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions|
+                  (|isDomain| PI (|Positive| |Integer|))
+                  (|isDomain| F (|Float|)))
+              (|text| . "\\menuitemstyle{}\\tab{2} ")
+              (|text| . "Coefficients of {\\it a(la)}: ")
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "2.53213" |a1| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "1.13032" |a2| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.27150" |a3| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.04434" |a4| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.00547" |a5| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.00054" |a6| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.00004" |a7| F))
+              (|text| . "\\blankline")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02ahfGen|)
+        (|htpSetProperty| |page| '|n| |n|)
+        (|htpSetProperty| |page| '|la| |la|)
+        (|htpSetProperty| |page| '|ladif| |ladif|)
+        (|htpSetProperty| |page| '|xmin| |xmin|)
+        (|htpSetProperty| |page| '|xmax| |xmax|)
+        (|htpSetProperty| |page| '|iaone| |iaone|)
+        (|htpSetProperty| |page| '|ladifone| |ladifone|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02ahfGen htPage ==
+;  n := htpProperty(htPage,'n)
+;  la := htpProperty(htPage,'la)
+;  ladif := htpProperty(htPage,'ladif)
+;  xmin := htpProperty(htPage,'xmin)
+;  xmax := htpProperty(htPage,'xmax)
+;  iaone := htpProperty(htPage,'iaone)
+;  ladifone := htpProperty(htPage,'ladifone)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  np1 := n + 1
+;  y := alist
+;  while y repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    arrayList := [right,:arrayList]
+;  astring := bcwords2liststring arrayList
+;  prefix := STRCONC('"e02ahf(",STRINGIMAGE np1,", ",xmin,", ",xmax,", [")
+;  prefix := STRCONC(prefix,astring,"], ",STRINGIMAGE iaone,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE la,", ",STRINGIMAGE ladifone,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE ladif,", ",STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02ahfGen| (|htPage|)
+  (PROG (|n| |la| |ladif| |xmin| |xmax| |iaone| |ladifone| |ifail|
+             |alist| |np1| |right| |y| |arrayList| |astring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |n| (|htpProperty| |htPage| '|n|))
+             (SPADLET |la| (|htpProperty| |htPage| '|la|))
+             (SPADLET |ladif| (|htpProperty| |htPage| '|ladif|))
+             (SPADLET |xmin| (|htpProperty| |htPage| '|xmin|))
+             (SPADLET |xmax| (|htpProperty| |htPage| '|xmax|))
+             (SPADLET |iaone| (|htpProperty| |htPage| '|iaone|))
+             (SPADLET |ladifone| (|htpProperty| |htPage| '|ladifone|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |np1| (PLUS |n| 1))
+             (SPADLET |y| |alist|)
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |arrayList|
+                                     (CONS |right| |arrayList|))))))
+             (SPADLET |astring| (|bcwords2liststring| |arrayList|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02ahf(")
+                               (STRINGIMAGE |np1|) '|, | |xmin| '|, |
+                               |xmax| '|, [|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |astring| '|], |
+                               (STRINGIMAGE |iaone|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |la|) '|, |
+                               (STRINGIMAGE |ladifone|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |ladif|) '|, |
+                               (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02ajf() ==
+;  htInitPage('"E02AJF - Integral of fitted polynomial in Chebyshev series form",nil)
+;  htMakePage '(
+;    (domainConditions
+;      (isDomain F (Float))
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02ajf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02ajf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Determines the indefinite integral of the Chebyshev series ")
+;    (text . "representation \newline \center{\htbitmap{e02ahf1}} ")
+;    (text . "of a polynomial, where \htbitmap{xbar} is the normalis")
+;    (text . "ed argument, related to the original variable {\it x} by the ")
+;    (text . "transformation \blankline \center{\htbitmap{e02adf1}}")
+;    (text . ",\htbitmap{xmin} and \htbitmap{xmax} being ")
+;    (text . "minimum and maximum values of {\it x} respectively. The integral")
+;    (text . " polynomial has the form ")
+;    (text . "\blankline \center{\htbitmap{e02ajf}}")
+;    (text . "and the integration is with respect to the original variable ")
+;    (text . "{\it x} \blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Degree of the polynomial {\it n}:")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 6 n PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "\newline \htbitmap{xmin}: ")
+;    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;    (text . "\htbitmap{xmax}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 "-0.5" xmin F))
+;    (text . "\tab{34} ")
+;    (bcStrings (6 "2.5" xmax F))
+;--    (text . "\blankline ")
+;--    (text . "\newline ")
+;--    (text . "\menuitemstyle{}\tab{2}")
+;--    (text . "\newline Dimension of array {\it a}, {\it la}: ")
+;--    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;--    (text . "Dimension of {\it aint}, {\it laint}: ")
+;--    (text . "\newline\tab{2} ")
+;--    (bcStrings (6 7 la PI))
+;--    (text . "\tab{34} ")
+;--    (bcStrings (6 8 laint PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "\newline Index increment of {\it a}, {\it ia1}: ")
+;    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;    (text . "Increment of {\it aint}, {\it iaint1}: ")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 1 iaone PI))
+;    (text . "\tab{34} ")
+;    (bcStrings (6 1 iaintone PI))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Constant of integration {\it qatm1}: ")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 "0.0" qatmone F))
+;    (text . "\blankline")
+;    (text . "\newline \menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02ajfSolve)
+;  htShowPage()
+
+(DEFUN |e02ajf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02AJF - Integral of fitted polynomial in Chebyshev series form")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| F (|Float|))
+              (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02ajf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02ajf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Determines the indefinite integral of the Chebyshev series ")
+          (|text|
+           . "representation \\newline \\center{\\htbitmap{e02ahf1}} ")
+          (|text|
+           . "of a polynomial, where \\htbitmap{xbar} is the normalis")
+          (|text|
+           . "ed argument, related to the original variable {\\it x} by the ")
+          (|text|
+           . "transformation \\blankline \\center{\\htbitmap{e02adf1}}")
+          (|text| . ",\\htbitmap{xmin} and \\htbitmap{xmax} being ")
+          (|text|
+           . "minimum and maximum values of {\\it x} respectively. The integral")
+          (|text| . " polynomial has the form ")
+          (|text| . "\\blankline \\center{\\htbitmap{e02ajf}}")
+          (|text|
+           . "and the integration is with respect to the original variable ")
+          (|text| . "{\\it x} \\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Degree of the polynomial {\\it n}:")
+          (|text| . "\\newline \\tab{2} ") (|bcStrings| (6 6 |n| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "\\newline \\htbitmap{xmin}: ")
+          (|text| . "\\tab{32} \\menuitemstyle{}\\tab{34}")
+          (|text| . "\\htbitmap{xmax}: ")
+          (|text| . "\\newline\\tab{2} ")
+          (|bcStrings| (6 "-0.5" |xmin| F)) (|text| . "\\tab{34} ")
+          (|bcStrings| (6 "2.5" |xmax| F)) (|text| . "\\blankline ")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text|
+           . "\\newline Index increment of {\\it a}, {\\it ia1}: ")
+          (|text| . "\\tab{32} \\menuitemstyle{}\\tab{34}")
+          (|text| . "Increment of {\\it aint}, {\\it iaint1}: ")
+          (|text| . "\\newline \\tab{2} ")
+          (|bcStrings| (6 1 |iaone| PI)) (|text| . "\\tab{34} ")
+          (|bcStrings| (6 1 |iaintone| PI)) (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Constant of integration {\\it qatm1}: ")
+          (|text| . "\\newline \\tab{2} ")
+          (|bcStrings| (6 "0.0" |qatmone| F)) (|text| . "\\blankline")
+          (|text| . "\\newline \\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02ajfSolve|)
+    (|htShowPage|)))
+
+;e02ajfSolve htPage ==
+;  n :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n)
+;    objValUnwrap htpLabelSpadValue(htPage, 'n)
+;  xmin := htpLabelInputString(htPage,'xmin)
+;  xmax := htpLabelInputString(htPage,'xmax)
+;  iaone :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'iaone)
+;    objValUnwrap htpLabelSpadValue(htPage, 'iaone)
+;  iaintone :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'iaintone)
+;    objValUnwrap htpLabelSpadValue(htPage, 'iaintone)
+;  la := 1+n*iaone
+;--    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'la)
+;--    objValUnwrap htpLabelSpadValue(htPage, 'la)
+;  laint := n*iaintone + 1
+;  qatmone := htpLabelInputString(htPage,'qatmone)
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  (n = '6 and (la ='7 and laint = '7)) =>
+;     e02ajfDefaultSolve(htPage,xmin,xmax,iaone,iaintone,qatmone,ifail)
+;  labelList :=
+;    "append"/[f(i) for i in 1..la] where f(i) ==
+;      prefix := ('"\newline \tab{15} ")
+;      anam := INTERN STRCONC ('"a",STRINGIMAGE i)
+;      [['text,:prefix],['bcStrings,[10, "0.0000", anam, 'F]]]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList]
+;  page := htInitPage("E02AJF - Integral of fitted polynomial in Chebyshev series form",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Coefficients of {\it a(la)}: "
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02ajfGen)
+;  htpSetProperty(page,'n,n)
+;  htpSetProperty(page,'la,la)
+;  htpSetProperty(page,'laint,laint)
+;  htpSetProperty(page,'xmin,xmin)
+;  htpSetProperty(page,'xmax,xmax)
+;  htpSetProperty(page,'iaone,iaone)
+;  htpSetProperty(page,'iaintone,iaintone)
+;  htpSetProperty(page,'qatmone,qatmone)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02ajfSolve,f| (|i|)
+  (PROG (|prefix| |anam|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{15} "))
+           (SPADLET |anam|
+                    (INTERN (STRCONC (MAKESTRING "a")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 10
+                                     (CONS '|0.0000|
+                                      (CONS |anam| (CONS 'F NIL))))
+                                    NIL))
+                             NIL)))))))
+
+(DEFUN |e02ajfSolve| (|htPage|)
+  (PROG (|n| |xmin| |xmax| |iaone| |iaintone| |la| |laint| |qatmone|
+             |error| |ifail| |labelList| |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |n|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|n|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|n|)))))
+             (SPADLET |xmin| (|htpLabelInputString| |htPage| '|xmin|))
+             (SPADLET |xmax| (|htpLabelInputString| |htPage| '|xmax|))
+             (SPADLET |iaone|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|iaone|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|iaone|)))))
+             (SPADLET |iaintone|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|iaintone|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|iaintone|)))))
+             (SPADLET |la| (PLUS 1 (TIMES |n| |iaone|)))
+             (SPADLET |laint| (PLUS (TIMES |n| |iaintone|) 1))
+             (SPADLET |qatmone|
+                      (|htpLabelInputString| |htPage| '|qatmone|))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((AND (BOOT-EQUAL |n| '6) (BOOT-EQUAL |la| '7)
+                     (BOOT-EQUAL |laint| '7))
+                (|e02ajfDefaultSolve| |htPage| |xmin| |xmax| |iaone|
+                    |iaintone| |qatmone| |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G166532)
+                           (SPADLET G166532 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |la|) G166532)
+                               (SEQ (EXIT
+                                     (SETQ G166532
+                                      (APPEND G166532
+                                       (|e02ajfSolve,f| |i|)))))))))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               |labelList|))
+                (SPADLET |page|
+                         (|htInitPage|
+             '|E02AJF - Integral of fitted polynomial in Chebyshev series form|
+                             NIL))
+                (|htSay| (MAKESTRING
+                   "\\menuitemstyle{}\\tab{2} Coefficients of {\\it a(la)}: "))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02ajfGen|)
+                (|htpSetProperty| |page| '|n| |n|)
+                (|htpSetProperty| |page| '|la| |la|)
+                (|htpSetProperty| |page| '|laint| |laint|)
+                (|htpSetProperty| |page| '|xmin| |xmin|)
+                (|htpSetProperty| |page| '|xmax| |xmax|)
+                (|htpSetProperty| |page| '|iaone| |iaone|)
+                (|htpSetProperty| |page| '|iaintone| |iaintone|)
+                (|htpSetProperty| |page| '|qatmone| |qatmone|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02ajfDefaultSolve  (htPage,xmin,xmax,iaone,iaintone,qatmone,ifail) ==
+;  n := '6
+;  la := '7
+;  laint := '8
+;  page := htInitPage('"E02AJF - Integral of fitted polynomial in Chebyshev series form",nil)
+;  htMakePage '(
+;    (domainConditions
+;      (isDomain PI (Positive Integer))
+;       (isDomain F (Float)))
+;    (text . "\menuitemstyle{}\tab{2} ")
+;    (text . "Coefficients of {\it a(la)}: ")
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "2.53213" a1 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "1.13032" a2 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.27150" a3 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.04434" a4 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.00547" a5 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.00054" a6 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.00004" a7 F))
+;    (text . "\blankline"))
+;  htMakeDoneButton('"Continue",'e02ajfGen)
+;  htpSetProperty(page,'n,n)
+;  htpSetProperty(page,'la,la)
+;  htpSetProperty(page,'laint,laint)
+;  htpSetProperty(page,'xmin,xmin)
+;  htpSetProperty(page,'xmax,xmax)
+;  htpSetProperty(page,'iaone,iaone)
+;  htpSetProperty(page,'iaintone,iaintone)
+;  htpSetProperty(page,'qatmone,qatmone)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02ajfDefaultSolve|
+       (|htPage| |xmin| |xmax| |iaone| |iaintone| |qatmone| |ifail|)
+  (PROG (|n| |la| |laint| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |n| '6)
+        (SPADLET |la| '7)
+        (SPADLET |laint| '8)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02AJF - Integral of fitted polynomial in Chebyshev series form")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions|
+                  (|isDomain| PI (|Positive| |Integer|))
+                  (|isDomain| F (|Float|)))
+              (|text| . "\\menuitemstyle{}\\tab{2} ")
+              (|text| . "Coefficients of {\\it a(la)}: ")
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "2.53213" |a1| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "1.13032" |a2| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.27150" |a3| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.04434" |a4| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.00547" |a5| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.00054" |a6| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.00004" |a7| F))
+              (|text| . "\\blankline")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02ajfGen|)
+        (|htpSetProperty| |page| '|n| |n|)
+        (|htpSetProperty| |page| '|la| |la|)
+        (|htpSetProperty| |page| '|laint| |laint|)
+        (|htpSetProperty| |page| '|xmin| |xmin|)
+        (|htpSetProperty| |page| '|xmax| |xmax|)
+        (|htpSetProperty| |page| '|iaone| |iaone|)
+        (|htpSetProperty| |page| '|iaintone| |iaintone|)
+        (|htpSetProperty| |page| '|qatmone| |qatmone|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02ajfGen htPage ==
+;  n := htpProperty(htPage,'n)
+;  la := htpProperty(htPage,'la)
+;  laint := htpProperty(htPage,'laint)
+;  xmin := htpProperty(htPage,'xmin)
+;  xmax := htpProperty(htPage,'xmax)
+;  iaone := htpProperty(htPage,'iaone)
+;  iaintone := htpProperty(htPage,'iaintone)
+;  qatmone := htpProperty(htPage,'qatmone)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  np1 := n + 1
+;  y := alist
+;  while y repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    arrayList := [right,:arrayList]
+;  astring := bcwords2liststring arrayList
+;  prefix := STRCONC('"e02ajf(",STRINGIMAGE np1,", ",xmin,", ",xmax,", [")
+;  prefix := STRCONC(prefix,astring,"], ",STRINGIMAGE iaone,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE la,", ",qatmone,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE iaintone)
+;  prefix := STRCONC(prefix,", ",STRINGIMAGE laint,", ",STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02ajfGen| (|htPage|)
+  (PROG (|n| |la| |laint| |xmin| |xmax| |iaone| |iaintone| |qatmone|
+             |ifail| |alist| |np1| |right| |y| |arrayList| |astring|
+             |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |n| (|htpProperty| |htPage| '|n|))
+             (SPADLET |la| (|htpProperty| |htPage| '|la|))
+             (SPADLET |laint| (|htpProperty| |htPage| '|laint|))
+             (SPADLET |xmin| (|htpProperty| |htPage| '|xmin|))
+             (SPADLET |xmax| (|htpProperty| |htPage| '|xmax|))
+             (SPADLET |iaone| (|htpProperty| |htPage| '|iaone|))
+             (SPADLET |iaintone| (|htpProperty| |htPage| '|iaintone|))
+             (SPADLET |qatmone| (|htpProperty| |htPage| '|qatmone|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |np1| (PLUS |n| 1))
+             (SPADLET |y| |alist|)
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |arrayList|
+                                     (CONS |right| |arrayList|))))))
+             (SPADLET |astring| (|bcwords2liststring| |arrayList|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02ajf(")
+                               (STRINGIMAGE |np1|) '|, | |xmin| '|, |
+                               |xmax| '|, [|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |astring| '|], |
+                               (STRINGIMAGE |iaone|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |la|) '|, |
+                               |qatmone| '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |iaintone|)))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| '|, | (STRINGIMAGE |laint|)
+                               '|, | (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02akf() ==
+;  htInitPage('"E02AKF - Evaluation of fitted polynomial in one variable, from Chebyshev series form",nil)
+;  htMakePage '(
+;    (domainConditions
+;      (isDomain F (Float))
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02akf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02akf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Evaluates at the point x the Chebyshev series representation ")
+;    (text . "representation \newline \center{\htbitmap{e02ahf1}} ")
+;    (text . "of a polynomial, where \htbitmap{xbar} is the normalis")
+;    (text . "ed argument, related to the original variable {\it x} by the ")
+;    (text . "transformation \blankline \center{\htbitmap{e02adf1}}")
+;    (text . ",\htbitmap{xmin} and \htbitmap{xmax} being ")
+;    (text . "minimum and maximum values of {\it x} respectively. ")
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Degree of the polynomial {\it n}:")
+;    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;    (text . "Evaluation point {\it x}: ")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 6 n PI))
+;    (text . "\tab{34} ")
+;    (bcStrings (6 "-0.5" x F))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "\newline \htbitmap{xmin}: ")
+;    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;    (text . "\htbitmap{xmax}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 "-0.5" xmin F))
+;    (text . "\tab{34} ")
+;    (bcStrings (6 "2.5" xmax F))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;--    (text . "\newline Dimension of array {\it a}, {\it la} : ")
+;--    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;    (text . "Index increment of {\it a}, {\it ia1}: ")
+;    (text . "\newline\tab{2} ")
+;--    (bcStrings (6 7 la PI))
+;--    (text . "\tab{34} ")
+;    (bcStrings (6 1 iaone PI))
+;    (text . "\blankline")
+;    (text . "\newline \menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02akfSolve)
+;  htShowPage()
+
+(DEFUN |e02akf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02AKF - Evaluation of fitted polynomial in one variable, from Chebyshev series form")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| F (|Float|))
+              (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02akf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02akf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Evaluates at the point x the Chebyshev series representation ")
+          (|text|
+           . "representation \\newline \\center{\\htbitmap{e02ahf1}} ")
+          (|text|
+           . "of a polynomial, where \\htbitmap{xbar} is the normalis")
+          (|text|
+           . "ed argument, related to the original variable {\\it x} by the ")
+          (|text|
+           . "transformation \\blankline \\center{\\htbitmap{e02adf1}}")
+          (|text| . ",\\htbitmap{xmin} and \\htbitmap{xmax} being ")
+          (|text|
+           . "minimum and maximum values of {\\it x} respectively. ")
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Degree of the polynomial {\\it n}:")
+          (|text| . "\\tab{32} \\menuitemstyle{}\\tab{34}")
+          (|text| . "Evaluation point {\\it x}: ")
+          (|text| . "\\newline \\tab{2} ") (|bcStrings| (6 6 |n| PI))
+          (|text| . "\\tab{34} ") (|bcStrings| (6 "-0.5" |x| F))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "\\newline \\htbitmap{xmin}: ")
+          (|text| . "\\tab{32} \\menuitemstyle{}\\tab{34}")
+          (|text| . "\\htbitmap{xmax}: ")
+          (|text| . "\\newline\\tab{2} ")
+          (|bcStrings| (6 "-0.5" |xmin| F)) (|text| . "\\tab{34} ")
+          (|bcStrings| (6 "2.5" |xmax| F)) (|text| . "\\blankline ")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "Index increment of {\\it a}, {\\it ia1}: ")
+          (|text| . "\\newline\\tab{2} ")
+          (|bcStrings| (6 1 |iaone| PI)) (|text| . "\\blankline")
+          (|text| . "\\newline \\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02akfSolve|)
+    (|htShowPage|)))
+
+;e02akfSolve htPage ==
+;  n :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n)
+;    objValUnwrap htpLabelSpadValue(htPage, 'n)
+;  x := htpLabelInputString(htPage,'x)
+;  xmin := htpLabelInputString(htPage,'xmin)
+;  xmax := htpLabelInputString(htPage,'xmax)
+;  iaone :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'iaone)
+;    objValUnwrap htpLabelSpadValue(htPage, 'iaone)
+;  la := 1+n*iaone
+;--    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'la)
+;--    objValUnwrap htpLabelSpadValue(htPage, 'la)
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  (n = '6 and la ='7) =>  e02akfDefaultSolve(htPage,xmin,xmax,x,iaone,ifail)
+;  labelList :=
+;    "append"/[f(i) for i in 1..la] where f(i) ==
+;      prefix := ('"\newline \tab{15} ")
+;      anam := INTERN STRCONC ('"a",STRINGIMAGE i)
+;      [['text,:prefix],['bcStrings,[10, "0.0000", anam, 'F]]]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList]
+;  page := htInitPage("E02AKF - Evaluation of fitted polynomial in one variable, from Chebyshev series form",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Coefficients of {\it a(la)}:"
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02akfGen)
+;  htpSetProperty(page,'n,n)
+;  htpSetProperty(page,'x,x)
+;  htpSetProperty(page,'la,la)
+;  htpSetProperty(page,'xmin,xmin)
+;  htpSetProperty(page,'xmax,xmax)
+;  htpSetProperty(page,'iaone,iaone)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02akfSolve,f| (|i|)
+  (PROG (|prefix| |anam|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{15} "))
+           (SPADLET |anam|
+                    (INTERN (STRCONC (MAKESTRING "a")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 10
+                                     (CONS '|0.0000|
+                                      (CONS |anam| (CONS 'F NIL))))
+                                    NIL))
+                             NIL)))))))
+
+(DEFUN |e02akfSolve| (|htPage|)
+  (PROG (|n| |x| |xmin| |xmax| |iaone| |la| |error| |ifail| |labelList|
+             |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |n|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|n|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|n|)))))
+             (SPADLET |x| (|htpLabelInputString| |htPage| '|x|))
+             (SPADLET |xmin| (|htpLabelInputString| |htPage| '|xmin|))
+             (SPADLET |xmax| (|htpLabelInputString| |htPage| '|xmax|))
+             (SPADLET |iaone|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|iaone|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|iaone|)))))
+             (SPADLET |la| (PLUS 1 (TIMES |n| |iaone|)))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((AND (BOOT-EQUAL |n| '6) (BOOT-EQUAL |la| '7))
+                (|e02akfDefaultSolve| |htPage| |xmin| |xmax| |x|
+                    |iaone| |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G166615)
+                           (SPADLET G166615 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |la|) G166615)
+                               (SEQ (EXIT
+                                     (SETQ G166615
+                                      (APPEND G166615
+                                       (|e02akfSolve,f| |i|)))))))))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               |labelList|))
+                (SPADLET |page|
+                         (|htInitPage|
+                             '|E02AKF - Evaluation of fitted polynomial in one variable, from Chebyshev series form|
+                             NIL))
+                (|htSay| (MAKESTRING
+                             "\\menuitemstyle{}\\tab{2} Coefficients of {\\it a(la)}:"))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02akfGen|)
+                (|htpSetProperty| |page| '|n| |n|)
+                (|htpSetProperty| |page| '|x| |x|)
+                (|htpSetProperty| |page| '|la| |la|)
+                (|htpSetProperty| |page| '|xmin| |xmin|)
+                (|htpSetProperty| |page| '|xmax| |xmax|)
+                (|htpSetProperty| |page| '|iaone| |iaone|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02akfDefaultSolve  (htPage,xmin,xmax,x,iaone,ifail) ==
+;  n := '6
+;  la := '7
+;  page := htInitPage('"E02AKF - Evaluation of fitted polynomial in one variable, from Chebyshev series form",nil)
+;  htMakePage '(
+;    (domainConditions
+;      (isDomain PI (Positive Integer))
+;       (isDomain F (Float)))
+;    (text . "\menuitemstyle{}\tab{2} ")
+;    (text . "Coefficients of {\it a(la)}: ")
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "2.53213" a1 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "1.13032" a2 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.27150" a3 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.04434" a4 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.00547" a5 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.00054" a6 F))
+;    (text . "\newline \tab{15}")
+;    (bcStrings (10 "0.00004" a7 F))
+;    (text . "\blankline"))
+;  htMakeDoneButton('"Continue",'e02akfGen)
+;  htpSetProperty(page,'n,n)
+;  htpSetProperty(page,'la,la)
+;  htpSetProperty(page,'x,x)
+;  htpSetProperty(page,'xmin,xmin)
+;  htpSetProperty(page,'xmax,xmax)
+;  htpSetProperty(page,'iaone,iaone)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02akfDefaultSolve|
+       (|htPage| |xmin| |xmax| |x| |iaone| |ifail|)
+  (PROG (|n| |la| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |n| '6)
+        (SPADLET |la| '7)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02AKF - Evaluation of fitted polynomial in one variable, from Chebyshev series form")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions|
+                  (|isDomain| PI (|Positive| |Integer|))
+                  (|isDomain| F (|Float|)))
+              (|text| . "\\menuitemstyle{}\\tab{2} ")
+              (|text| . "Coefficients of {\\it a(la)}: ")
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "2.53213" |a1| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "1.13032" |a2| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.27150" |a3| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.04434" |a4| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.00547" |a5| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.00054" |a6| F))
+              (|text| . "\\newline \\tab{15}")
+              (|bcStrings| (10 "0.00004" |a7| F))
+              (|text| . "\\blankline")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02akfGen|)
+        (|htpSetProperty| |page| '|n| |n|)
+        (|htpSetProperty| |page| '|la| |la|)
+        (|htpSetProperty| |page| '|x| |x|)
+        (|htpSetProperty| |page| '|xmin| |xmin|)
+        (|htpSetProperty| |page| '|xmax| |xmax|)
+        (|htpSetProperty| |page| '|iaone| |iaone|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02akfGen htPage ==
+;  n := htpProperty(htPage,'n)
+;  x := htpProperty(htPage,'x)
+;  la := htpProperty(htPage,'la)
+;  xmin := htpProperty(htPage,'xmin)
+;  xmax := htpProperty(htPage,'xmax)
+;  iaone := htpProperty(htPage,'iaone)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  np1 := n + 1
+;  y := alist
+;  while y repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    arrayList := [right,:arrayList]
+;  astring := bcwords2liststring arrayList
+;  prefix := STRCONC('"e02akf(",STRINGIMAGE np1,", ",xmin,", ",xmax,", [")
+;  prefix := STRCONC(prefix,astring,"], ",STRINGIMAGE iaone,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE la,", ",x,", ",STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02akfGen| (|htPage|)
+  (PROG (|n| |x| |la| |xmin| |xmax| |iaone| |ifail| |alist| |np1|
+             |right| |y| |arrayList| |astring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |n| (|htpProperty| |htPage| '|n|))
+             (SPADLET |x| (|htpProperty| |htPage| '|x|))
+             (SPADLET |la| (|htpProperty| |htPage| '|la|))
+             (SPADLET |xmin| (|htpProperty| |htPage| '|xmin|))
+             (SPADLET |xmax| (|htpProperty| |htPage| '|xmax|))
+             (SPADLET |iaone| (|htpProperty| |htPage| '|iaone|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |np1| (PLUS |n| 1))
+             (SPADLET |y| |alist|)
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |arrayList|
+                                     (CONS |right| |arrayList|))))))
+             (SPADLET |astring| (|bcwords2liststring| |arrayList|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02akf(")
+                               (STRINGIMAGE |np1|) '|, | |xmin| '|, |
+                               |xmax| '|, [|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |astring| '|], |
+                               (STRINGIMAGE |iaone|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |la|) '|, | |x|
+                               '|, | (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02baf() ==
+;  htInitPage('"E02BAF - Least-squares curve cubic spine fit",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02baf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02baf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Determines a least-squares cubic spline approximation to the ")
+;    (text . "set of points {\it (}\htbitmap{xr},")
+;    (text . "\htbitmap{yr}{\it )} with weights ")
+;    (text . "\htbitmap{wr}, for r = 1,2,...,m. ")
+;    (text . "The knots \htbitmap{lamdai}, for i = 1,2,...,")
+;    (text . "\htbitmap{ncap}+7, are prescribed by the user. The ")
+;    (text . "spline is given by the B-spline representation \blankline ")
+;    (text . "\center{\htbitmap{e02baf}} where ")
+;    (text . "\htbitmap{ncap} is the number of intervals of the ")
+;    (text . "spline. \blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of data points {\it m}:")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 14 m PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "Number of intervals in the spline \htbitmap{ncap}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 5 ncap PI))
+;    (text . "\blankline")
+;    (text . "\newline")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02bafSolve)
+;  htShowPage()
+
+(DEFUN |e02baf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING "E02BAF - Least-squares curve cubic spine fit")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02baf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02baf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Determines a least-squares cubic spline approximation to the ")
+          (|text| . "set of points {\\it (}\\htbitmap{xr},")
+          (|text| . "\\htbitmap{yr}{\\it )} with weights ")
+          (|text| . "\\htbitmap{wr}, for r = 1,2,...,m. ")
+          (|text| . "The knots \\htbitmap{lamdai}, for i = 1,2,...,")
+          (|text|
+           . "\\htbitmap{ncap}+7, are prescribed by the user. The ")
+          (|text|
+           . "spline is given by the B-spline representation \\blankline ")
+          (|text| . "\\center{\\htbitmap{e02baf}} where ")
+          (|text|
+           . "\\htbitmap{ncap} is the number of intervals of the ")
+          (|text| . "spline. \\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Number of data points {\\it m}:")
+          (|text| . "\\newline \\tab{2} ") (|bcStrings| (6 14 |m| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text|
+           . "Number of intervals in the spline \\htbitmap{ncap}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 5 |ncap| PI))
+          (|text| . "\\blankline") (|text| . "\\newline")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02bafSolve|)
+    (|htShowPage|)))
+
+;e02bafSolve htPage ==
+;  m :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
+;    objValUnwrap htpLabelSpadValue(htPage, 'm)
+;  ncap :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ncap)
+;    objValUnwrap htpLabelSpadValue(htPage, 'ncap)
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  (m = '14 and ncap ='5) => e02bafDefaultSolve(htPage,ifail)
+;  labelList :=
+;    "append"/[f(i) for i in 1..m] where f(i) ==
+;      prefix := ('"\newline \tab{2} ")
+;      middle := ('"\tab{22} ")
+;      post   := ('" \tab{42} ")
+;      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
+;      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
+;      znam := INTERN STRCONC ('"z",STRINGIMAGE i)
+;      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
+;      [['text,:prefix],['bcStrings,[10, num, xnam, 'F]],
+;       ['text,:middle],['bcStrings,[10, 0.0, ynam, 'F]],
+;        ['text,:post],['bcStrings,[10, 0.0, znam, 'F]]]
+;  lamdaList :=
+;    "append"/[g(j) for j in 5..(ncap+3)] where g(j) ==
+;       anam := INTERN STRCONC ('"a",STRINGIMAGE j)
+;       [['bcStrings,[6, 0.0, anam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{}\tab{2} Interior knots ")
+;  prefix := STRCONC(prefix,"\htbitmap{lamdai}, for i = 5,6,...,")
+;  prefix := STRCONC(prefix,"\htbitmap{ncap} + 3: \newline \tab{2}" )
+;  lamdaList := [['text,:prefix],:lamdaList]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList,:lamdaList]
+;  page := htInitPage("E02BAF - Least-squares curve cubic spline fit",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Values of \space{1} "
+;  htSay '"\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} "
+;  htSay '"Values of \space{1} \htbitmap{fr}: \tab{40}"
+;  htSay '"\menuitemstyle{}\tab{42} Values of \space{1} "
+;  htSay '"\htbitmap{dr}: "
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02bafGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'ncap,ncap)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02bafSolve,f| (|i|)
+  (PROG (|prefix| |middle| |post| |xnam| |ynam| |znam| |num|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |middle| (MAKESTRING "\\tab{22} "))
+           (SPADLET |post| (MAKESTRING " \\tab{42} "))
+           (SPADLET |xnam|
+                    (INTERN (STRCONC (MAKESTRING "x")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |ynam|
+                    (INTERN (STRCONC (MAKESTRING "y")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |znam|
+                    (INTERN (STRCONC (MAKESTRING "z")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |num|
+                    (INTERN (STRCONC (STRINGIMAGE (QUOTIENT |i| 10))
+                                     (INTERN "." "BOOT")
+                                     (STRINGIMAGE (REM |i| 10)))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 10
+                                     (CONS |num|
+                                      (CONS |xnam| (CONS 'F NIL))))
+                                    NIL))
+                             (CONS (CONS '|text| |middle|)
+                                   (CONS
+                                    (CONS '|bcStrings|
+                                     (CONS
+                                      (CONS 10
+                                       (CONS 0.0
+                                        (CONS |ynam| (CONS 'F NIL))))
+                                      NIL))
+                                    (CONS (CONS '|text| |post|)
+                                     (CONS
+                                      (CONS '|bcStrings|
+                                       (CONS
+                                        (CONS 10
+                                         (CONS 0.0
+                                          (CONS |znam| (CONS 'F NIL))))
+                                        NIL))
+                                      NIL)))))))))))
+
+(DEFUN |e02bafSolve,g| (|j|)
+  (PROG (|anam|)
+    (RETURN
+      (SEQ (SPADLET |anam|
+                    (INTERN (STRCONC (MAKESTRING "a")
+                                     (STRINGIMAGE |j|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 6
+                                    (CONS 0.0
+                                     (CONS |anam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02bafSolve| (|htPage|)
+  (PROG (|m| |ncap| |error| |ifail| |labelList| |prefix| |lamdaList|
+             |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|m|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|m|)))))
+             (SPADLET |ncap|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|ncap|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|ncap|)))))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((AND (BOOT-EQUAL |m| '14) (BOOT-EQUAL |ncap| '5))
+                (|e02bafDefaultSolve| |htPage| |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G166702)
+                           (SPADLET G166702 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |m|) G166702)
+                               (SEQ (EXIT
+                                     (SETQ G166702
+                                      (APPEND G166702
+                                       (|e02bafSolve,f| |i|)))))))))
+                (SPADLET |lamdaList|
+                         (PROG (G166710)
+                           (SPADLET G166710 NIL)
+                           (RETURN
+                             (DO ((G166715 (PLUS |ncap| 3))
+                                  (|j| 5 (+ |j| 1)))
+                                 ((> |j| G166715) G166710)
+                               (SEQ (EXIT
+                                     (SETQ G166710
+                                      (APPEND G166710
+                                       (|e02bafSolve,g| |j|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                      "\\blankline \\menuitemstyle{}\\tab{2} Interior knots "))
+                (SPADLET |prefix|
+                         (STRCONC |prefix|
+                                  '|\\htbitmap{lamdai}, for i = 5,6,...,|))
+                (SPADLET |prefix|
+                         (STRCONC |prefix|
+                                  '|\\htbitmap{ncap} + 3: \\newline \\tab{2}|))
+                (SPADLET |lamdaList|
+                         (CONS (CONS '|text| |prefix|) |lamdaList|))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               (APPEND |labelList| |lamdaList|)))
+                (SPADLET |page|
+                         (|htInitPage|
+                             '|E02BAF - Least-squares curve cubic spline fit|
+                             NIL))
+                (|htSay| (MAKESTRING
+                             "\\menuitemstyle{}\\tab{2} Values of \\space{1} "))
+                (|htSay| (MAKESTRING
+                             "\\htbitmap{xr}: \\tab{20} \\menuitemstyle{}\\tab{22} "))
+                (|htSay| (MAKESTRING
+                             "Values of \\space{1} \\htbitmap{fr}: \\tab{40}"))
+                (|htSay| (MAKESTRING
+                           "\\menuitemstyle{}\\tab{42} Values of \\space{1} "))
+                (|htSay| (MAKESTRING "\\htbitmap{dr}: "))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02bafGen|)
+                (|htpSetProperty| |page| '|m| |m|)
+                (|htpSetProperty| |page| '|ncap| |ncap|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02bafDefaultSolve (htPage,ifail) ==
+;  m := '14
+;  ncap := '5
+;  page := htInitPage('"E02BAF - Least-squares curve cubic spline fit",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\menuitemstyle{}\tab{2} Values of \space{1} ")
+;    (text . "\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} ")
+;    (text . "Values of \space{1} \htbitmap{yr}: \tab{40} ")
+;    (text . "\menuitemstyle{}\tab{42} Values of \space{1} ")
+;    (text . "\htbitmap{wr}: ")
+;    (text . "\newline \tab{2}")
+;    (bcStrings (10 "0.20" x1 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.00" y1 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.20" z1 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.47" x2 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "2.00" y2 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.20" z2 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.74" x3 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "4.00" y3 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.30" z3 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "1.09" x4 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "6.00" y4 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.70" z4 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "1.60" x5 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "8.00" y5 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.90" z5 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "1.90" x6 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "8.62" y6 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z6 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "2.60" x7 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "9.10" y7 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z7 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "3.10" x8 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "8.90" y8 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z8 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "4.00" x9 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "8.15" y9 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.80" z9 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "5.15" x10 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "7.00" y10 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.50" z10 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "6.17" x11 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "6.00" y11 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.70" z11 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "8.00" x12 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "4.54" y12 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z12 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "10.00" x13 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "3.39" y13 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z13 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "12.00" x14 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "2.56" y14 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z14 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "Interior knots \htbitmap{lamdai}, for i = 5,6,...")
+;    (text . "\htbitmap{ncap} + 3: \newline \tab{2}")
+;    (bcStrings (6 "1.50" l1 F))
+;    (bcStrings (6 "2.60" l2 F))
+;    (bcStrings (6 "4.00" l3 F))
+;    (bcStrings (6 "8.00" l4 F))
+;    (text . "\blankline"))
+;  htMakeDoneButton('"Continue",'e02bafGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'ncap,ncap)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02bafDefaultSolve| (|htPage| |ifail|)
+  (PROG (|m| |ncap| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |m| '14)
+        (SPADLET |ncap| '5)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02BAF - Least-squares curve cubic spline fit")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of \\space{1} ")
+              (|text|
+               . "\\htbitmap{xr}: \\tab{20} \\menuitemstyle{}\\tab{22} ")
+              (|text|
+               . "Values of \\space{1} \\htbitmap{yr}: \\tab{40} ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{42} Values of \\space{1} ")
+              (|text| . "\\htbitmap{wr}: ")
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (10 "0.20" |x1| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.00" |y1| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "0.20" |z1| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.47" |x2| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "2.00" |y2| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "0.20" |z2| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.74" |x3| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "4.00" |y3| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "0.30" |z3| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "1.09" |x4| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "6.00" |y4| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "0.70" |z4| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "1.60" |x5| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "8.00" |y5| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "0.90" |z5| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "1.90" |x6| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "8.62" |y6| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z6| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "2.60" |x7| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "9.10" |y7| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z7| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "3.10" |x8| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "8.90" |y8| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z8| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "4.00" |x9| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "8.15" |y9| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "0.80" |z9| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "5.15" |x10| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "7.00" |y10| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "0.50" |z10| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "6.17" |x11| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "6.00" |y11| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "0.70" |z11| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "8.00" |x12| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "4.54" |y12| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z12| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "10.00" |x13| F))
+              (|text| . "\\tab{22} ") (|bcStrings| (10 "3.39" |y13| F))
+              (|text| . "\\tab{42} ") (|bcStrings| (10 "1.00" |z13| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "12.00" |x14| F))
+              (|text| . "\\tab{22} ") (|bcStrings| (10 "2.56" |y14| F))
+              (|text| . "\\tab{42} ") (|bcStrings| (10 "1.00" |z14| F))
+              (|text| . "\\blankline ")
+              (|text| . "\\menuitemstyle{} \\tab{2} ")
+              (|text|
+               . "Interior knots \\htbitmap{lamdai}, for i = 5,6,...")
+              (|text| . "\\htbitmap{ncap} + 3: \\newline \\tab{2}")
+              (|bcStrings| (6 "1.50" |l1| F))
+              (|bcStrings| (6 "2.60" |l2| F))
+              (|bcStrings| (6 "4.00" |l3| F))
+              (|bcStrings| (6 "8.00" |l4| F)) (|text| . "\\blankline")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02bafGen|)
+        (|htpSetProperty| |page| '|m| |m|)
+        (|htpSetProperty| |page| '|ncap| |ncap|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02bafGen htPage ==
+;  m := htpProperty(htPage,'m)
+;  ncap := htpProperty(htPage,'ncap)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  ncap7 := ncap + 7
+;  y := alist
+;  for i in (ncap+4)..(ncap+7) repeat
+;    lambda := STRCONC( "0.0"," ")
+;    lambdaList := [lambda,:lambdaList]
+;  for i in 5..(ncap+3) repeat
+;    lambda := STRCONC ((first y).1," ")
+;    y := rest y
+;    lambdaList := [lambda,:lambdaList]
+;  for i in 1..4 repeat
+;    lambda := STRCONC( "0.0"," ")
+;    lambdaList := [lambda,:lambdaList]
+;  lambdaString := bcwords2liststring lambdaList
+;  while y repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    mid :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    left :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    xlist := [left,:xlist]
+;    ylist := [mid,:ylist]
+;    wlist := [right,:wlist]
+;  xstring := bcwords2liststring xlist
+;  ystring := bcwords2liststring ylist
+;  wstring := bcwords2liststring wlist
+;  prefix := STRCONC('"e02baf(",STRINGIMAGE m,", ",STRINGIMAGE ncap7,", [")
+;  prefix := STRCONC(prefix,xstring,"],[",ystring,"],[",wstring,"], [")
+;  prefix := STRCONC(prefix,lambdaString,"], ",STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02bafGen| (|htPage|)
+  (PROG (|m| |ncap| |ifail| |alist| |ncap7| |lambda| |lambdaList|
+             |lambdaString| |right| |mid| |left| |y| |xlist| |ylist|
+             |wlist| |xstring| |ystring| |wstring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m| (|htpProperty| |htPage| '|m|))
+             (SPADLET |ncap| (|htpProperty| |htPage| '|ncap|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |ncap7| (PLUS |ncap| 7))
+             (SPADLET |y| |alist|)
+             (DO ((G166753 (PLUS |ncap| 7))
+                  (|i| (PLUS |ncap| 4) (+ |i| 1)))
+                 ((> |i| G166753) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |lambda| (STRCONC '|0.0| '| |))
+                            (SPADLET |lambdaList|
+                                     (CONS |lambda| |lambdaList|))))))
+             (DO ((G166763 (PLUS |ncap| 3)) (|i| 5 (+ |i| 1)))
+                 ((> |i| G166763) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |lambda|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |lambdaList|
+                                     (CONS |lambda| |lambdaList|))))))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| 4) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |lambda| (STRCONC '|0.0| '| |))
+                            (SPADLET |lambdaList|
+                                     (CONS |lambda| |lambdaList|))))))
+             (SPADLET |lambdaString|
+                      (|bcwords2liststring| |lambdaList|))
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |mid|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |left|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |xlist| (CONS |left| |xlist|))
+                            (SPADLET |ylist| (CONS |mid| |ylist|))
+                            (SPADLET |wlist| (CONS |right| |wlist|))))))
+             (SPADLET |xstring| (|bcwords2liststring| |xlist|))
+             (SPADLET |ystring| (|bcwords2liststring| |ylist|))
+             (SPADLET |wstring| (|bcwords2liststring| |wlist|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02baf(") (STRINGIMAGE |m|)
+                               '|, | (STRINGIMAGE |ncap7|) '|, [|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |xstring| '|],[| |ystring|
+                               '|],[| |wstring| '|], [|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |lambdaString| '|], |
+                               (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02bbf() ==
+;  htInitPage('"E02BBF - Evaluation of fitted cubic spline, function only",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02bbf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02bbf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Evaluates at the point {\it x} a cubic spline from its B-spline ")
+;    (text . "B-spline representation ")
+;    (text . "\center{\htbitmap{e02baf}} where ")
+;    (text . "\htbitmap{ncap} is the number of intervals of the ")
+;    (text . "spline. The spline has knots \htbitmap{lamdai}, for ")
+;    (text . "i = 1,2,...,\htbitmap{ncap} + 7. \blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of intervals in the spline \htbitmap{ncap}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 4 ncap PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "Evaluation point {\it x}:")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 "2.0" x F))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02bbfSolve)
+;  htShowPage()
+
+(DEFUN |e02bbf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02BBF - Evaluation of fitted cubic spline, function only")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02bbf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02bbf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Evaluates at the point {\\it x} a cubic spline from its B-spline ")
+          (|text| . "B-spline representation ")
+          (|text| . "\\center{\\htbitmap{e02baf}} where ")
+          (|text|
+           . "\\htbitmap{ncap} is the number of intervals of the ")
+          (|text|
+           . "spline. The spline has knots \\htbitmap{lamdai}, for ")
+          (|text| . "i = 1,2,...,\\htbitmap{ncap} + 7. \\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text|
+           . "Number of intervals in the spline \\htbitmap{ncap}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 4 |ncap| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "Evaluation point {\\it x}:")
+          (|text| . "\\newline \\tab{2} ")
+          (|bcStrings| (6 "2.0" |x| F)) (|text| . "\\blankline ")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02bbfSolve|)
+    (|htShowPage|)))
+
+;e02bbfSolve htPage ==
+;  ncap :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ncap)
+;    objValUnwrap htpLabelSpadValue(htPage, 'ncap)
+;  x := htpLabelInputString(htPage,'x)
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  ncap = '4  => e02bbfDefaultSolve(htPage,x,ifail)
+;  labelList :=
+;    "append"/[f(i) for i in 1..(ncap+7)] where f(i) ==
+;      prefix := ('"\newline \tab{2} ")
+;      middle := ('"\tab{22} ")
+;      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
+;      cnam := INTERN STRCONC ('"c",STRINGIMAGE i)
+;      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
+;      [['text,:prefix],['bcStrings,[10, num, lnam, 'F]],
+;       ['text,:middle],['bcStrings,[10, 0.0, cnam, 'F]]]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList]
+;  page := htInitPage("E02BBF - Evaluation of fitted cubic spline, function only",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Knots \htbitmap{lamdai}: "
+;  htSay '"\tab{20} \menuitemstyle{}\tab{22} "
+;  htSay '"Coefficients \space{1} \htbitmap{ci}: "
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02bbfGen)
+;  htpSetProperty(page,'ncap,ncap)
+;  htpSetProperty(page,'x,x)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02bbfSolve,f| (|i|)
+  (PROG (|prefix| |middle| |lnam| |cnam| |num|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |middle| (MAKESTRING "\\tab{22} "))
+           (SPADLET |lnam|
+                    (INTERN (STRCONC (MAKESTRING "l")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |cnam|
+                    (INTERN (STRCONC (MAKESTRING "c")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |num|
+                    (INTERN (STRCONC (STRINGIMAGE (QUOTIENT |i| 10))
+                                     (INTERN "." "BOOT")
+                                     (STRINGIMAGE (REM |i| 10)))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 10
+                                     (CONS |num|
+                                      (CONS |lnam| (CONS 'F NIL))))
+                                    NIL))
+                             (CONS (CONS '|text| |middle|)
+                                   (CONS
+                                    (CONS '|bcStrings|
+                                     (CONS
+                                      (CONS 10
+                                       (CONS 0.0
+                                        (CONS |cnam| (CONS 'F NIL))))
+                                      NIL))
+                                    NIL)))))))))
+
+(DEFUN |e02bbfSolve| (|htPage|)
+  (PROG (|ncap| |x| |error| |ifail| |labelList| |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |ncap|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|ncap|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|ncap|)))))
+             (SPADLET |x| (|htpLabelInputString| |htPage| '|x|))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((BOOT-EQUAL |ncap| '4)
+                (|e02bbfDefaultSolve| |htPage| |x| |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G166839)
+                           (SPADLET G166839 NIL)
+                           (RETURN
+                             (DO ((G166844 (PLUS |ncap| 7))
+                                  (|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| G166844) G166839)
+                               (SEQ (EXIT
+                                     (SETQ G166839
+                                      (APPEND G166839
+                                       (|e02bbfSolve,f| |i|)))))))))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               |labelList|))
+                (SPADLET |page|
+                         (|htInitPage|
+                   '|E02BBF - Evaluation of fitted cubic spline, function only|
+                             NIL))
+                (|htSay| (MAKESTRING
+                       "\\menuitemstyle{}\\tab{2} Knots \\htbitmap{lamdai}: "))
+                (|htSay| (MAKESTRING
+                             "\\tab{20} \\menuitemstyle{}\\tab{22} "))
+                (|htSay| (MAKESTRING
+                             "Coefficients \\space{1} \\htbitmap{ci}: "))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02bbfGen|)
+                (|htpSetProperty| |page| '|ncap| |ncap|)
+                (|htpSetProperty| |page| '|x| |x|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02bbfDefaultSolve (htPage,x,ifail) ==
+;  ncap := '4
+;  page := htInitPage('"E02BBF - Evaluation of fitted cubic spline, function only",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} Knots \space{1}")
+;    (text . "\htbitmap{lamdai}: \tab{20} \menuitemstyle{}\tab{22} ")
+;    (text . "Coefficients \space{1} \htbitmap{ci}: ")
+;    (text . "\newline \tab{2}")
+;    (bcStrings (10 "1.00" l1 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "1.00" c1 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "1.00" l2 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "2.00" c2 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "1.00" l3 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "4.00" c3 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "1.00" l4 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "7.00" c4 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "3.00" l5 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "6.00" c5 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "6.00" l6 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "4.00" c6 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "8.00" l7 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "3.00" c7 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "9.00" l8 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.00" c8 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "9.00" l9 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.00" c9 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "9.00" l10 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.00" c10 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "9.00" l11 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.00" c11 F))
+;    (text . "\blankline"))
+;  htMakeDoneButton('"Continue",'e02bbfGen)
+;  htpSetProperty(page,'ncap,ncap)
+;  htpSetProperty(page,'x,x)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02bbfDefaultSolve| (|htPage| |x| |ifail|)
+  (PROG (|ncap| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |ncap| '4)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                   "E02BBF - Evaluation of fitted cubic spline, function only")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text| . "\\newline ")
+              (|text| . "\\menuitemstyle{}\\tab{2} Knots \\space{1}")
+              (|text|
+               . "\\htbitmap{lamdai}: \\tab{20} \\menuitemstyle{}\\tab{22} ")
+              (|text| . "Coefficients \\space{1} \\htbitmap{ci}: ")
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (10 "1.00" |l1| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "1.00" |c1| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "1.00" |l2| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "2.00" |c2| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "1.00" |l3| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "4.00" |c3| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "1.00" |l4| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "7.00" |c4| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "3.00" |l5| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "6.00" |c5| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "6.00" |l6| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "4.00" |c6| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "8.00" |l7| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "3.00" |c7| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "9.00" |l8| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.00" |c8| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "9.00" |l9| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.00" |c9| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "9.00" |l10| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.00" |c10| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "9.00" |l11| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.00" |c11| F))
+              (|text| . "\\blankline")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02bbfGen|)
+        (|htpSetProperty| |page| '|ncap| |ncap|)
+        (|htpSetProperty| |page| '|x| |x|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02bbfGen htPage ==
+;  ncap := htpProperty(htPage,'ncap)
+;  x := htpProperty(htPage,'x)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  ncap7 := ncap + 7
+;  y := alist
+;  while y repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    left :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    lamlist := [left,:lamlist]
+;    clist := [right,:clist]
+;  lamstring := bcwords2liststring lamlist
+;  cstring := bcwords2liststring clist
+;  prefix := STRCONC('"e02bbf(",STRINGIMAGE ncap7,", [",lamstring,"],[")
+;  prefix := STRCONC(prefix,cstring,"], ",x,", ",STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02bbfGen| (|htPage|)
+  (PROG (|ncap| |x| |ifail| |alist| |ncap7| |right| |left| |y|
+                |lamlist| |clist| |lamstring| |cstring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |ncap| (|htpProperty| |htPage| '|ncap|))
+             (SPADLET |x| (|htpProperty| |htPage| '|x|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |ncap7| (PLUS |ncap| 7))
+             (SPADLET |y| |alist|)
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |left|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |lamlist| (CONS |left| |lamlist|))
+                            (SPADLET |clist| (CONS |right| |clist|))))))
+             (SPADLET |lamstring| (|bcwords2liststring| |lamlist|))
+             (SPADLET |cstring| (|bcwords2liststring| |clist|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02bbf(")
+                               (STRINGIMAGE |ncap7|) '|, [| |lamstring|
+                               '|],[|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |cstring| '|], | |x| '|, |
+                               (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02bcf() ==
+;  htInitPage('"E02BCF - Evaluation of fitted cubic spline, function and derivatives",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02bcf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02bcf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Evaluates at the point {\it x} a cubic spline and its first ")
+;    (text . "three derivatives from its B-spline representation ")
+;    (text . "\center{\htbitmap{e02baf}} where ")
+;    (text . "\htbitmap{ncap} is the number of intervals of the ")
+;    (text . "spline. The spline has knots \htbitmap{lamdai}, for ")
+;    (text . "i = 1,2,...,\htbitmap{ncap} + 7. \blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of intervals in the spline \htbitmap{ncap}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 7 ncap PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "Evaluation point {\it x}:")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (6 "2.0" x F))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "{\it LEFT} specifies whether LH or RH derivatives are required: ")
+;    (radioButtons deriv
+;        ("" "  Left-hand derivative" left)
+;        ("" "  Right-hand derivative" right))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02bcfSolve)
+;  htShowPage()
+
+(DEFUN |e02bcf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02BCF - Evaluation of fitted cubic spline, function and derivatives")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02bcf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02bcf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Evaluates at the point {\\it x} a cubic spline and its first ")
+          (|text|
+           . "three derivatives from its B-spline representation ")
+          (|text| . "\\center{\\htbitmap{e02baf}} where ")
+          (|text|
+           . "\\htbitmap{ncap} is the number of intervals of the ")
+          (|text|
+           . "spline. The spline has knots \\htbitmap{lamdai}, for ")
+          (|text| . "i = 1,2,...,\\htbitmap{ncap} + 7. \\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text|
+           . "Number of intervals in the spline \\htbitmap{ncap}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 7 |ncap| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "Evaluation point {\\it x}:")
+          (|text| . "\\newline \\tab{2} ")
+          (|bcStrings| (6 "2.0" |x| F)) (|text| . "\\blankline ")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ")
+          (|text|
+         . "{\\it LEFT} specifies whether LH or RH derivatives are required: ")
+          (|radioButtons| |deriv| ("" "  Left-hand derivative" |left|)
+              ("" "  Right-hand derivative" |right|))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02bcfSolve|)
+    (|htShowPage|)))
+
+;e02bcfSolve htPage ==
+;  ncap :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ncap)
+;    objValUnwrap htpLabelSpadValue(htPage, 'ncap)
+;  x := htpLabelInputString(htPage,'x)
+;  temp := htpButtonValue(htPage,'deriv)
+;  deriv :=
+;    temp = 'left => '1
+;    '2
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  ncap = '7  => e02bcfDefaultSolve(htPage,x,deriv,ifail)
+;  labelList :=
+;    "append"/[f(i) for i in 1..(ncap+7)] where f(i) ==
+;      prefix := ('"\newline \tab{2} ")
+;      middle := ('"\tab{22} ")
+;      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
+;      cnam := INTERN STRCONC ('"c",STRINGIMAGE i)
+;      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
+;      [['text,:prefix],['bcStrings,[10, num, lnam, 'F]],
+;       ['text,:middle],['bcStrings,[10, 0.0, cnam, 'F]]]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList]
+;  page := htInitPage("E02BCF - Evaluation of fitted cubic spline, function and derivatives",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Knots \htbitmap{lamdai}: "
+;  htSay '"\tab{20} \menuitemstyle{}\tab{22} "
+;  htSay '"Coefficients \space{1} \htbitmap{ci}: "
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02bcfGen)
+;  htpSetProperty(page,'ncap,ncap)
+;  htpSetProperty(page,'x,x)
+;  htpSetProperty(page,'deriv,deriv)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02bcfSolve,f| (|i|)
+  (PROG (|prefix| |middle| |lnam| |cnam| |num|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |middle| (MAKESTRING "\\tab{22} "))
+           (SPADLET |lnam|
+                    (INTERN (STRCONC (MAKESTRING "l")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |cnam|
+                    (INTERN (STRCONC (MAKESTRING "c")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |num|
+                    (INTERN (STRCONC (STRINGIMAGE (QUOTIENT |i| 10))
+                                     (INTERN "." "BOOT")
+                                     (STRINGIMAGE (REM |i| 10)))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 10
+                                     (CONS |num|
+                                      (CONS |lnam| (CONS 'F NIL))))
+                                    NIL))
+                             (CONS (CONS '|text| |middle|)
+                                   (CONS
+                                    (CONS '|bcStrings|
+                                     (CONS
+                                      (CONS 10
+                                       (CONS 0.0
+                                        (CONS |cnam| (CONS 'F NIL))))
+                                      NIL))
+                                    NIL)))))))))
+
+(DEFUN |e02bcfSolve| (|htPage|)
+  (PROG (|ncap| |x| |temp| |deriv| |error| |ifail| |labelList|
+                |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |ncap|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|ncap|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|ncap|)))))
+             (SPADLET |x| (|htpLabelInputString| |htPage| '|x|))
+             (SPADLET |temp| (|htpButtonValue| |htPage| '|deriv|))
+             (SPADLET |deriv|
+                      (COND ((BOOT-EQUAL |temp| '|left|) '1) ('T '2)))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((BOOT-EQUAL |ncap| '7)
+                (|e02bcfDefaultSolve| |htPage| |x| |deriv| |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G166916)
+                           (SPADLET G166916 NIL)
+                           (RETURN
+                             (DO ((G166921 (PLUS |ncap| 7))
+                                  (|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| G166921) G166916)
+                               (SEQ (EXIT
+                                     (SETQ G166916
+                                      (APPEND G166916
+                                       (|e02bcfSolve,f| |i|)))))))))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               |labelList|))
+                (SPADLET |page|
+                         (|htInitPage|
+        '|E02BCF - Evaluation of fitted cubic spline, function and derivatives|
+                             NIL))
+                (|htSay| (MAKESTRING
+                       "\\menuitemstyle{}\\tab{2} Knots \\htbitmap{lamdai}: "))
+                (|htSay| (MAKESTRING
+                             "\\tab{20} \\menuitemstyle{}\\tab{22} "))
+                (|htSay| (MAKESTRING
+                             "Coefficients \\space{1} \\htbitmap{ci}: "))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02bcfGen|)
+                (|htpSetProperty| |page| '|ncap| |ncap|)
+                (|htpSetProperty| |page| '|x| |x|)
+                (|htpSetProperty| |page| '|deriv| |deriv|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02bcfDefaultSolve (htPage,x,deriv,ifail) ==
+;  ncap := '7
+;  page := htInitPage('"E02BCF - Evaluation of fitted cubic spline, function and derivatives",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\menuitemstyle{}\tab{2} Knots \space{1}")
+;    (text . "\htbitmap{lamdai}: \tab{20} \menuitemstyle{}\tab{22} ")
+;    (text . "Coefficients \space{1} \htbitmap{ci}: ")
+;    (text . "\newline \tab{2}")
+;    (bcStrings (10 "0.0" l1 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "10.00" c1 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.00" l2 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "12.00" c2 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.00" l3 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "13.00" c3 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.00" l4 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "15.00" c4 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "1.00" l5 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "22.00" c5 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "3.00" l6 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "26.00" c6 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "3.00" l7 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "24.00" c7 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "3.00" l8 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "18.00" c8 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "4.00" l9 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "14.00" c9 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "4.00" l10 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "12.00" c10 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "6.00" l11 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.00" c11 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "6.00" l12 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.00" c12 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "6.00" l13 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.00" c13 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "6.00" l14 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.00" c14 F))
+;    (text . "\blankline"))
+;  htMakeDoneButton('"Continue",'e02bcfGen)
+;  htpSetProperty(page,'ncap,ncap)
+;  htpSetProperty(page,'x,x)
+;  htpSetProperty(page,'deriv,deriv)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02bcfDefaultSolve| (|htPage| |x| |deriv| |ifail|)
+  (PROG (|ncap| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |ncap| '7)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02BCF - Evaluation of fitted cubic spline, function and derivatives")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text| . "\\menuitemstyle{}\\tab{2} Knots \\space{1}")
+              (|text|
+               . "\\htbitmap{lamdai}: \\tab{20} \\menuitemstyle{}\\tab{22} ")
+              (|text| . "Coefficients \\space{1} \\htbitmap{ci}: ")
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (10 "0.0" |l1| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "10.00" |c1| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.00" |l2| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "12.00" |c2| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.00" |l3| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "13.00" |c3| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.00" |l4| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "15.00" |c4| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "1.00" |l5| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "22.00" |c5| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "3.00" |l6| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "26.00" |c6| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "3.00" |l7| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "24.00" |c7| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "3.00" |l8| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "18.00" |c8| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "4.00" |l9| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "14.00" |c9| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "4.00" |l10| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "12.00" |c10| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "6.00" |l11| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.00" |c11| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "6.00" |l12| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.00" |c12| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "6.00" |l13| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.00" |c13| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "6.00" |l14| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.00" |c14| F))
+              (|text| . "\\blankline")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02bcfGen|)
+        (|htpSetProperty| |page| '|ncap| |ncap|)
+        (|htpSetProperty| |page| '|x| |x|)
+        (|htpSetProperty| |page| '|deriv| |deriv|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02bcfGen htPage ==
+;  ncap := htpProperty(htPage,'ncap)
+;  x := htpProperty(htPage,'x)
+;  deriv := htpProperty(htPage,'deriv)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  ncap7 := ncap + 7
+;  y := alist
+;  while y repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    left :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    lamlist := [left,:lamlist]
+;    clist := [right,:clist]
+;  lamstring := bcwords2liststring lamlist
+;  cstring := bcwords2liststring clist
+;  prefix := STRCONC('"e02bcf(",STRINGIMAGE ncap7,", [",lamstring,"],[")
+;  prefix := STRCONC(prefix,cstring,"], ",x,", ",STRINGIMAGE deriv)
+;  prefix := STRCONC(prefix,", ",STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02bcfGen| (|htPage|)
+  (PROG (|ncap| |x| |deriv| |ifail| |alist| |ncap7| |right| |left| |y|
+                |lamlist| |clist| |lamstring| |cstring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |ncap| (|htpProperty| |htPage| '|ncap|))
+             (SPADLET |x| (|htpProperty| |htPage| '|x|))
+             (SPADLET |deriv| (|htpProperty| |htPage| '|deriv|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |ncap7| (PLUS |ncap| 7))
+             (SPADLET |y| |alist|)
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |left|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |lamlist| (CONS |left| |lamlist|))
+                            (SPADLET |clist| (CONS |right| |clist|))))))
+             (SPADLET |lamstring| (|bcwords2liststring| |lamlist|))
+             (SPADLET |cstring| (|bcwords2liststring| |clist|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02bcf(")
+                               (STRINGIMAGE |ncap7|) '|, [| |lamstring|
+                               '|],[|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |cstring| '|], | |x| '|, |
+                               (STRINGIMAGE |deriv|)))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| '|, | (STRINGIMAGE |ifail|)
+                               '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02bdf() ==
+;  htInitPage('"E02BDF - Evaluation of fitted cubic spline, definite integral",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02bdf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02bdf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Evaluates the definite integral of a cubic spline from its ")
+;    (text . "B-spline representation \center{\htbitmap{e02baf}} ")
+;    (text . "where \htbitmap{ncap} is the number of intervals of ")
+;    (text . "the spline. The spline has knots \htbitmap{lamdai}, ")
+;    (text . "for i = 1,2,...,\htbitmap{ncap} + 7, and the integral ")
+;    (text . "is evaluated over the range \htbitmap{e02bdf} ")
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of intervals in the spline \htbitmap{ncap}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 7 ncap PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02bdfSolve)
+;  htShowPage()
+
+(DEFUN |e02bdf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02BDF - Evaluation of fitted cubic spline, definite integral")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02bdf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02bdf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Evaluates the definite integral of a cubic spline from its ")
+          (|text|
+           . "B-spline representation \\center{\\htbitmap{e02baf}} ")
+          (|text|
+           . "where \\htbitmap{ncap} is the number of intervals of ")
+          (|text|
+           . "the spline. The spline has knots \\htbitmap{lamdai}, ")
+          (|text|
+           . "for i = 1,2,...,\\htbitmap{ncap} + 7, and the integral ")
+          (|text| . "is evaluated over the range \\htbitmap{e02bdf} ")
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text|
+           . "Number of intervals in the spline \\htbitmap{ncap}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 7 |ncap| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02bdfSolve|)
+    (|htShowPage|)))
+
+;e02bdfSolve htPage ==
+;  ncap :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ncap)
+;    objValUnwrap htpLabelSpadValue(htPage, 'ncap)
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  ncap = '7 => e02bdfDefaultSolve(htPage,ifail)
+;  labelList :=
+;    "append"/[f(i) for i in 1..(ncap+7)] where f(i) ==
+;      prefix := ('"\newline \tab{2} ")
+;      middle := ('"\tab{22} ")
+;      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
+;      cnam := INTERN STRCONC ('"c",STRINGIMAGE i)
+;      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
+;      [['text,:prefix],['bcStrings,[10, num, lnam, 'F]],
+;       ['text,:middle],['bcStrings,[10, 0.0, cnam, 'F]]]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList]
+;  page := htInitPage("E02BDF - Evaluation of fitted cubic spline, definite integral",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Knots \htbitmap{lamdai}: "
+;  htSay '"\tab{20} \menuitemstyle{}\tab{22} "
+;  htSay '"Coefficients \space{1} \htbitmap{ci}: "
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02bdfGen)
+;  htpSetProperty(page,'ncap,ncap)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02bdfSolve,f| (|i|)
+  (PROG (|prefix| |middle| |lnam| |cnam| |num|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |middle| (MAKESTRING "\\tab{22} "))
+           (SPADLET |lnam|
+                    (INTERN (STRCONC (MAKESTRING "l")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |cnam|
+                    (INTERN (STRCONC (MAKESTRING "c")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |num|
+                    (INTERN (STRCONC (STRINGIMAGE (QUOTIENT |i| 10))
+                                     (INTERN "." "BOOT")
+                                     (STRINGIMAGE (REM |i| 10)))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 10
+                                     (CONS |num|
+                                      (CONS |lnam| (CONS 'F NIL))))
+                                    NIL))
+                             (CONS (CONS '|text| |middle|)
+                                   (CONS
+                                    (CONS '|bcStrings|
+                                     (CONS
+                                      (CONS 10
+                                       (CONS 0.0
+                                        (CONS |cnam| (CONS 'F NIL))))
+                                      NIL))
+                                    NIL)))))))))
+
+(DEFUN |e02bdfSolve| (|htPage|)
+  (PROG (|ncap| |error| |ifail| |labelList| |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |ncap|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|ncap|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|ncap|)))))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((BOOT-EQUAL |ncap| '7)
+                (|e02bdfDefaultSolve| |htPage| |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G166996)
+                           (SPADLET G166996 NIL)
+                           (RETURN
+                             (DO ((G167001 (PLUS |ncap| 7))
+                                  (|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| G167001) G166996)
+                               (SEQ (EXIT
+                                     (SETQ G166996
+                                      (APPEND G166996
+                                       (|e02bdfSolve,f| |i|)))))))))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               |labelList|))
+                (SPADLET |page|
+                         (|htInitPage|
+               '|E02BDF - Evaluation of fitted cubic spline, definite integral|
+                             NIL))
+                (|htSay| (MAKESTRING
+                       "\\menuitemstyle{}\\tab{2} Knots \\htbitmap{lamdai}: "))
+                (|htSay| (MAKESTRING
+                             "\\tab{20} \\menuitemstyle{}\\tab{22} "))
+                (|htSay| (MAKESTRING
+                             "Coefficients \\space{1} \\htbitmap{ci}: "))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02bdfGen|)
+                (|htpSetProperty| |page| '|ncap| |ncap|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02bdfDefaultSolve(htPage,ifail) ==
+;  ncap := '7
+;  page := htInitPage('"E02BDF - Evaluation of fitted cubic spline, definite integral",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain EM $EmptyMode)
+;       (isDomain F (Float))
+;       (isDomain I (Integer)))
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} Knots \space{1}")
+;    (text . "\htbitmap{lamdai}: \tab{20} \menuitemstyle{}\tab{22} ")
+;    (text . "Coefficients \space{1} \htbitmap{ci}: ")
+;    (text . "\newline \tab{2}")
+;    (bcStrings (10 "0.0" l1 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "10.00" c1 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.00" l2 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "12.00" c2 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.00" l3 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "13.00" c3 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.00" l4 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "15.00" c4 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "1.00" l5 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "22.00" c5 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "3.00" l6 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "26.00" c6 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "3.00" l7 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "24.00" c7 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "3.00" l8 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "18.00" c8 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "4.00" l9 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "14.00" c9 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "4.00" l10 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "12.00" c10 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "6.00" l11 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.00" c11 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "6.00" l12 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.00" c12 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "6.00" l13 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.00" c13 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "6.00" l14 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.00" c14 F)))
+;  htpSetProperty(page,'ncap,ncap)
+;  htpSetProperty(page,'ifail,ifail)
+;  htMakeDoneButton('"Continue",'e02bdfGen)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02bdfDefaultSolve| (|htPage| |ifail|)
+  (PROG (|ncap| |page|)
+  (declare (special |$EmptyMode|))
+    (RETURN
+      (PROGN
+        (SPADLET |ncap| '7)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+               "E02BDF - Evaluation of fitted cubic spline, definite integral")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| EM |$EmptyMode|)
+                  (|isDomain| F (|Float|)) (|isDomain| I (|Integer|)))
+              (|text| . "\\newline ")
+              (|text| . "\\menuitemstyle{}\\tab{2} Knots \\space{1}")
+              (|text|
+               . "\\htbitmap{lamdai}: \\tab{20} \\menuitemstyle{}\\tab{22} ")
+              (|text| . "Coefficients \\space{1} \\htbitmap{ci}: ")
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (10 "0.0" |l1| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "10.00" |c1| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.00" |l2| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "12.00" |c2| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.00" |l3| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "13.00" |c3| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.00" |l4| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "15.00" |c4| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "1.00" |l5| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "22.00" |c5| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "3.00" |l6| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "26.00" |c6| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "3.00" |l7| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "24.00" |c7| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "3.00" |l8| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "18.00" |c8| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "4.00" |l9| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "14.00" |c9| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "4.00" |l10| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "12.00" |c10| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "6.00" |l11| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.00" |c11| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "6.00" |l12| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.00" |c12| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "6.00" |l13| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.00" |c13| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "6.00" |l14| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.00" |c14| F))))
+        (|htpSetProperty| |page| '|ncap| |ncap|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02bdfGen|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02bdfGen htPage ==
+;  ncap := htpProperty(htPage,'ncap)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  ncap7 := ncap + 7
+;  y := alist
+;  while y repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    left :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    lamlist := [left,:lamlist]
+;    clist := [right,:clist]
+;  lamstring := bcwords2liststring lamlist
+;  cstring := bcwords2liststring clist
+;  prefix := STRCONC('"e02bdf(",STRINGIMAGE ncap7,", [",lamstring,"],[")
+;  prefix := STRCONC(prefix,cstring,"], ",STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02bdfGen| (|htPage|)
+  (PROG (|ncap| |ifail| |alist| |ncap7| |right| |left| |y| |lamlist|
+                |clist| |lamstring| |cstring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |ncap| (|htpProperty| |htPage| '|ncap|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |ncap7| (PLUS |ncap| 7))
+             (SPADLET |y| |alist|)
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |left|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |lamlist| (CONS |left| |lamlist|))
+                            (SPADLET |clist| (CONS |right| |clist|))))))
+             (SPADLET |lamstring| (|bcwords2liststring| |lamlist|))
+             (SPADLET |cstring| (|bcwords2liststring| |clist|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02bdf(")
+                               (STRINGIMAGE |ncap7|) '|, [| |lamstring|
+                               '|],[|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |cstring| '|], |
+                               (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02bef() ==
+;  htInitPage('"E02BEF - Least-squares curve cubic spline fit, automatic knot placement",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02bef} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02bef| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "\newline ")
+;    (text . "Determines a cubic spline approximation to the set of points ")
+;    (text . "{\it ( \htbitmap{xr},\htbitmap{yr}) } ")
+;    (text . "with weights \htbitmap{wr}, for r = 1,2,...,m. ")
+;    (text . "The knots \htbitmap{lamdai}, for i = 1,2,...,n, ")
+;    (text . "are chosen by the routine, but a single parameter S must be ")
+;    (text . "specified to control the trade-off between closeness of fit and ")
+;    (text . "smoothness of fit. This affects the number of knots required ")
+;    (text . "by the spline, which is given in the B-spline representation ")
+;    (text . "\center{\htbitmap{e02bef}}, where n-1 is the number of")
+;    (text . " intervals of the spline. ")
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of data points {\it m}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 15 m PI))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Smoothing factor {\it s}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 "1.0" s F))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2}  ")
+;    (text . "Over-estimate of number n of knots {\it nest}:\newline\tab{2} ")
+;    (bcStrings (6 54 nest PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Start value: ")
+;    (radioButtons start
+;        ("" "  Cold Start - no values needed for {\it n,lamda,wrk} or {\it iwrk}" cold)
+;        ("" "  Warm Start - uses knots found in a previous call" warm))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02befSolve)
+;  htShowPage()
+
+(DEFUN |e02bef| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02BEF - Least-squares curve cubic spline fit, automatic knot placement")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02bef} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02bef| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text| . "\\newline ")
+          (|text|
+           . "Determines a cubic spline approximation to the set of points ")
+          (|text| . "{\\it ( \\htbitmap{xr},\\htbitmap{yr}) } ")
+          (|text| . "with weights \\htbitmap{wr}, for r = 1,2,...,m. ")
+          (|text|
+           . "The knots \\htbitmap{lamdai}, for i = 1,2,...,n, ")
+          (|text|
+           . "are chosen by the routine, but a single parameter S must be ")
+          (|text|
+           . "specified to control the trade-off between closeness of fit and ")
+          (|text|
+           . "smoothness of fit. This affects the number of knots required ")
+          (|text|
+           . "by the spline, which is given in the B-spline representation ")
+          (|text|
+           . "\\center{\\htbitmap{e02bef}}, where n-1 is the number of")
+          (|text| . " intervals of the spline. ")
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Number of data points {\\it m}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 15 |m| PI))
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Smoothing factor {\\it s}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 "1.0" |s| F))
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2}  ")
+          (|text|
+           . "Over-estimate of number n of knots {\\it nest}:\\newline\\tab{2} ")
+          (|bcStrings| (6 54 |nest| PI)) (|text| . "\\blankline ")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Start value: ")
+          (|radioButtons| |start|
+              (""
+               "  Cold Start - no values needed for {\\it n,lamda,wrk} or {\\it iwrk}"
+               |cold|)
+              ("" "  Warm Start - uses knots found in a previous call"
+               |warm|))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02befSolve|)
+    (|htShowPage|)))
+
+;e02befSolve htPage ==
+;  m :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
+;    objValUnwrap htpLabelSpadValue(htPage, 'm)
+;  nest :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nest)
+;    objValUnwrap htpLabelSpadValue(htPage, 'nest)
+;  lwrk := 4*m +16*nest + 41
+;  s := htpLabelInputString(htPage,'s)
+;  initial := htpButtonValue(htPage,'start)
+;  start :=
+;    initial = 'cold => '1
+;    '2
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  (m = 15 and start = 1) => e02befDefaultSolve (htPage,nest,lwrk,s,ifail)
+;  start = 1 => e02befColdSolve (htPage,m,nest,lwrk,s,ifail)
+;  -- warm start not really possible from hyperdoc
+;  -- as inputing a workspace array of dimension 1105 is asking too much
+;  -- user should use the command line, using the previous calculated
+;  -- parameters
+;  htInitPage('"E02BEF - Least-squares curve cubic spline fit, automatic knot placement",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\blankline ")
+;    (text . "{\center{\it Hyperdoc interface not available for warm starts.}}")
+;    (text . "\newline ")
+;    (text . "{\center{\it Please use the command line.}}"))
+;  htMakeDoneButton('"Continue",'e02bef)
+;  htShowPage()
+
+(DEFUN |e02befSolve| (|htPage|)
+  (PROG (|m| |nest| |lwrk| |s| |initial| |start| |error| |ifail|)
+  (declare (special |$bcParseOnly|))
+    (RETURN
+      (PROGN
+        (SPADLET |m|
+                 (COND
+                   (|$bcParseOnly|
+                       (PARSE-INTEGER
+                           (|htpLabelInputString| |htPage| '|m|)))
+                   ('T
+                    (|objValUnwrap|
+                        (|htpLabelSpadValue| |htPage| '|m|)))))
+        (SPADLET |nest|
+                 (COND
+                   (|$bcParseOnly|
+                       (PARSE-INTEGER
+                           (|htpLabelInputString| |htPage| '|nest|)))
+                   ('T
+                    (|objValUnwrap|
+                        (|htpLabelSpadValue| |htPage| '|nest|)))))
+        (SPADLET |lwrk|
+                 (PLUS (PLUS (TIMES 4 |m|) (TIMES 16 |nest|)) 41))
+        (SPADLET |s| (|htpLabelInputString| |htPage| '|s|))
+        (SPADLET |initial| (|htpButtonValue| |htPage| '|start|))
+        (SPADLET |start|
+                 (COND ((BOOT-EQUAL |initial| '|cold|) '1) ('T '2)))
+        (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+        (SPADLET |ifail|
+                 (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+        (COND
+          ((AND (EQL |m| 15) (EQL |start| 1))
+           (|e02befDefaultSolve| |htPage| |nest| |lwrk| |s| |ifail|))
+          ((EQL |start| 1)
+           (|e02befColdSolve| |htPage| |m| |nest| |lwrk| |s| |ifail|))
+          ('T
+           (|htInitPage|
+               (MAKESTRING
+     "E02BEF - Least-squares curve cubic spline fit, automatic knot placement")
+               NIL)
+           (|htMakePage|
+               '((|domainConditions|
+                     (|isDomain| PI (|PositiveInteger|)))
+                 (|text| . "\\blankline ")
+                 (|text|
+        . "{\\center{\\it Hyperdoc interface not available for warm starts.}}")
+                 (|text| . "\\newline ")
+                 (|text|
+                  . "{\\center{\\it Please use the command line.}}")))
+           (|htMakeDoneButton| (MAKESTRING "Continue") '|e02bef|)
+           (|htShowPage|)))))))
+
+;e02befColdSolve(htPage,m,nest,lwrk,s,ifail) ==
+;  labelList :=
+;    "append"/[f(i) for i in 1..m] where f(i) ==
+;      prefix := ('"\newline \tab{2} ")
+;      middle := ('"\tab{22} ")
+;      post   := ('" \tab{42} ")
+;      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
+;      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
+;      znam := INTERN STRCONC ('"z",STRINGIMAGE i)
+;      num := INTERN STRCONC (STRINGIMAGE (QUOTIENT(i,10)),".",STRINGIMAGE (REM(i,10)))
+;      [['text,:prefix],['bcStrings,[10, num, xnam, 'F]],
+;       ['text,:middle],['bcStrings,[10, 0.0, ynam, 'F]],
+;        ['text,:post],['bcStrings,[10, 0.0, znam, 'F]]]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList]
+;  page := htInitPage('"E02BEF - Least-squares curve cubic spline fit, automatic knot placement",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Values of \space{1} "
+;  htSay '"\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} "
+;  htSay '"Values of \space{1} \htbitmap{yr}: \tab{40}"
+;  htSay '"\menuitemstyle{}\tab{42} Values of \space{1} "
+;  htSay '"\htbitmap{wr}: "
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02befColdGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'nest,nest)
+;  htpSetProperty(page,'lwrk,lwrk)
+;  htpSetProperty(page,'s,s)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02befColdSolve,f| (|i|)
+  (PROG (|prefix| |middle| |post| |xnam| |ynam| |znam| |num|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |middle| (MAKESTRING "\\tab{22} "))
+           (SPADLET |post| (MAKESTRING " \\tab{42} "))
+           (SPADLET |xnam|
+                    (INTERN (STRCONC (MAKESTRING "x")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |ynam|
+                    (INTERN (STRCONC (MAKESTRING "y")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |znam|
+                    (INTERN (STRCONC (MAKESTRING "z")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |num|
+                    (INTERN (STRCONC (STRINGIMAGE (QUOTIENT |i| 10))
+                                     (INTERN "." "BOOT")
+                                     (STRINGIMAGE (REM |i| 10)))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 10
+                                     (CONS |num|
+                                      (CONS |xnam| (CONS 'F NIL))))
+                                    NIL))
+                             (CONS (CONS '|text| |middle|)
+                                   (CONS
+                                    (CONS '|bcStrings|
+                                     (CONS
+                                      (CONS 10
+                                       (CONS 0.0
+                                        (CONS |ynam| (CONS 'F NIL))))
+                                      NIL))
+                                    (CONS (CONS '|text| |post|)
+                                     (CONS
+                                      (CONS '|bcStrings|
+                                       (CONS
+                                        (CONS 10
+                                         (CONS 0.0
+                                          (CONS |znam| (CONS 'F NIL))))
+                                        NIL))
+                                      NIL)))))))))))
+
+(DEFUN |e02befColdSolve| (|htPage| |m| |nest| |lwrk| |s| |ifail|)
+  (PROG (|labelList| |equationPart| |page|)
+  (declare (special |$EmptyMode|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |labelList|
+                      (PROG (G167086)
+                        (SPADLET G167086 NIL)
+                        (RETURN
+                          (DO ((|i| 1 (QSADD1 |i|)))
+                              ((QSGREATERP |i| |m|) G167086)
+                            (SEQ (EXIT (SETQ G167086
+                                        (APPEND G167086
+                                         (|e02befColdSolve,f| |i|)))))))))
+             (SPADLET |equationPart|
+                      (CONS '(|domainConditions|
+                                 (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                 (|isDomain| S (|String|))
+                                 (|isDomain| F (|Float|))
+                                 (|isDomain| PI (|PositiveInteger|)))
+                            |labelList|))
+             (SPADLET |page|
+                      (|htInitPage|
+                          (MAKESTRING
+                              "E02BEF - Least-squares curve cubic spline fit, automatic knot placement")
+                          NIL))
+             (|htSay| (MAKESTRING
+                          "\\menuitemstyle{}\\tab{2} Values of \\space{1} "))
+             (|htSay| (MAKESTRING
+                          "\\htbitmap{xr}: \\tab{20} \\menuitemstyle{}\\tab{22} "))
+             (|htSay| (MAKESTRING
+                          "Values of \\space{1} \\htbitmap{yr}: \\tab{40}"))
+             (|htSay| (MAKESTRING
+                          "\\menuitemstyle{}\\tab{42} Values of \\space{1} "))
+             (|htSay| (MAKESTRING "\\htbitmap{wr}: "))
+             (|htMakePage| |equationPart|)
+             (|htSay| (MAKESTRING "\\blankline "))
+             (|htMakeDoneButton| (MAKESTRING "Continue")
+                 '|e02befColdGen|)
+             (|htpSetProperty| |page| '|m| |m|)
+             (|htpSetProperty| |page| '|nest| |nest|)
+             (|htpSetProperty| |page| '|lwrk| |lwrk|)
+             (|htpSetProperty| |page| '|s| |s|)
+             (|htpSetProperty| |page| '|ifail| |ifail|)
+             (|htpSetProperty| |page| '|inputArea|
+                 (|htpInputAreaAlist| |htPage|))
+             (|htShowPage|))))))
+
+;e02befDefaultSolve (htPage,nest,lwrk,s,ifail) ==
+;  m := 15
+;  page := htInitPage('"E02BEF - Least-squares curve cubic spline fit, automatic knot placement",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} Values of \space{1} ")
+;    (text . "\htbitmap{xr}: \tab{20} \menuitemstyle{}\tab{22} ")
+;    (text . "Values of \space{1} \htbitmap{yr}: \tab{40} ")
+;    (text . "\menuitemstyle{}\tab{42} Values of \space{1} ")
+;    (text . "\htbitmap{wr}: ")
+;    (text . "\newline \tab{2}")
+;    (bcStrings (10 "0.00" x1 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "-1.1" y1 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z1 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "0.50" x2 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "-0.372" y2 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "2.00" z2 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "1.00" x3 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "0.431" y3 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.50" z3 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "1.50" x4 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "1.69" y4 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z4 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "2.00" x5 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "2.11" y5 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "3.00" z5 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "2.50" x6 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "3.10" y6 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z6 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "3.00" x7 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "4.23" y7 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "0.50" z7 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "4.00" x8 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "4.35" y8 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z8 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "4.50" x9 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "4.81" y9 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "2.00" z9 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "5.00" x10 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "4.61" y10 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "2.50" z10 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "5.50" x11 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "4.79" y11 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z11 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "6.00" x12 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "5.23" y12 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "3.00" z12 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "7.00" x13 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "6.35" y13 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z13 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "7.50" x14 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "7.19" y14 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "2.00" z14 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (10 "8.00" x15 F))
+;    (text . "\tab{22} ")
+;    (bcStrings (10 "7.97" y15 F))
+;    (text . "\tab{42} ")
+;    (bcStrings (10 "1.00" z15 F))
+;    (text . "\blankline"))
+;  htMakeDoneButton('"Continue",'e02befColdGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'nest,nest)
+;  htpSetProperty(page,'lwrk,lwrk)
+;  htpSetProperty(page,'s,s)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02befDefaultSolve| (|htPage| |nest| |lwrk| |s| |ifail|)
+  (PROG (|m| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |m| 15)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02BEF - Least-squares curve cubic spline fit, automatic knot placement")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text| . "\\newline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of \\space{1} ")
+              (|text|
+               . "\\htbitmap{xr}: \\tab{20} \\menuitemstyle{}\\tab{22} ")
+              (|text|
+               . "Values of \\space{1} \\htbitmap{yr}: \\tab{40} ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{42} Values of \\space{1} ")
+              (|text| . "\\htbitmap{wr}: ")
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (10 "0.00" |x1| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "-1.1" |y1| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z1| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "0.50" |x2| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "-0.372" |y2| F))
+              (|text| . "\\tab{42} ") (|bcStrings| (10 "2.00" |z2| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "1.00" |x3| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "0.431" |y3| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.50" |z3| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "1.50" |x4| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "1.69" |y4| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z4| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "2.00" |x5| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "2.11" |y5| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "3.00" |z5| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "2.50" |x6| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "3.10" |y6| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z6| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "3.00" |x7| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "4.23" |y7| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "0.50" |z7| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "4.00" |x8| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "4.35" |y8| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z8| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "4.50" |x9| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "4.81" |y9| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "2.00" |z9| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "5.00" |x10| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "4.61" |y10| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "2.50" |z10| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "5.50" |x11| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "4.79" |y11| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z11| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "6.00" |x12| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "5.23" |y12| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "3.00" |z12| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "7.00" |x13| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "6.35" |y13| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z13| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "7.50" |x14| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "7.19" |y14| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "2.00" |z14| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (10 "8.00" |x15| F)) (|text| . "\\tab{22} ")
+              (|bcStrings| (10 "7.97" |y15| F)) (|text| . "\\tab{42} ")
+              (|bcStrings| (10 "1.00" |z15| F))
+              (|text| . "\\blankline")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02befColdGen|)
+        (|htpSetProperty| |page| '|m| |m|)
+        (|htpSetProperty| |page| '|nest| |nest|)
+        (|htpSetProperty| |page| '|lwrk| |lwrk|)
+        (|htpSetProperty| |page| '|s| |s|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02befColdGen htPage ==
+;  m := htpProperty(htPage,'m)
+;  nest := htpProperty(htPage,'nest)
+;  lwrk := htpProperty(htPage,'lwrk)
+;  s := htpProperty(htPage,'s)
+;  cold := '"c"
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  y := alist
+;  while y repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    mid :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    left :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    xlist := [left,:xlist]
+;    ylist := [mid,:ylist]
+;    wlist := [right,:wlist]
+;  xstring := bcwords2liststring xlist
+;  ystring := bcwords2liststring ylist
+;  wstring := bcwords2liststring wlist
+;  -- additional entries needed to get it running
+;  -- but as Start = c they are not used
+;  -- mmax := 50
+;  -- nest := mmax + 4 (54)
+;  -- lwrk := 4*mmax + 16*nest+41 (1105)
+;  prefix := STRCONC('"e02bef(_"",cold,"_",",STRINGIMAGE m,", [",xstring,"],[")
+;  prefix := STRCONC(prefix,ystring,"],[",wstring,"], ",STRINGIMAGE s,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE nest,", ",STRINGIMAGE lwrk)
+;--  prefix := STRCONC(prefix,",0, [[0.0 for i in 1..",STRINGIMAGE nest,"]],")
+;--  prefix := STRCONC(prefix,STRINGIMAGE ifail,", [[0.0 for i in 1..")
+;--  prefix := STRCONC(prefix,STRINGIMAGE lwrk,"]], [[0 for i in 1..")
+;--  prefix := STRCONC(prefix,STRINGIMAGE nest,"]] :: Matrix Integer)")
+;  prefix := STRCONC(prefix,",0, new(1,",STRINGIMAGE nest,",0.0)$Matrix DoubleFloat,")
+;  prefix := STRCONC(prefix,STRINGIMAGE ifail,", new(1,",STRINGIMAGE lwrk,",0.0)$Matrix DoubleFloat, ")
+;  prefix := STRCONC(prefix," new(1,",STRINGIMAGE nest,",0)$Matrix Integer)")
+;  linkGen prefix
+
+(DEFUN |e02befColdGen| (|htPage|)
+  (PROG (|m| |nest| |lwrk| |s| |cold| |ifail| |alist| |right| |mid|
+             |left| |y| |xlist| |ylist| |wlist| |xstring| |ystring|
+             |wstring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m| (|htpProperty| |htPage| '|m|))
+             (SPADLET |nest| (|htpProperty| |htPage| '|nest|))
+             (SPADLET |lwrk| (|htpProperty| |htPage| '|lwrk|))
+             (SPADLET |s| (|htpProperty| |htPage| '|s|))
+             (SPADLET |cold| (MAKESTRING "c"))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |y| |alist|)
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |mid|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |left|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |xlist| (CONS |left| |xlist|))
+                            (SPADLET |ylist| (CONS |mid| |ylist|))
+                            (SPADLET |wlist| (CONS |right| |wlist|))))))
+             (SPADLET |xstring| (|bcwords2liststring| |xlist|))
+             (SPADLET |ystring| (|bcwords2liststring| |ylist|))
+             (SPADLET |wstring| (|bcwords2liststring| |wlist|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02bef(\"") |cold| '|",|
+                               (STRINGIMAGE |m|) '|, [| |xstring|
+                               '|],[|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |ystring| '|],[| |wstring|
+                               '|], | (STRINGIMAGE |s|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |nest|) '|, |
+                               (STRINGIMAGE |lwrk|)))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| '|,0, new(1,|
+                               (STRINGIMAGE |nest|)
+                               '|,0.0)$Matrix DoubleFloat,|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |ifail|)
+                               '|, new(1,| (STRINGIMAGE |lwrk|)
+                               '|,0.0)$Matrix DoubleFloat, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| '| new(1,| (STRINGIMAGE |nest|)
+                               '|,0)$Matrix Integer)|))
+             (|linkGen| |prefix|))))))
+
+;e02def() ==
+;  htInitPage('"E02DEF - Evaluation of a fitted bicubic spline at a vector of points",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02def} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02def| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Evaluates a bicubic spline at the (\htbitmap{xr},")
+;    (text . "\htbitmap{yr}), for r = 1,2,...,m, from its B-spline ")
+;    (text . "representation \htbitmap{e02daf} ")
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of evaluation points, {\it m}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 7 m PI))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of (interior & exterior) knots ")
+;    (text . "\lambda, \htbitmap{px} \htbitmap{great=} 8: \newline\tab{2} ")
+;    (bcStrings (6 11 px PI))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of (interior & exterior) knots ")
+;    (text . "\mu, \htbitmap{py} \htbitmap{great=} 8: \newline\tab{2} ")
+;    (bcStrings (6 10 py PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02defSolve)
+;  htShowPage()
+
+(DEFUN |e02def| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02DEF - Evaluation of a fitted bicubic spline at a vector of points")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02def} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02def| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Evaluates a bicubic spline at the (\\htbitmap{xr},")
+          (|text|
+           . "\\htbitmap{yr}), for r = 1,2,...,m, from its B-spline ")
+          (|text| . "representation \\htbitmap{e02daf} ")
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Number of evaluation points, {\\it m}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 7 |m| PI))
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Number of (interior & exterior) knots ")
+          (|text|
+           . "\\lambda, \\htbitmap{px} \\htbitmap{great=} 8: \\newline\\tab{2} ")
+          (|bcStrings| (6 11 |px| PI)) (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Number of (interior & exterior) knots ")
+          (|text|
+           . "\\mu, \\htbitmap{py} \\htbitmap{great=} 8: \\newline\\tab{2} ")
+          (|bcStrings| (6 10 |py| PI)) (|text| . "\\blankline ")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02defSolve|)
+    (|htShowPage|)))
+
+;e02defSolve htPage ==
+;  m :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
+;    objValUnwrap htpLabelSpadValue(htPage, 'm)
+;  px :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'px)
+;    objValUnwrap htpLabelSpadValue(htPage, 'px)
+;  py :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'py)
+;    objValUnwrap htpLabelSpadValue(htPage, 'py)
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  ((m = '7 and px = '11) and py = '10) => e02defDefaultSolve(htPage,ifail)
+;  labelList :=
+;    "append"/[fxy(i) for i in 1..m] where fxy(i) ==
+;      prefix := ('"\newline \tab{2} ")
+;      middle := ('"\tab{22} ")
+;      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
+;      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
+;      [['text,:prefix],['bcStrings,[8, 0.0, xnam, 'F]],
+;       ['text,:middle],['bcStrings,[8, 0.0, ynam, 'F]]]
+;  lamList :=
+;    "append"/[flam(i) for i in 1..px] where flam(i) ==
+;      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, lnam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} {\it \lambda(nxest)}: \newline")
+;  lamList := [['text,:prefix],:lamList]
+;  muList :=
+;    "append"/[fmu(i) for i in 1..(py)] where fmu(i) ==
+;      mnam := INTERN STRCONC ('"m",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, mnam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} {\it \mu(nyest)}:")
+;  prefix := STRCONC(prefix,"\newline ")
+;  muList := [['text,:prefix],:muList]
+;  cList :=
+;    "append"/[fp(i) for i in 1..((px-4)*(py-4))] where fp(i) ==
+;      pnam := INTERN STRCONC ('"p",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, pnam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{}\tab{2}Enter values of ")
+;  prefix := STRCONC(prefix,"{\it c((nxest*4)-(nyest*4))}: \newline ")
+;  cList := [['text,:prefix],:cList]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList,:lamList,:muList,:cList]
+;  page := htInitPage('"E02DEF - Evaluation of a fitted bicubic spline at a vector of points",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Values of \htbitmap{xr}: "
+;  htSay '"\tab{20} \menuitemstyle{}\tab{22} Values of \htbitmap{yr}:"
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02defGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'px,px)
+;  htpSetProperty(page,'py,py)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02defSolve,fxy| (|i|)
+  (PROG (|prefix| |middle| |xnam| |ynam|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |middle| (MAKESTRING "\\tab{22} "))
+           (SPADLET |xnam|
+                    (INTERN (STRCONC (MAKESTRING "x")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |ynam|
+                    (INTERN (STRCONC (MAKESTRING "y")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 8
+                                     (CONS 0.0
+                                      (CONS |xnam| (CONS 'F NIL))))
+                                    NIL))
+                             (CONS (CONS '|text| |middle|)
+                                   (CONS
+                                    (CONS '|bcStrings|
+                                     (CONS
+                                      (CONS 8
+                                       (CONS 0.0
+                                        (CONS |ynam| (CONS 'F NIL))))
+                                      NIL))
+                                    NIL)))))))))
+
+(DEFUN |e02defSolve,flam| (|i|)
+  (PROG (|lnam|)
+    (RETURN
+      (SEQ (SPADLET |lnam|
+                    (INTERN (STRCONC (MAKESTRING "l")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |lnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02defSolve,fmu| (|i|)
+  (PROG (|mnam|)
+    (RETURN
+      (SEQ (SPADLET |mnam|
+                    (INTERN (STRCONC (MAKESTRING "m")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |mnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02defSolve,fp| (|i|)
+  (PROG (|pnam|)
+    (RETURN
+      (SEQ (SPADLET |pnam|
+                    (INTERN (STRCONC (MAKESTRING "p")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |pnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02defSolve| (|htPage|)
+  (PROG (|m| |px| |py| |error| |ifail| |labelList| |lamList| |muList|
+             |prefix| |cList| |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|m|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|m|)))))
+             (SPADLET |px|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|px|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|px|)))))
+             (SPADLET |py|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|py|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|py|)))))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((AND (BOOT-EQUAL |m| '7) (BOOT-EQUAL |px| '11)
+                     (BOOT-EQUAL |py| '10))
+                (|e02defDefaultSolve| |htPage| |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G167189)
+                           (SPADLET G167189 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |m|) G167189)
+                               (SEQ (EXIT
+                                     (SETQ G167189
+                                      (APPEND G167189
+                                       (|e02defSolve,fxy| |i|)))))))))
+                (SPADLET |lamList|
+                         (PROG (G167197)
+                           (SPADLET G167197 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |px|) G167197)
+                               (SEQ (EXIT
+                                     (SETQ G167197
+                                      (APPEND G167197
+                                       (|e02defSolve,flam| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                             "\\blankline \\menuitemstyle{} \\tab{2} {\\it \\lambda(nxest)}: \\newline"))
+                (SPADLET |lamList|
+                         (CONS (CONS '|text| |prefix|) |lamList|))
+                (SPADLET |muList|
+                         (PROG (G167205)
+                           (SPADLET G167205 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |py|) G167205)
+                               (SEQ (EXIT
+                                     (SETQ G167205
+                                      (APPEND G167205
+                                       (|e02defSolve,fmu| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                 "\\blankline \\menuitemstyle{} \\tab{2} {\\it \\mu(nyest)}:"))
+                (SPADLET |prefix| (STRCONC |prefix| '|\\newline |))
+                (SPADLET |muList|
+                         (CONS (CONS '|text| |prefix|) |muList|))
+                (SPADLET |cList|
+                         (PROG (G167213)
+                           (SPADLET G167213 NIL)
+                           (RETURN
+                             (DO ((G167218
+                                      (TIMES (SPADDIFFERENCE |px| 4)
+                                       (SPADDIFFERENCE |py| 4)))
+                                  (|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| G167218) G167213)
+                               (SEQ (EXIT
+                                     (SETQ G167213
+                                      (APPEND G167213
+                                       (|e02defSolve,fp| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                      "\\blankline \\menuitemstyle{}\\tab{2}Enter values of "))
+                (SPADLET |prefix|
+                         (STRCONC |prefix|
+                                 '|{\\it c((nxest*4)-(nyest*4))}: \\newline |))
+                (SPADLET |cList|
+                         (CONS (CONS '|text| |prefix|) |cList|))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               (APPEND |labelList|
+                                       (APPEND |lamList|
+                                        (APPEND |muList| |cList|)))))
+                (SPADLET |page|
+                         (|htInitPage|
+                             (MAKESTRING
+        "E02DEF - Evaluation of a fitted bicubic spline at a vector of points")
+                             NIL))
+                (|htSay| (MAKESTRING
+                       "\\menuitemstyle{}\\tab{2} Values of \\htbitmap{xr}: "))
+                (|htSay| (MAKESTRING
+             "\\tab{20} \\menuitemstyle{}\\tab{22} Values of \\htbitmap{yr}:"))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02defGen|)
+                (|htpSetProperty| |page| '|m| |m|)
+                (|htpSetProperty| |page| '|px| |px|)
+                (|htpSetProperty| |page| '|py| |py|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02defDefaultSolve (htPage,ifail) ==
+;  m := '7
+;  px := '11
+;  py := '10
+;  page := htInitPage('"E02DEF - Evaluation of a fitted bicubic spline at a vector of points",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} Values of \htbitmap{xr}:")
+;    (text . "\tab{20} \menuitemstyle{} \tab{22} Values of ")
+;    (text . "\htbitmap{yr}: ")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "1" x1 F))
+;    (text . "\tab{22}")
+;    (bcStrings (8 "0" y1 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "1.1" x2 F))
+;    (text . "\tab{22}")
+;    (bcStrings (8 "0.1" y2 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "1.5" x3 F))
+;    (text . "\tab{22}")
+;    (bcStrings (8 "0.7" y3 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "1.6" x4 F))
+;    (text . "\tab{22}")
+;    (bcStrings (8 "0.4" y4 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "1.9" x5 F))
+;    (text . "\tab{22}")
+;    (bcStrings (8 "0.3" y5 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "1.9" x6 F))
+;    (text . "\tab{22}")
+;    (bcStrings (8 "0.8" y6 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "2" x7 F))
+;    (text . "\tab{22}")
+;    (bcStrings (8 "1" y7 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} {\it \lambda(nxest)}:")
+;    (text . "\newline ")
+;    (bcStrings (8 "1.0" l1 F))
+;    (bcStrings (8 "1.0" l2 F))
+;    (bcStrings (8 "1.0" l3 F))
+;    (bcStrings (8 "1.0" l4 F))
+;    (bcStrings (8 "1.3" l5 F))
+;    (bcStrings (8 "1.5" l6 F))
+;    (bcStrings (8 "1.6" l7 F))
+;    (bcStrings (8 "2" l8 F))
+;    (bcStrings (8 "2" l9 F))
+;    (bcStrings (8 "2" l10 F))
+;    (bcStrings (8 "2" l11 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} {\it \mu(nyest)}:")
+;    (text . "\newline ")
+;    (bcStrings (8 "0" mu1 F))
+;    (bcStrings (8 "0" mu2 F))
+;    (bcStrings (8 "0" mu3 F))
+;    (bcStrings (8 "0" mu4 F))
+;    (bcStrings (8 "0.4" mu5 F))
+;    (bcStrings (8 "0.7" mu6 F))
+;    (bcStrings (8 "1" mu7 F))
+;    (bcStrings (8 "1" mu8 F))
+;    (bcStrings (8 "1" mu9 F))
+;    (bcStrings (8 "1" mu10 F))
+;    (text . "\blankline \menuitemstyle{}\tab{2} ")
+;    (text . "Enter values for {\it c((nxest-4)*(nyest-4))}:")
+;    (text . "\newline ")
+;    (bcStrings (8 "1" c1 F))
+;    (bcStrings (8 "1.1333" c2 F))
+;    (bcStrings (8 "1.3667" c3 F))
+;    (bcStrings (8 "1.7" c4 F))
+;    (bcStrings (8 "1.9" c5 F))
+;    (bcStrings (8 "2" c6 F))
+;    (bcStrings (8 "1.2" c7 F))
+;    (bcStrings (8 "1.3333" c8 F))
+;    (bcStrings (8 "1.5667" c9 F))
+;    (bcStrings (8 "1.9" c10 F))
+;    (bcStrings (8 "2.1" c11 F))
+;    (bcStrings (8 "2.2" c12 F))
+;    (bcStrings (8 "1.5833" c13 F))
+;    (bcStrings (8 "1.7167" c14 F))
+;    (bcStrings (8 "1.95" c15 F))
+;    (bcStrings (8 "2.2833" c16 F))
+;    (bcStrings (8 "2.4833" c17 F))
+;    (bcStrings (8 "2.5833" c18 F))
+;    (bcStrings (8 "2.1433" c19 F))
+;    (bcStrings (8 "2.2767" c20 F))
+;    (bcStrings (8 "2.51" c21 F))
+;    (bcStrings (8 "2.8433" c22 F))
+;    (bcStrings (8 "3.0433" c23 F))
+;    (bcStrings (8 "3.1433" c24 F))
+;    (bcStrings (8 "2.8667" c25 F))
+;    (bcStrings (8 "3" c26 F))
+;    (bcStrings (8 "3.2333" c27 F))
+;    (bcStrings (8 "3.5667" c28 F))
+;    (bcStrings (8 "3.7667" c29 F))
+;    (bcStrings (8 "3.8667" c30 F))
+;    (bcStrings (8 "3.4667" c31 F))
+;    (bcStrings (8 "3.6" c32 F))
+;    (bcStrings (8 "3.8333" c33 F))
+;    (bcStrings (8 "4.1667" c34 F))
+;    (bcStrings (8 "4.3667" c35 F))
+;    (bcStrings (8 "4.4667" c36 F))
+;    (bcStrings (8 "4" c37 F))
+;    (bcStrings (8 "4.1333" c38 F))
+;    (bcStrings (8 "4.3667" c39 F))
+;    (bcStrings (8 "4.7" c40 F))
+;    (bcStrings (8 "4.9" c41 F))
+;    (bcStrings (8 "5" c42 F))
+;    (text . "\blankline "))
+;  htMakeDoneButton('"Continue",'e02defGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'px,px)
+;  htpSetProperty(page,'py,py)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02defDefaultSolve| (|htPage| |ifail|)
+  (PROG (|m| |px| |py| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |m| '7)
+        (SPADLET |px| '11)
+        (SPADLET |py| '10)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02DEF - Evaluation of a fitted bicubic spline at a vector of points")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text| . "\\newline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of \\htbitmap{xr}:")
+              (|text|
+               . "\\tab{20} \\menuitemstyle{} \\tab{22} Values of ")
+              (|text| . "\\htbitmap{yr}: ")
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "1" |x1| F)) (|text| . "\\tab{22}")
+              (|bcStrings| (8 "0" |y1| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "1.1" |x2| F)) (|text| . "\\tab{22}")
+              (|bcStrings| (8 "0.1" |y2| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "1.5" |x3| F)) (|text| . "\\tab{22}")
+              (|bcStrings| (8 "0.7" |y3| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "1.6" |x4| F)) (|text| . "\\tab{22}")
+              (|bcStrings| (8 "0.4" |y4| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "1.9" |x5| F)) (|text| . "\\tab{22}")
+              (|bcStrings| (8 "0.3" |y5| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "1.9" |x6| F)) (|text| . "\\tab{22}")
+              (|bcStrings| (8 "0.8" |y6| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "2" |x7| F)) (|text| . "\\tab{22}")
+              (|bcStrings| (8 "1" |y7| F)) (|text| . "\\blankline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} {\\it \\lambda(nxest)}:")
+              (|text| . "\\newline ") (|bcStrings| (8 "1.0" |l1| F))
+              (|bcStrings| (8 "1.0" |l2| F))
+              (|bcStrings| (8 "1.0" |l3| F))
+              (|bcStrings| (8 "1.0" |l4| F))
+              (|bcStrings| (8 "1.3" |l5| F))
+              (|bcStrings| (8 "1.5" |l6| F))
+              (|bcStrings| (8 "1.6" |l7| F))
+              (|bcStrings| (8 "2" |l8| F)) (|bcStrings| (8 "2" |l9| F))
+              (|bcStrings| (8 "2" |l10| F))
+              (|bcStrings| (8 "2" |l11| F)) (|text| . "\\blankline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} {\\it \\mu(nyest)}:")
+              (|text| . "\\newline ") (|bcStrings| (8 "0" |mu1| F))
+              (|bcStrings| (8 "0" |mu2| F))
+              (|bcStrings| (8 "0" |mu3| F))
+              (|bcStrings| (8 "0" |mu4| F))
+              (|bcStrings| (8 "0.4" |mu5| F))
+              (|bcStrings| (8 "0.7" |mu6| F))
+              (|bcStrings| (8 "1" |mu7| F))
+              (|bcStrings| (8 "1" |mu8| F))
+              (|bcStrings| (8 "1" |mu9| F))
+              (|bcStrings| (8 "1" |mu10| F))
+              (|text| . "\\blankline \\menuitemstyle{}\\tab{2} ")
+              (|text|
+               . "Enter values for {\\it c((nxest-4)*(nyest-4))}:")
+              (|text| . "\\newline ") (|bcStrings| (8 "1" |c1| F))
+              (|bcStrings| (8 "1.1333" |c2| F))
+              (|bcStrings| (8 "1.3667" |c3| F))
+              (|bcStrings| (8 "1.7" |c4| F))
+              (|bcStrings| (8 "1.9" |c5| F))
+              (|bcStrings| (8 "2" |c6| F))
+              (|bcStrings| (8 "1.2" |c7| F))
+              (|bcStrings| (8 "1.3333" |c8| F))
+              (|bcStrings| (8 "1.5667" |c9| F))
+              (|bcStrings| (8 "1.9" |c10| F))
+              (|bcStrings| (8 "2.1" |c11| F))
+              (|bcStrings| (8 "2.2" |c12| F))
+              (|bcStrings| (8 "1.5833" |c13| F))
+              (|bcStrings| (8 "1.7167" |c14| F))
+              (|bcStrings| (8 "1.95" |c15| F))
+              (|bcStrings| (8 "2.2833" |c16| F))
+              (|bcStrings| (8 "2.4833" |c17| F))
+              (|bcStrings| (8 "2.5833" |c18| F))
+              (|bcStrings| (8 "2.1433" |c19| F))
+              (|bcStrings| (8 "2.2767" |c20| F))
+              (|bcStrings| (8 "2.51" |c21| F))
+              (|bcStrings| (8 "2.8433" |c22| F))
+              (|bcStrings| (8 "3.0433" |c23| F))
+              (|bcStrings| (8 "3.1433" |c24| F))
+              (|bcStrings| (8 "2.8667" |c25| F))
+              (|bcStrings| (8 "3" |c26| F))
+              (|bcStrings| (8 "3.2333" |c27| F))
+              (|bcStrings| (8 "3.5667" |c28| F))
+              (|bcStrings| (8 "3.7667" |c29| F))
+              (|bcStrings| (8 "3.8667" |c30| F))
+              (|bcStrings| (8 "3.4667" |c31| F))
+              (|bcStrings| (8 "3.6" |c32| F))
+              (|bcStrings| (8 "3.8333" |c33| F))
+              (|bcStrings| (8 "4.1667" |c34| F))
+              (|bcStrings| (8 "4.3667" |c35| F))
+              (|bcStrings| (8 "4.4667" |c36| F))
+              (|bcStrings| (8 "4" |c37| F))
+              (|bcStrings| (8 "4.1333" |c38| F))
+              (|bcStrings| (8 "4.3667" |c39| F))
+              (|bcStrings| (8 "4.7" |c40| F))
+              (|bcStrings| (8 "4.9" |c41| F))
+              (|bcStrings| (8 "5" |c42| F)) (|text| . "\\blankline ")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02defGen|)
+        (|htpSetProperty| |page| '|m| |m|)
+        (|htpSetProperty| |page| '|px| |px|)
+        (|htpSetProperty| |page| '|py| |py|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02defGen htPage ==
+;  m := htpProperty(htPage,'m)
+;  px := htpProperty(htPage,'px)
+;  py := htpProperty(htPage,'py)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  y := alist
+;  -- c
+;  for i in 1..((px-4)*(py-4)) repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    cList := [right,:cList]
+;  cstring := bcwords2liststring cList
+;  -- mu
+;  for i in 1..py repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    muList := [right,:muList]
+;  mustring := bcwords2liststring muList
+;  -- lamda
+;  for i in 1..px repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    lamList := [right,:lamList]
+;  lamstring := bcwords2liststring lamList
+;  -- x & y
+;  while y repeat
+;    one := STRCONC((first y).1," ")
+;    y := rest y
+;    two := STRCONC((first y).1," ")
+;    y := rest y
+;    xlist := [two,:xlist]
+;    ylist := [one,:ylist]
+;  xstring := bcwords2liststring xlist
+;  ystring := bcwords2liststring ylist
+;  prefix := STRCONC('"e02def(",STRINGIMAGE m,", ",STRINGIMAGE px,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE py,",[",xstring,"],[",ystring,"],[")
+;  prefix := STRCONC(prefix,lamstring,"],[",mustring,"],[",cstring,"],")
+;  prefix := STRCONC(prefix,STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02defGen| (|htPage|)
+  (PROG (|m| |px| |py| |ifail| |alist| |cList| |cstring| |muList|
+             |mustring| |right| |lamList| |lamstring| |one| |two| |y|
+             |xlist| |ylist| |xstring| |ystring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m| (|htpProperty| |htPage| '|m|))
+             (SPADLET |px| (|htpProperty| |htPage| '|px|))
+             (SPADLET |py| (|htpProperty| |htPage| '|py|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |y| |alist|)
+             (DO ((G167267
+                      (TIMES (SPADDIFFERENCE |px| 4)
+                             (SPADDIFFERENCE |py| 4)))
+                  (|i| 1 (QSADD1 |i|)))
+                 ((QSGREATERP |i| G167267) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |cList| (CONS |right| |cList|))))))
+             (SPADLET |cstring| (|bcwords2liststring| |cList|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |py|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |muList| (CONS |right| |muList|))))))
+             (SPADLET |mustring| (|bcwords2liststring| |muList|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |px|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |lamList|
+                                     (CONS |right| |lamList|))))))
+             (SPADLET |lamstring| (|bcwords2liststring| |lamList|))
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |one|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |two|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |xlist| (CONS |two| |xlist|))
+                            (SPADLET |ylist| (CONS |one| |ylist|))))))
+             (SPADLET |xstring| (|bcwords2liststring| |xlist|))
+             (SPADLET |ystring| (|bcwords2liststring| |ylist|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02def(") (STRINGIMAGE |m|)
+                               '|, | (STRINGIMAGE |px|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |py|) '|,[|
+                               |xstring| '|],[| |ystring| '|],[|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |lamstring| '|],[| |mustring|
+                               '|],[| |cstring| '|],|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02dff() ==
+;  htInitPage('"E02DFF - Evaluation of a fitted bicubic spline at a mesh of points",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02dff} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02dff| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Evaluates a bicubic spline at all the points on a rectangular ")
+;    (text . "grid defined by \htbitmap{mx} points ")
+;    (text . "\htbitmap{xq}on the x-axis and \htbitmap{my}")
+;    (text . "points \htbitmap{yr} on the y-axis, from its B-spline ")
+;    (text . "representation \center{\htbitmap{e02daf}} \newline with knot sets ")
+;    (text . "\{\lambda\} and \{\mu\}. ")
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "\newline Grid points on x-axis \htbitmap{mx}: ")
+;    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;    (text . "Grid points on y-axis \htbitmap{my}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 7 mx PI))
+;    (text . "\tab{34} ")
+;    (bcStrings (6 6 my PI))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} ")
+;    (text . "Number of (interior & exterior) knots \lambda, ")
+;    (text . "\htbitmap{px} \htbitmap{great=} 8: \newline\tab{2} ")
+;    (bcStrings (6 11 px PI))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} ")
+;    (text . "Number of (interior & exterior) knots \mu, ")
+;    (text . "\htbitmap{py} \htbitmap{great=} 8: \newline\tab{2} ")
+;    (bcStrings (6 10 py PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02dffSolve)
+;  htShowPage()
+
+(DEFUN |e02dff| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02DFF - Evaluation of a fitted bicubic spline at a mesh of points")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02dff} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02dff| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Evaluates a bicubic spline at all the points on a rectangular ")
+          (|text| . "grid defined by \\htbitmap{mx} points ")
+          (|text| . "\\htbitmap{xq}on the x-axis and \\htbitmap{my}")
+          (|text|
+           . "points \\htbitmap{yr} on the y-axis, from its B-spline ")
+          (|text|
+           . "representation \\center{\\htbitmap{e02daf}} \\newline with knot sets ")
+          (|text| . "\\{\\lambda\\} and \\{\\mu\\}. ")
+          (|text| . "\\blankline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "\\newline Grid points on x-axis \\htbitmap{mx}: ")
+          (|text| . "\\tab{32} \\menuitemstyle{}\\tab{34}")
+          (|text| . "Grid points on y-axis \\htbitmap{my}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 7 |mx| PI))
+          (|text| . "\\tab{34} ") (|bcStrings| (6 6 |my| PI))
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} ")
+          (|text| . "Number of (interior & exterior) knots \\lambda, ")
+          (|text|
+           . "\\htbitmap{px} \\htbitmap{great=} 8: \\newline\\tab{2} ")
+          (|bcStrings| (6 11 |px| PI)) (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} ")
+          (|text| . "Number of (interior & exterior) knots \\mu, ")
+          (|text|
+           . "\\htbitmap{py} \\htbitmap{great=} 8: \\newline\\tab{2} ")
+          (|bcStrings| (6 10 |py| PI)) (|text| . "\\blankline ")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02dffSolve|)
+    (|htShowPage|)))
+
+;e02dffSolve htPage ==
+;  mx :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'mx)
+;    objValUnwrap htpLabelSpadValue(htPage, 'mx)
+;  my :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'my)
+;    objValUnwrap htpLabelSpadValue(htPage, 'my)
+;  px :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'px)
+;    objValUnwrap htpLabelSpadValue(htPage, 'px)
+;  py :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'py)
+;    objValUnwrap htpLabelSpadValue(htPage, 'py)
+;  nwrk1 := 4*mx + px
+;  nwrk2 := 4*my + py
+;  nwrklist := [nwrk1,nwrk2]
+;  nwrkmin := APPLY ('MIN, nwrklist)
+;  lwrk := nwrkmin
+;  liwrk :=
+;    nwrkmin = nwrk2 => my + py -4
+;    mx + px -4
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  ((mx = '7 and my = '6) and (px = '11 and py = '10)) =>
+;    e02dffDefaultSolve(htPage,lwrk,liwrk,ifail)
+;  xList :=
+;    "append"/[fx(i) for i in 1..mx] where fx(i) ==
+;      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, xnam, 'F]]]
+;  yList :=
+;    "append"/[fy(i) for i in 1..my] where fy(i) ==
+;      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, ynam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} Enter values of ")
+;  prefix := STRCONC(prefix,"\htbitmap{yr} : \newline")
+;  yList := [['text,:prefix],:yList]
+;  lamList :=
+;    "append"/[flam(i) for i in 1..px] where flam(i) ==
+;      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, lnam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{}\tab{2} {\it \lambda(nxest)}:\newline")
+;  lamList := [['text,:prefix],:lamList]
+;  muList :=
+;    "append"/[fmu(i) for i in 1..(py)] where fmu(i) ==
+;      mnam := INTERN STRCONC ('"m",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, mnam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} {\it mu(nyest)}:")
+;  prefix := STRCONC(prefix,"\newline ")
+;  muList := [['text,:prefix],:muList]
+;  cList :=
+;    "append"/[fp(i) for i in 1..((px-4)*(py-4))] where fp(i) ==
+;      pnam := INTERN STRCONC ('"p",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, pnam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{}\tab{2} Enter values of ")
+;  prefix := STRCONC(prefix,"{\it c((px-4)*(py-4))}: \newline")
+;  cList := [['text,:prefix],:cList]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :xList,:yList,:lamList,:muList,:cList]
+;  page := htInitPage('"E02DFF - Evaluation of a fitted bicubic spline at a mesh of points",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Values of \htbitmap{xr}:\newline "
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02dffGen)
+;  htpSetProperty(page,'mx,mx)
+;  htpSetProperty(page,'my,my)
+;  htpSetProperty(page,'px,px)
+;  htpSetProperty(page,'py,py)
+;  htpSetProperty(page,'lwrk,lwrk)
+;  htpSetProperty(page,'liwrk,liwrk)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02dffSolve,fx| (|i|)
+  (PROG (|xnam|)
+    (RETURN
+      (SEQ (SPADLET |xnam|
+                    (INTERN (STRCONC (MAKESTRING "x")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |xnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02dffSolve,fy| (|i|)
+  (PROG (|ynam|)
+    (RETURN
+      (SEQ (SPADLET |ynam|
+                    (INTERN (STRCONC (MAKESTRING "y")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |ynam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02dffSolve,flam| (|i|)
+  (PROG (|lnam|)
+    (RETURN
+      (SEQ (SPADLET |lnam|
+                    (INTERN (STRCONC (MAKESTRING "l")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |lnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02dffSolve,fmu| (|i|)
+  (PROG (|mnam|)
+    (RETURN
+      (SEQ (SPADLET |mnam|
+                    (INTERN (STRCONC (MAKESTRING "m")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |mnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02dffSolve,fp| (|i|)
+  (PROG (|pnam|)
+    (RETURN
+      (SEQ (SPADLET |pnam|
+                    (INTERN (STRCONC (MAKESTRING "p")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |pnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02dffSolve| (|htPage|)
+  (PROG (|mx| |my| |px| |py| |nwrk1| |nwrk2| |nwrklist| |nwrkmin|
+              |lwrk| |liwrk| |error| |ifail| |xList| |yList| |lamList|
+              |muList| |prefix| |cList| |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |mx|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|mx|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|mx|)))))
+             (SPADLET |my|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|my|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|my|)))))
+             (SPADLET |px|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|px|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|px|)))))
+             (SPADLET |py|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|py|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|py|)))))
+             (SPADLET |nwrk1| (PLUS (TIMES 4 |mx|) |px|))
+             (SPADLET |nwrk2| (PLUS (TIMES 4 |my|) |py|))
+             (SPADLET |nwrklist| (CONS |nwrk1| (CONS |nwrk2| NIL)))
+             (SPADLET |nwrkmin| (APPLY 'MIN |nwrklist|))
+             (SPADLET |lwrk| |nwrkmin|)
+             (SPADLET |liwrk|
+                      (COND
+                        ((BOOT-EQUAL |nwrkmin| |nwrk2|)
+                         (SPADDIFFERENCE (PLUS |my| |py|) 4))
+                        ('T (SPADDIFFERENCE (PLUS |mx| |px|) 4))))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((AND (BOOT-EQUAL |mx| '7) (BOOT-EQUAL |my| '6)
+                     (BOOT-EQUAL |px| '11) (BOOT-EQUAL |py| '10))
+                (|e02dffDefaultSolve| |htPage| |lwrk| |liwrk| |ifail|))
+               ('T
+                (SPADLET |xList|
+                         (PROG (G167375)
+                           (SPADLET G167375 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |mx|) G167375)
+                               (SEQ (EXIT
+                                     (SETQ G167375
+                                      (APPEND G167375
+                                       (|e02dffSolve,fx| |i|)))))))))
+                (SPADLET |yList|
+                         (PROG (G167383)
+                           (SPADLET G167383 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |my|) G167383)
+                               (SEQ (EXIT
+                                     (SETQ G167383
+                                      (APPEND G167383
+                                       (|e02dffSolve,fy| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                             "\\blankline \\menuitemstyle{} \\tab{2} Enter values of "))
+                (SPADLET |prefix|
+                         (STRCONC |prefix|
+                                  '|\\htbitmap{yr} : \\newline|))
+                (SPADLET |yList|
+                         (CONS (CONS '|text| |prefix|) |yList|))
+                (SPADLET |lamList|
+                         (PROG (G167391)
+                           (SPADLET G167391 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |px|) G167391)
+                               (SEQ (EXIT
+                                     (SETQ G167391
+                                      (APPEND G167391
+                                       (|e02dffSolve,flam| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                             "\\blankline \\menuitemstyle{}\\tab{2} {\\it \\lambda(nxest)}:\\newline"))
+                (SPADLET |lamList|
+                         (CONS (CONS '|text| |prefix|) |lamList|))
+                (SPADLET |muList|
+                         (PROG (G167399)
+                           (SPADLET G167399 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |py|) G167399)
+                               (SEQ (EXIT
+                                     (SETQ G167399
+                                      (APPEND G167399
+                                       (|e02dffSolve,fmu| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                  "\\blankline \\menuitemstyle{} \\tab{2} {\\it mu(nyest)}:"))
+                (SPADLET |prefix| (STRCONC |prefix| '|\\newline |))
+                (SPADLET |muList|
+                         (CONS (CONS '|text| |prefix|) |muList|))
+                (SPADLET |cList|
+                         (PROG (G167407)
+                           (SPADLET G167407 NIL)
+                           (RETURN
+                             (DO ((G167412
+                                      (TIMES (SPADDIFFERENCE |px| 4)
+                                       (SPADDIFFERENCE |py| 4)))
+                                  (|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| G167412) G167407)
+                               (SEQ (EXIT
+                                     (SETQ G167407
+                                      (APPEND G167407
+                                       (|e02dffSolve,fp| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                     "\\blankline \\menuitemstyle{}\\tab{2} Enter values of "))
+                (SPADLET |prefix|
+                         (STRCONC |prefix|
+                                  '|{\\it c((px-4)*(py-4))}: \\newline|))
+                (SPADLET |cList|
+                         (CONS (CONS '|text| |prefix|) |cList|))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               (APPEND |xList|
+                                       (APPEND |yList|
+                                        (APPEND |lamList|
+                                         (APPEND |muList| |cList|))))))
+                (SPADLET |page|
+                         (|htInitPage|
+                             (MAKESTRING
+          "E02DFF - Evaluation of a fitted bicubic spline at a mesh of points")
+                             NIL))
+                (|htSay| (MAKESTRING
+              "\\menuitemstyle{}\\tab{2} Values of \\htbitmap{xr}:\\newline "))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02dffGen|)
+                (|htpSetProperty| |page| '|mx| |mx|)
+                (|htpSetProperty| |page| '|my| |my|)
+                (|htpSetProperty| |page| '|px| |px|)
+                (|htpSetProperty| |page| '|py| |py|)
+                (|htpSetProperty| |page| '|lwrk| |lwrk|)
+                (|htpSetProperty| |page| '|liwrk| |liwrk|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02dffDefaultSolve (htPage,lwrk,liwrk,ifail) ==
+;  mx := '7
+;  my := '6
+;  px := '11
+;  py := '10
+;  page := htInitPage('"E02DFF - Evaluation of a fitted bicubic spline at a mesh of points",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} Enter values of \htbitmap{xr}:")
+;    (text . "\newline ")
+;    (bcStrings (8 "1" x1 F))
+;    (bcStrings (8 "1.1" x2 F))
+;    (bcStrings (8 "1.3" x3 F))
+;    (bcStrings (8 "1.4" x4 F))
+;    (bcStrings (8 "1.5" x5 F))
+;    (bcStrings (8 "1.7" x6 F))
+;    (bcStrings (8 "2" x7 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} Enter values of \htbitmap{yr}:")
+;    (text . "\newline ")
+;    (bcStrings (8 "0" y1 F))
+;    (bcStrings (8 "0.2" y2 F))
+;    (bcStrings (8 "0.4" y3 F))
+;    (bcStrings (8 "0.6" y4 F))
+;    (bcStrings (8 "0.8" y5 F))
+;    (bcStrings (8 "1" y6 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} Enter values of {\it \lambda(nxest)}:")
+;    (text . "\newline ")
+;    (bcStrings (8 "1" l1 F))
+;    (bcStrings (8 "1" l2 F))
+;    (bcStrings (8 "1" l3 F))
+;    (bcStrings (8 "1" l4 F))
+;    (bcStrings (8 "1.3" l5 F))
+;    (bcStrings (8 "1.5" l6 F))
+;    (bcStrings (8 "1.6" l7 F))
+;    (bcStrings (8 "2" l8 F))
+;    (bcStrings (8 "2" l9 F))
+;    (bcStrings (8 "2" l10 F))
+;    (bcStrings (8 "2" l11 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} Enter values of {\it \mu(nyest)}:")
+;    (text . "\newline ")
+;    (bcStrings (8 "0" mu1 F))
+;    (bcStrings (8 "0" mu2 F))
+;    (bcStrings (8 "0" mu3 F))
+;    (bcStrings (8 "0" mu4 F))
+;    (bcStrings (8 "0.4" mu5 F))
+;    (bcStrings (8 "0.7" mu6 F))
+;    (bcStrings (8 "1" mu7 F))
+;    (bcStrings (8 "1" mu8 F))
+;    (bcStrings (8 "1" mu9 F))
+;    (bcStrings (8 "1" mu10 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} Enter values of {\it c((px-4)*(py-4))}:")
+;    (text . "\newline ")
+;    (bcStrings (8 "1" c1 F))
+;    (bcStrings (8 "1.1333" c2 F))
+;    (bcStrings (8 "1.3667" c3 F))
+;    (bcStrings (8 "1.7" c4 F))
+;    (bcStrings (8 "1.9" c5 F))
+;    (bcStrings (8 "2" c6 F))
+;    (bcStrings (8 "1.2" c7 F))
+;    (bcStrings (8 "1.3333" c8 F))
+;    (bcStrings (8 "1.5667" c9 F))
+;    (bcStrings (8 "1.9" c10 F))
+;    (bcStrings (8 "2.1" c11 F))
+;    (bcStrings (8 "2.2" c12 F))
+;    (bcStrings (8 "1.5833" c13 F))
+;    (bcStrings (8 "1.7167" c14 F))
+;    (bcStrings (8 "1.95" c15 F))
+;    (bcStrings (8 "2.2833" c16 F))
+;    (bcStrings (8 "2.4833" c17 F))
+;    (bcStrings (8 "2.5833" c18 F))
+;    (bcStrings (8 "2.1433" c19 F))
+;    (bcStrings (8 "2.2767" c20 F))
+;    (bcStrings (8 "2.51" c21 F))
+;    (bcStrings (8 "2.8433" c22 F))
+;    (bcStrings (8 "3.0433" c23 F))
+;    (bcStrings (8 "3.1433" c24 F))
+;    (bcStrings (8 "2.8667" c25 F))
+;    (bcStrings (8 "3" c26 F))
+;    (bcStrings (8 "3.2333" c27 F))
+;    (bcStrings (8 "3.5667" c28 F))
+;    (bcStrings (8 "3.7667" c29 F))
+;    (bcStrings (8 "3.8667" c30 F))
+;    (bcStrings (8 "3.4667" c31 F))
+;    (bcStrings (8 "3.6" c32 F))
+;    (bcStrings (8 "3.8333" c33 F))
+;    (bcStrings (8 "4.1667" c34 F))
+;    (bcStrings (8 "4.3667" c35 F))
+;    (bcStrings (8 "4.4667" c36 F))
+;    (bcStrings (8 "4" c37 F))
+;    (bcStrings (8 "4.1333" c38 F))
+;    (bcStrings (8 "4.3667" c39 F))
+;    (bcStrings (8 "4.7" c40 F))
+;    (bcStrings (8 "4.9" c41 F))
+;    (bcStrings (8 "5" c42 F))
+;    (text . "\blankline"))
+;  htMakeDoneButton('"Continue",'e02dffGen)
+;  htpSetProperty(page,'mx,mx)
+;  htpSetProperty(page,'my,my)
+;  htpSetProperty(page,'px,px)
+;  htpSetProperty(page,'py,py)
+;  htpSetProperty(page,'lwrk,lwrk)
+;  htpSetProperty(page,'liwrk,liwrk)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02dffDefaultSolve| (|htPage| |lwrk| |liwrk| |ifail|)
+  (PROG (|mx| |my| |px| |py| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |mx| '7)
+        (SPADLET |my| '6)
+        (SPADLET |px| '11)
+        (SPADLET |py| '10)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02DFF - Evaluation of a fitted bicubic spline at a mesh of points")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text| . "\\newline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Enter values of \\htbitmap{xr}:")
+              (|text| . "\\newline ") (|bcStrings| (8 "1" |x1| F))
+              (|bcStrings| (8 "1.1" |x2| F))
+              (|bcStrings| (8 "1.3" |x3| F))
+              (|bcStrings| (8 "1.4" |x4| F))
+              (|bcStrings| (8 "1.5" |x5| F))
+              (|bcStrings| (8 "1.7" |x6| F))
+              (|bcStrings| (8 "2" |x7| F)) (|text| . "\\blankline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Enter values of \\htbitmap{yr}:")
+              (|text| . "\\newline ") (|bcStrings| (8 "0" |y1| F))
+              (|bcStrings| (8 "0.2" |y2| F))
+              (|bcStrings| (8 "0.4" |y3| F))
+              (|bcStrings| (8 "0.6" |y4| F))
+              (|bcStrings| (8 "0.8" |y5| F))
+              (|bcStrings| (8 "1" |y6| F)) (|text| . "\\blankline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Enter values of {\\it \\lambda(nxest)}:")
+              (|text| . "\\newline ") (|bcStrings| (8 "1" |l1| F))
+              (|bcStrings| (8 "1" |l2| F)) (|bcStrings| (8 "1" |l3| F))
+              (|bcStrings| (8 "1" |l4| F))
+              (|bcStrings| (8 "1.3" |l5| F))
+              (|bcStrings| (8 "1.5" |l6| F))
+              (|bcStrings| (8 "1.6" |l7| F))
+              (|bcStrings| (8 "2" |l8| F)) (|bcStrings| (8 "2" |l9| F))
+              (|bcStrings| (8 "2" |l10| F))
+              (|bcStrings| (8 "2" |l11| F)) (|text| . "\\blankline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Enter values of {\\it \\mu(nyest)}:")
+              (|text| . "\\newline ") (|bcStrings| (8 "0" |mu1| F))
+              (|bcStrings| (8 "0" |mu2| F))
+              (|bcStrings| (8 "0" |mu3| F))
+              (|bcStrings| (8 "0" |mu4| F))
+              (|bcStrings| (8 "0.4" |mu5| F))
+              (|bcStrings| (8 "0.7" |mu6| F))
+              (|bcStrings| (8 "1" |mu7| F))
+              (|bcStrings| (8 "1" |mu8| F))
+              (|bcStrings| (8 "1" |mu9| F))
+              (|bcStrings| (8 "1" |mu10| F)) (|text| . "\\blankline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Enter values of {\\it c((px-4)*(py-4))}:")
+              (|text| . "\\newline ") (|bcStrings| (8 "1" |c1| F))
+              (|bcStrings| (8 "1.1333" |c2| F))
+              (|bcStrings| (8 "1.3667" |c3| F))
+              (|bcStrings| (8 "1.7" |c4| F))
+              (|bcStrings| (8 "1.9" |c5| F))
+              (|bcStrings| (8 "2" |c6| F))
+              (|bcStrings| (8 "1.2" |c7| F))
+              (|bcStrings| (8 "1.3333" |c8| F))
+              (|bcStrings| (8 "1.5667" |c9| F))
+              (|bcStrings| (8 "1.9" |c10| F))
+              (|bcStrings| (8 "2.1" |c11| F))
+              (|bcStrings| (8 "2.2" |c12| F))
+              (|bcStrings| (8 "1.5833" |c13| F))
+              (|bcStrings| (8 "1.7167" |c14| F))
+              (|bcStrings| (8 "1.95" |c15| F))
+              (|bcStrings| (8 "2.2833" |c16| F))
+              (|bcStrings| (8 "2.4833" |c17| F))
+              (|bcStrings| (8 "2.5833" |c18| F))
+              (|bcStrings| (8 "2.1433" |c19| F))
+              (|bcStrings| (8 "2.2767" |c20| F))
+              (|bcStrings| (8 "2.51" |c21| F))
+              (|bcStrings| (8 "2.8433" |c22| F))
+              (|bcStrings| (8 "3.0433" |c23| F))
+              (|bcStrings| (8 "3.1433" |c24| F))
+              (|bcStrings| (8 "2.8667" |c25| F))
+              (|bcStrings| (8 "3" |c26| F))
+              (|bcStrings| (8 "3.2333" |c27| F))
+              (|bcStrings| (8 "3.5667" |c28| F))
+              (|bcStrings| (8 "3.7667" |c29| F))
+              (|bcStrings| (8 "3.8667" |c30| F))
+              (|bcStrings| (8 "3.4667" |c31| F))
+              (|bcStrings| (8 "3.6" |c32| F))
+              (|bcStrings| (8 "3.8333" |c33| F))
+              (|bcStrings| (8 "4.1667" |c34| F))
+              (|bcStrings| (8 "4.3667" |c35| F))
+              (|bcStrings| (8 "4.4667" |c36| F))
+              (|bcStrings| (8 "4" |c37| F))
+              (|bcStrings| (8 "4.1333" |c38| F))
+              (|bcStrings| (8 "4.3667" |c39| F))
+              (|bcStrings| (8 "4.7" |c40| F))
+              (|bcStrings| (8 "4.9" |c41| F))
+              (|bcStrings| (8 "5" |c42| F)) (|text| . "\\blankline")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02dffGen|)
+        (|htpSetProperty| |page| '|mx| |mx|)
+        (|htpSetProperty| |page| '|my| |my|)
+        (|htpSetProperty| |page| '|px| |px|)
+        (|htpSetProperty| |page| '|py| |py|)
+        (|htpSetProperty| |page| '|lwrk| |lwrk|)
+        (|htpSetProperty| |page| '|liwrk| |liwrk|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02dffGen htPage ==
+;  mx := htpProperty(htPage,'mx)
+;  my := htpProperty(htPage,'my)
+;  px := htpProperty(htPage,'px)
+;  py := htpProperty(htPage,'py)
+;  lwrk := htpProperty(htPage,'lwrk)
+;  liwrk := htpProperty(htPage,'liwrk)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  y := alist
+;  -- c
+;  for i in 1..((px-4)*(py-4)) repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    cList := [right,:cList]
+;  cstring := bcwords2liststring cList
+;  -- mu
+;  for i in 1..py repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    muList := [right,:muList]
+;  mustring := bcwords2liststring muList
+;  -- lamda
+;  for i in 1..px repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    lamList := [right,:lamList]
+;  lamstring := bcwords2liststring lamList
+;  -- y
+;  for i in 1..my repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    yList := [right,:yList]
+;  ystring := bcwords2liststring yList
+;  -- x
+;  for i in 1..mx repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    xList := [right,:xList]
+;  xstring := bcwords2liststring xList
+;  prefix := STRCONC('"e02dff(",STRINGIMAGE mx,", ",STRINGIMAGE my,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE px,", ",STRINGIMAGE py,",[")
+;  prefix := STRCONC(prefix,xstring,"],[",ystring,"],[",lamstring,"],[")
+;  prefix := STRCONC(prefix,mustring,"],[",cstring,"],",STRINGIMAGE lwrk,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE liwrk,", ",STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02dffGen| (|htPage|)
+  (PROG (|mx| |my| |px| |py| |lwrk| |liwrk| |ifail| |alist| |cList|
+              |cstring| |muList| |mustring| |lamList| |lamstring|
+              |yList| |ystring| |right| |y| |xList| |xstring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |mx| (|htpProperty| |htPage| '|mx|))
+             (SPADLET |my| (|htpProperty| |htPage| '|my|))
+             (SPADLET |px| (|htpProperty| |htPage| '|px|))
+             (SPADLET |py| (|htpProperty| |htPage| '|py|))
+             (SPADLET |lwrk| (|htpProperty| |htPage| '|lwrk|))
+             (SPADLET |liwrk| (|htpProperty| |htPage| '|liwrk|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |y| |alist|)
+             (DO ((G167475
+                      (TIMES (SPADDIFFERENCE |px| 4)
+                             (SPADDIFFERENCE |py| 4)))
+                  (|i| 1 (QSADD1 |i|)))
+                 ((QSGREATERP |i| G167475) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |cList| (CONS |right| |cList|))))))
+             (SPADLET |cstring| (|bcwords2liststring| |cList|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |py|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |muList| (CONS |right| |muList|))))))
+             (SPADLET |mustring| (|bcwords2liststring| |muList|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |px|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |lamList|
+                                     (CONS |right| |lamList|))))))
+             (SPADLET |lamstring| (|bcwords2liststring| |lamList|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |my|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |yList| (CONS |right| |yList|))))))
+             (SPADLET |ystring| (|bcwords2liststring| |yList|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |mx|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |xList| (CONS |right| |xList|))))))
+             (SPADLET |xstring| (|bcwords2liststring| |xList|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02dff(")
+                               (STRINGIMAGE |mx|) '|, |
+                               (STRINGIMAGE |my|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |px|) '|, |
+                               (STRINGIMAGE |py|) '|,[|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |xstring| '|],[| |ystring|
+                               '|],[| |lamstring| '|],[|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |mustring| '|],[| |cstring|
+                               '|],| (STRINGIMAGE |lwrk|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |liwrk|) '|, |
+                               (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02gaf() ==
+;  htInitPage('"E02GAF - \htbitmap{l1}-approximation by general linear function",nil)
+;  htMakePage '(
+;    (domainConditions
+;      (isDomain F (Float))
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02gaf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02gaf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Calculates an \htbitmap{l1} solution to the over determined system")
+;    (text . " of linear equations {\it Ax = b}, where A is an {\it m} by {\it n")
+;    (text . "} matrix, {\it x} is an {\it n} element vector, and {\it b} is an ")
+;    (text . "{\it m} element vector.  The matrix {\it A} need not be of full ")
+;    (text . "rank. \blankline ")
+;    (text . "\menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of rows of {\it A}, {\it m}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 5 m PI))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of columns of {\it A}, {\it n}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 3 n PI))
+;--    (text . "\blankline ")
+;--    (text . "\menuitemstyle{}\tab{2} \newline ")
+;--    (text . "First dimension of {\it A(la,n+2)}, {\it la}\htbitmap{great=}")
+;--    (text . " {\it m + 2}: \newline\tab{2} ")
+;--    (bcStrings (6 7 la PI))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} \newline ")
+;    (text . "Tolerance (default is zero), {\it toler}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (10 "0.0" toler F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02gafSolve)
+;  htShowPage()
+
+(DEFUN |e02gaf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02GAF - \\htbitmap{l1}-approximation by general linear function")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| F (|Float|))
+              (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02gaf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02gaf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Calculates an \\htbitmap{l1} solution to the over determined system")
+          (|text|
+           . " of linear equations {\\it Ax = b}, where A is an {\\it m} by {\\it n")
+          (|text|
+           . "} matrix, {\\it x} is an {\\it n} element vector, and {\\it b} is an ")
+          (|text|
+           . "{\\it m} element vector.  The matrix {\\it A} need not be of full ")
+          (|text| . "rank. \\blankline ")
+          (|text| . "\\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Number of rows of {\\it A}, {\\it m}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 5 |m| PI))
+          (|text| . "\\blankline ")
+          (|text| . "\\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Number of columns of {\\it A}, {\\it n}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 3 |n| PI))
+          (|text| . "\\blankline ")
+          (|text| . "\\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Tolerance (default is zero), {\\it toler}: ")
+          (|text| . "\\newline\\tab{2} ")
+          (|bcStrings| (10 "0.0" |toler| F)) (|text| . "\\blankline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02gafSolve|)
+    (|htShowPage|)))
+
+;e02gafSolve htPage ==
+;  m :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
+;    objValUnwrap htpLabelSpadValue(htPage, 'm)
+;  n :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n)
+;    objValUnwrap htpLabelSpadValue(htPage, 'n)
+;  la := m+2
+;--    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'la)
+;--    objValUnwrap htpLabelSpadValue(htPage, 'la)
+;  toler := htpLabelInputString(htPage,'toler)
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  ((m = 5 and n = 3) and la = 7) => e02gafDefaultSolve (htPage,toler,ifail)
+;  labelList :=
+;    "append"/[fc(i,n) for i in 1..la] where fc(i,n) ==
+;      tempList :=
+;        "append"/[fr(i,j) for j in 1..(n+2)] where fr(i,j) ==
+;          fnam := INTERN STRCONC ('"f",STRINGIMAGE i, STRINGIMAGE j)
+;          [['bcStrings,[9, 0.0, fnam, 'F]]]
+;      prefix := ('"\newline ")
+;      tempList := [['text,:prefix],:tempList]
+;  bList :=
+;    "append"/[fb(i) for i in 1..m] where fb(i) ==
+;      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
+;      [['bcStrings,[9, 0.0, lnam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} Values of {\it B(m)}: \newline")
+;  bList := [['text,:prefix],:bList]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList,:bList]
+;  page := htInitPage('"E02GAF - \htbitmap{l1}-approximation by general linear function",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Values of {\it A(la,n+2)}:"
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02gafGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'n,n)
+;  htpSetProperty(page,'la,la)
+;  htpSetProperty(page,'toler,toler)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02gafSolve,fr| (|i| |j|)
+  (PROG (|fnam|)
+    (RETURN
+      (SEQ (SPADLET |fnam|
+                    (INTERN (STRCONC (MAKESTRING "f") (STRINGIMAGE |i|)
+                                     (STRINGIMAGE |j|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 9
+                                    (CONS 0.0
+                                     (CONS |fnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02gafSolve,fc| (|i| |n|)
+  (PROG (|prefix| |tempList|)
+    (RETURN
+      (SEQ (SPADLET |tempList|
+                    (PROG (G167566)
+                      (SPADLET G167566 NIL)
+                      (RETURN
+                        (DO ((G167571 (PLUS |n| 2))
+                             (|j| 1 (QSADD1 |j|)))
+                            ((QSGREATERP |j| G167571) G167566)
+                          (SEQ (EXIT (SETQ G167566
+                                      (APPEND G167566
+                                       (|e02gafSolve,fr| |i| |j|)))))))))
+           (SPADLET |prefix| (MAKESTRING "\\newline "))
+           (EXIT (SPADLET |tempList|
+                          (CONS (CONS '|text| |prefix|) |tempList|)))))))
+
+(DEFUN |e02gafSolve,fb| (|i|)
+  (PROG (|lnam|)
+    (RETURN
+      (SEQ (SPADLET |lnam|
+                    (INTERN (STRCONC (MAKESTRING "l")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 9
+                                    (CONS 0.0
+                                     (CONS |lnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02gafSolve| (|htPage|)
+  (PROG (|m| |n| |la| |toler| |error| |ifail| |labelList| |prefix|
+             |bList| |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|m|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|m|)))))
+             (SPADLET |n|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|n|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|n|)))))
+             (SPADLET |la| (PLUS |m| 2))
+             (SPADLET |toler|
+                      (|htpLabelInputString| |htPage| '|toler|))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((AND (EQL |m| 5) (EQL |n| 3) (EQL |la| 7))
+                (|e02gafDefaultSolve| |htPage| |toler| |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G167590)
+                           (SPADLET G167590 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |la|) G167590)
+                               (SEQ (EXIT
+                                     (SETQ G167590
+                                      (APPEND G167590
+                                       (|e02gafSolve,fc| |i| |n|)))))))))
+                (SPADLET |bList|
+                         (PROG (G167598)
+                           (SPADLET G167598 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |m|) G167598)
+                               (SEQ (EXIT
+                                     (SETQ G167598
+                                      (APPEND G167598
+                                       (|e02gafSolve,fb| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+    "\\blankline \\menuitemstyle{} \\tab{2} Values of {\\it B(m)}: \\newline"))
+                (SPADLET |bList|
+                         (CONS (CONS '|text| |prefix|) |bList|))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               (APPEND |labelList| |bList|)))
+                (SPADLET |page|
+                         (|htInitPage|
+                             (MAKESTRING
+            "E02GAF - \\htbitmap{l1}-approximation by general linear function")
+                             NIL))
+                (|htSay| (MAKESTRING
+                      "\\menuitemstyle{}\\tab{2} Values of {\\it A(la,n+2)}:"))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02gafGen|)
+                (|htpSetProperty| |page| '|m| |m|)
+                (|htpSetProperty| |page| '|n| |n|)
+                (|htpSetProperty| |page| '|la| |la|)
+                (|htpSetProperty| |page| '|toler| |toler|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02gafDefaultSolve (htPage,toler,ifail) ==
+;  m := '5
+;  n := '3
+;  la := '7
+;  page := htInitPage('"E02GAF - \htbitmap{l1}-approximation by general linear function",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} Values of {\it A(la,n+2)}:")
+;    (text . "\newline ")
+;    (bcStrings (9 "1.0" a11 F))
+;    (bcStrings (9 "1.0" a12 F))
+;    (bcStrings (9 "1.0" a13 F))
+;    (bcStrings (9 "0.0" a14 F))
+;    (bcStrings (9 "0.0" a15 F))
+;    (text . "\newline ")
+;    (bcStrings (9 "exp(0.2)" a21 F))
+;    (bcStrings (9 "exp(-0.2)" a22 F))
+;    (bcStrings (9 "1.0" a23 F))
+;    (bcStrings (9 "0.0" a24 F))
+;    (bcStrings (9 "0.0" a25 F))
+;    (text . "\newline ")
+;    (bcStrings (9 "exp(0.4)" a31 F))
+;    (bcStrings (9 "exp(-0.4)" a32 F))
+;    (bcStrings (9 "1.0" a33 F))
+;    (bcStrings (9 "0.0" a34 F))
+;    (bcStrings (9 "0.0" a35 F))
+;    (text . "\newline ")
+;    (bcStrings (9 "exp(0.6)" a41 F))
+;    (bcStrings (9 "exp(-0.6)" a42 F))
+;    (bcStrings (9 "1.0" a43 F))
+;    (bcStrings (9 "0.0" a44 F))
+;    (bcStrings (9 "0.0" a45 F))
+;    (text . "\newline ")
+;    (bcStrings (9 "exp(0.8)" a51 F))
+;    (bcStrings (9 "exp(-0.8)" a52 F))
+;    (bcStrings (9 "1.0" a53 F))
+;    (bcStrings (9 "0.0" a54 F))
+;    (bcStrings (9 "0.0" a55 F))
+;    (text . "\newline ")
+;    (bcStrings (9 "0.0" a61 F))
+;    (bcStrings (9 "0.0" a62 F))
+;    (bcStrings (9 "0.0" a63 F))
+;    (bcStrings (9 "0.0" a64 F))
+;    (bcStrings (9 "0.0" a65 F))
+;    (text . "\newline ")
+;    (bcStrings (9 "0.0" a71 F))
+;    (bcStrings (9 "0.0" a72 F))
+;    (bcStrings (9 "0.0" a73 F))
+;    (bcStrings (9 "0.0" a74 F))
+;    (bcStrings (9 "0.0" a75 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} Values of {\it B(m)}:")
+;    (text . "\newline ")
+;    (bcStrings (9 "4.501" b1 F))
+;    (bcStrings (9 "4.36" b2 F))
+;    (bcStrings (9 "4.333" b3 F))
+;    (bcStrings (9 "4.418" b4 F))
+;    (bcStrings (9 "4.625" b5 F)))
+;  htMakeDoneButton('"Continue",'e02gafGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'n,n)
+;  htpSetProperty(page,'toler,toler)
+;  htpSetProperty(page,'la,la)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02gafDefaultSolve| (|htPage| |toler| |ifail|)
+  (PROG (|m| |n| |la| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |m| '5)
+        (SPADLET |n| '3)
+        (SPADLET |la| '7)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02GAF - \\htbitmap{l1}-approximation by general linear function")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text| . "\\newline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of {\\it A(la,n+2)}:")
+              (|text| . "\\newline ") (|bcStrings| (9 "1.0" |a11| F))
+              (|bcStrings| (9 "1.0" |a12| F))
+              (|bcStrings| (9 "1.0" |a13| F))
+              (|bcStrings| (9 "0.0" |a14| F))
+              (|bcStrings| (9 "0.0" |a15| F)) (|text| . "\\newline ")
+              (|bcStrings| (9 "exp(0.2)" |a21| F))
+              (|bcStrings| (9 "exp(-0.2)" |a22| F))
+              (|bcStrings| (9 "1.0" |a23| F))
+              (|bcStrings| (9 "0.0" |a24| F))
+              (|bcStrings| (9 "0.0" |a25| F)) (|text| . "\\newline ")
+              (|bcStrings| (9 "exp(0.4)" |a31| F))
+              (|bcStrings| (9 "exp(-0.4)" |a32| F))
+              (|bcStrings| (9 "1.0" |a33| F))
+              (|bcStrings| (9 "0.0" |a34| F))
+              (|bcStrings| (9 "0.0" |a35| F)) (|text| . "\\newline ")
+              (|bcStrings| (9 "exp(0.6)" |a41| F))
+              (|bcStrings| (9 "exp(-0.6)" |a42| F))
+              (|bcStrings| (9 "1.0" |a43| F))
+              (|bcStrings| (9 "0.0" |a44| F))
+              (|bcStrings| (9 "0.0" |a45| F)) (|text| . "\\newline ")
+              (|bcStrings| (9 "exp(0.8)" |a51| F))
+              (|bcStrings| (9 "exp(-0.8)" |a52| F))
+              (|bcStrings| (9 "1.0" |a53| F))
+              (|bcStrings| (9 "0.0" |a54| F))
+              (|bcStrings| (9 "0.0" |a55| F)) (|text| . "\\newline ")
+              (|bcStrings| (9 "0.0" |a61| F))
+              (|bcStrings| (9 "0.0" |a62| F))
+              (|bcStrings| (9 "0.0" |a63| F))
+              (|bcStrings| (9 "0.0" |a64| F))
+              (|bcStrings| (9 "0.0" |a65| F)) (|text| . "\\newline ")
+              (|bcStrings| (9 "0.0" |a71| F))
+              (|bcStrings| (9 "0.0" |a72| F))
+              (|bcStrings| (9 "0.0" |a73| F))
+              (|bcStrings| (9 "0.0" |a74| F))
+              (|bcStrings| (9 "0.0" |a75| F)) (|text| . "\\blankline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of {\\it B(m)}:")
+              (|text| . "\\newline ") (|bcStrings| (9 "4.501" |b1| F))
+              (|bcStrings| (9 "4.36" |b2| F))
+              (|bcStrings| (9 "4.333" |b3| F))
+              (|bcStrings| (9 "4.418" |b4| F))
+              (|bcStrings| (9 "4.625" |b5| F))))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02gafGen|)
+        (|htpSetProperty| |page| '|m| |m|)
+        (|htpSetProperty| |page| '|n| |n|)
+        (|htpSetProperty| |page| '|toler| |toler|)
+        (|htpSetProperty| |page| '|la| |la|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02gafGen htPage ==
+;  m := htpProperty(htPage,'m)
+;  n := htpProperty(htPage,'n)
+;  la := htpProperty(htPage,'la)
+;  toler := htpProperty(htPage,'toler)
+;  ifail := htpProperty(htPage,'ifail)
+;  nplustwo := n + 2
+;  alist := htpInputAreaAlist htPage
+;  y := alist
+;  for i in 1..m repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    blist := [right,:blist]
+;  bstring := bcwords2liststring blist
+;  y := REVERSE y
+;  k := -1
+;  matform := [[y.(k := k + 1).1 for j in 0..(nplustwo-1)] for i in 0..(la-1)]
+;  matstring := bcwords2liststring [bcwords2liststring x for x in matform]
+;  prefix := STRCONC('"e02gaf(",STRINGIMAGE m,", ",STRINGIMAGE la,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE nplustwo,", ",STRINGIMAGE toler,", ")
+;  prefix := STRCONC(prefix,matstring,",[",bstring,"], ")
+;  prefix := STRCONC(prefix,STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02gafGen| (|htPage|)
+  (PROG (|m| |n| |la| |toler| |ifail| |nplustwo| |alist| |right|
+             |blist| |bstring| |y| |k| |matform| |matstring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m| (|htpProperty| |htPage| '|m|))
+             (SPADLET |n| (|htpProperty| |htPage| '|n|))
+             (SPADLET |la| (|htpProperty| |htPage| '|la|))
+             (SPADLET |toler| (|htpProperty| |htPage| '|toler|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |nplustwo| (PLUS |n| 2))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |y| |alist|)
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |m|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |blist| (CONS |right| |blist|))))))
+             (SPADLET |bstring| (|bcwords2liststring| |blist|))
+             (SPADLET |y| (REVERSE |y|))
+             (SPADLET |k| (SPADDIFFERENCE 1))
+             (SPADLET |matform|
+                      (PROG (G167646)
+                        (SPADLET G167646 NIL)
+                        (RETURN
+                          (DO ((G167651 (SPADDIFFERENCE |la| 1))
+                               (|i| 0 (QSADD1 |i|)))
+                              ((QSGREATERP |i| G167651)
+                               (NREVERSE0 G167646))
+                            (SEQ (EXIT (SETQ G167646
+                                        (CONS
+                                         (PROG (G167659)
+                                           (SPADLET G167659 NIL)
+                                           (RETURN
+                                             (DO
+                                              ((G167664
+                                                (SPADDIFFERENCE
+                                                 |nplustwo| 1))
+                                               (|j| 0 (QSADD1 |j|)))
+                                              ((QSGREATERP |j|
+                                                G167664)
+                                               (NREVERSE0 G167659))
+                                               (SEQ
+                                                (EXIT
+                                                 (SETQ G167659
+                                                  (CONS
+                                                   (ELT
+                                                    (ELT |y|
+                                                     (SPADLET |k|
+                                                      (PLUS |k| 1)))
+                                                    1)
+                                                   G167659)))))))
+                                         G167646))))))))
+             (SPADLET |matstring|
+                      (|bcwords2liststring|
+                          (PROG (G167672)
+                            (SPADLET G167672 NIL)
+                            (RETURN
+                              (DO ((G167677 |matform|
+                                    (CDR G167677))
+                                   (|x| NIL))
+                                  ((OR (ATOM G167677)
+                                    (PROGN
+                                      (SETQ |x| (CAR G167677))
+                                      NIL))
+                                   (NREVERSE0 G167672))
+                                (SEQ (EXIT
+                                      (SETQ G167672
+                                       (CONS (|bcwords2liststring| |x|)
+                                        G167672)))))))))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02gaf(") (STRINGIMAGE |m|)
+                               '|, | (STRINGIMAGE |la|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |nplustwo|) '|, |
+                               (STRINGIMAGE |toler|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |matstring| '|,[| |bstring|
+                               '|], |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02daf() ==
+;  htInitPage('"E02DAF - Least-squares surface fit, bicubic splines",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02daf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02daf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Determines a minimal, least squares bicubic B-spline surface fit")
+;    (text . "\htbitmap{e02daf} to the set of points ")
+;    (text . "{\em (\htbitmap{xr},\htbitmap{yr},\htbitmap{fr})} with weights ")
+;    (text . "\htbitmap{wr}, for r = 1,2,...,m. The user must supply internal ")
+;    (text . "knot sets {\lambda},in the x-direction and {\mu} in the ")
+;    (text . "y-direction, ")
+;    (text . "which can be thought of as dividing the data region into panels;")
+;    (text . "s(x,y) consists of a seperate bicubic polynomial in each panel, ")
+;    (text . "the polynomial joining together with second derivative ")
+;    (text . "continuity. Eight additional (external) knots are added to each ")
+;    (text . "of the knot sets by this routine. The routine minimizes \Sigma, ")
+;    (text . "the sum of squares of the weighted residuals ")
+;    (text . "\htbitmap{e02daf1}, for r = 1,2,...,m, subject to the ")
+;    (text . "given knot sets. \newline ")
+;    (text . "A call of this routine should be preceded by a call of E02ZAF ")
+;    (text . "to provide indexing information. ")
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of data points {\it m}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 30 m PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "\newline Knots in x direction {\em px}")
+;    (text . "\htbitmap{great=} 8: \tab{32} \menuitemstyle{}\tab{34}")
+;    (text . "Knots in y direction {\em py}:")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 8 px PI))
+;    (text . "\tab{34} ")
+;    (bcStrings (6 10 py PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "\newline Rank threshold {\em eps}:")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (10 "0.000001" eps F))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Dimension of point {\it npoint}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 43 npoint PI))
+;    -- include a radio button later to allow switching of
+;    -- x & y if px <= py
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02dafSolve)
+;  htShowPage()
+
+(DEFUN |e02daf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02DAF - Least-squares surface fit, bicubic splines")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02daf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02daf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text|
+           . "Determines a minimal, least squares bicubic B-spline surface fit")
+          (|text| . "\\htbitmap{e02daf} to the set of points ")
+          (|text|
+           . "{\\em (\\htbitmap{xr},\\htbitmap{yr},\\htbitmap{fr})} with weights ")
+          (|text|
+           . "\\htbitmap{wr}, for r = 1,2,...,m. The user must supply internal ")
+          (|text|
+           . "knot sets {\\lambda},in the x-direction and {\\mu} in the ")
+          (|text| . "y-direction, ")
+          (|text|
+           . "which can be thought of as dividing the data region into panels;")
+          (|text|
+           . "s(x,y) consists of a seperate bicubic polynomial in each panel, ")
+          (|text|
+           . "the polynomial joining together with second derivative ")
+          (|text|
+           . "continuity. Eight additional (external) knots are added to each ")
+          (|text|
+           . "of the knot sets by this routine. The routine minimizes \\Sigma, ")
+          (|text| . "the sum of squares of the weighted residuals ")
+          (|text|
+           . "\\htbitmap{e02daf1}, for r = 1,2,...,m, subject to the ")
+          (|text| . "given knot sets. \\newline ")
+          (|text|
+           . "A call of this routine should be preceded by a call of E02ZAF ")
+          (|text| . "to provide indexing information. ")
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Number of data points {\\it m}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 30 |m| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "\\newline Knots in x direction {\\em px}")
+          (|text|
+           . "\\htbitmap{great=} 8: \\tab{32} \\menuitemstyle{}\\tab{34}")
+          (|text| . "Knots in y direction {\\em py}:")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 8 |px| PI))
+          (|text| . "\\tab{34} ") (|bcStrings| (6 10 |py| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "\\newline Rank threshold {\\em eps}:")
+          (|text| . "\\newline\\tab{2} ")
+          (|bcStrings| (10 "0.000001" |eps| F))
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Dimension of point {\\it npoint}: ")
+          (|text| . "\\newline\\tab{2} ")
+          (|bcStrings| (6 43 |npoint| PI)) (|text| . "\\blankline ")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02dafSolve|)
+    (|htShowPage|)))
+
+;e02dafSolve htPage ==
+;  m :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
+;    objValUnwrap htpLabelSpadValue(htPage, 'm)
+;  px :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'px)
+;    objValUnwrap htpLabelSpadValue(htPage, 'px)
+;  py :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'py)
+;    objValUnwrap htpLabelSpadValue(htPage, 'py)
+;  npoint :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'npoint)
+;    objValUnwrap htpLabelSpadValue(htPage, 'npoint)
+;  nc := (px - 4)*(py - 4)
+;  nws := (2*nc + 1)*(3*py - 6) -2
+;  eps := htpLabelInputString(htPage,'eps)
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  ((m = '30 and px = '8) and py = '10) => e02dafDefaultSolve(htPage,eps,nws,npoint,ifail)
+;  labelList :=
+;    "append"/[fxy(i) for i in 1..m] where fxy(i) ==
+;      prefix := ('"\newline \tab{2} ")
+;      middle := ('"\tab{17} ")
+;      next := ('"\tab{32} ")
+;      end := ('"\tab{47} ")
+;      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
+;      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
+;      fnam := INTERN STRCONC ('"f",STRINGIMAGE i)
+;      wnam := INTERN STRCONC ('"w",STRINGIMAGE i)
+;      [['text,:prefix],['bcStrings,[8, 0.0, xnam, 'F]],
+;       ['text,:middle],['bcStrings,[8, 0.0, ynam, 'F]],
+;         ['text,:next],['bcStrings,[8, 0.0, fnam, 'F]],
+;           ['text,:end],['bcStrings,[8, 0.0, wnam, 'F]]]
+;  lamList :=
+;    "append"/[flam(i) for i in 5..(px-4)] where flam(i) ==
+;      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, lnam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} lamda(5) to lamda(px-4): ")
+;  prefix := STRCONC(prefix,"\newline \tab{2} ")
+;  postfix := ('"\newline \blankline ")
+;  lamList := [['text,:prefix],:lamList,['text,:postfix]]
+;  muList :=
+;    "append"/[fmu(i) for i in 5..(py-4)] where fmu(i) ==
+;      mnam := INTERN STRCONC ('"m",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, mnam, 'F]]]
+;  prefix := ('"\menuitemstyle{} \tab{2} mu(5) to mu(py-4):")
+;  prefix := STRCONC(prefix,"\newline \tab{2} ")
+;  muList := [['text,:prefix],:muList]
+;  pList :=
+;    "append"/[fp(i) for i in 1..npoint] where fp(i) ==
+;      prefix := ('"\newline \tab{2} ")
+;      pnam := INTERN STRCONC ('"p",STRINGIMAGE i)
+;      [['text,:prefix],['bcStrings,[8, 0.0, pnam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} Enter values of Point: ")
+;  pList := [['text,:prefix],:pList]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList,:lamList,:muList,:pList]
+;  page := htInitPage('"E02DAF - Least-squares surface fit, bicubic splines",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Values of \htbitmap{xr}: "
+;  htSay '"\tab{15} \menuitemstyle{}\tab{17} Values of \htbitmap{yr}:"
+;  htSay '"\tab{30} \menuitemstyle{}\tab{32} Values of \htbitmap{fr}:"
+;  htSay '"\tab{44} \menuitemstyle{}\tab{46} Values of \htbitmap{wr}:"
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02dafGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'px,px)
+;  htpSetProperty(page,'py,py)
+;  htpSetProperty(page,'nws,nws)
+;  htpSetProperty(page,'eps,eps)
+;  htpSetProperty(page,'npoint,npoint)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02dafSolve,fxy| (|i|)
+  (PROG (|prefix| |middle| |next| |end| |xnam| |ynam| |fnam| |wnam|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |middle| (MAKESTRING "\\tab{17} "))
+           (SPADLET |next| (MAKESTRING "\\tab{32} "))
+           (SPADLET |end| (MAKESTRING "\\tab{47} "))
+           (SPADLET |xnam|
+                    (INTERN (STRCONC (MAKESTRING "x")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |ynam|
+                    (INTERN (STRCONC (MAKESTRING "y")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |fnam|
+                    (INTERN (STRCONC (MAKESTRING "f")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |wnam|
+                    (INTERN (STRCONC (MAKESTRING "w")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 8
+                                     (CONS 0.0
+                                      (CONS |xnam| (CONS 'F NIL))))
+                                    NIL))
+                             (CONS (CONS '|text| |middle|)
+                                   (CONS
+                                    (CONS '|bcStrings|
+                                     (CONS
+                                      (CONS 8
+                                       (CONS 0.0
+                                        (CONS |ynam| (CONS 'F NIL))))
+                                      NIL))
+                                    (CONS (CONS '|text| |next|)
+                                     (CONS
+                                      (CONS '|bcStrings|
+                                       (CONS
+                                        (CONS 8
+                                         (CONS 0.0
+                                          (CONS |fnam| (CONS 'F NIL))))
+                                        NIL))
+                                      (CONS (CONS '|text| |end|)
+                                       (CONS
+                                        (CONS '|bcStrings|
+                                         (CONS
+                                          (CONS 8
+                                           (CONS 0.0
+                                            (CONS |wnam| (CONS 'F NIL))))
+                                          NIL))
+                                        NIL)))))))))))))
+
+(DEFUN |e02dafSolve,flam| (|i|)
+  (PROG (|lnam|)
+    (RETURN
+      (SEQ (SPADLET |lnam|
+                    (INTERN (STRCONC (MAKESTRING "l")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |lnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02dafSolve,fmu| (|i|)
+  (PROG (|mnam|)
+    (RETURN
+      (SEQ (SPADLET |mnam|
+                    (INTERN (STRCONC (MAKESTRING "m")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |mnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02dafSolve,fp| (|i|)
+  (PROG (|prefix| |pnam|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |pnam|
+                    (INTERN (STRCONC (MAKESTRING "p")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 8
+                                     (CONS 0.0
+                                      (CONS |pnam| (CONS 'F NIL))))
+                                    NIL))
+                             NIL)))))))
+
+(DEFUN |e02dafSolve| (|htPage|)
+  (PROG (|m| |px| |py| |npoint| |nc| |nws| |eps| |error| |ifail|
+             |labelList| |postfix| |lamList| |muList| |prefix| |pList|
+             |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|m|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|m|)))))
+             (SPADLET |px|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|px|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|px|)))))
+             (SPADLET |py|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|py|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|py|)))))
+             (SPADLET |npoint|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|npoint|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|npoint|)))))
+             (SPADLET |nc|
+                      (TIMES (SPADDIFFERENCE |px| 4)
+                             (SPADDIFFERENCE |py| 4)))
+             (SPADLET |nws|
+                      (SPADDIFFERENCE
+                          (TIMES (PLUS (TIMES 2 |nc|) 1)
+                                 (SPADDIFFERENCE (TIMES 3 |py|) 6))
+                          2))
+             (SPADLET |eps| (|htpLabelInputString| |htPage| '|eps|))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((AND (BOOT-EQUAL |m| '30) (BOOT-EQUAL |px| '8)
+                     (BOOT-EQUAL |py| '10))
+                (|e02dafDefaultSolve| |htPage| |eps| |nws| |npoint|
+                    |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G167752)
+                           (SPADLET G167752 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |m|) G167752)
+                               (SEQ (EXIT
+                                     (SETQ G167752
+                                      (APPEND G167752
+                                       (|e02dafSolve,fxy| |i|)))))))))
+                (SPADLET |lamList|
+                         (PROG (G167760)
+                           (SPADLET G167760 NIL)
+                           (RETURN
+                             (DO ((G167765 (SPADDIFFERENCE |px| 4))
+                                  (|i| 5 (+ |i| 1)))
+                                 ((> |i| G167765) G167760)
+                               (SEQ (EXIT
+                                     (SETQ G167760
+                                      (APPEND G167760
+                                       (|e02dafSolve,flam| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                             "\\blankline \\menuitemstyle{} \\tab{2} lamda(5) to lamda(px-4): "))
+                (SPADLET |prefix|
+                         (STRCONC |prefix| '|\\newline \\tab{2} |))
+                (SPADLET |postfix|
+                         (MAKESTRING "\\newline \\blankline "))
+                (SPADLET |lamList|
+                         (CONS (CONS '|text| |prefix|)
+                               (APPEND |lamList|
+                                       (CONS (CONS '|text| |postfix|)
+                                        NIL))))
+                (SPADLET |muList|
+                         (PROG (G167769)
+                           (SPADLET G167769 NIL)
+                           (RETURN
+                             (DO ((G167774 (SPADDIFFERENCE |py| 4))
+                                  (|i| 5 (+ |i| 1)))
+                                 ((> |i| G167774) G167769)
+                               (SEQ (EXIT
+                                     (SETQ G167769
+                                      (APPEND G167769
+                                       (|e02dafSolve,fmu| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                             "\\menuitemstyle{} \\tab{2} mu(5) to mu(py-4):"))
+                (SPADLET |prefix|
+                         (STRCONC |prefix| '|\\newline \\tab{2} |))
+                (SPADLET |muList|
+                         (CONS (CONS '|text| |prefix|) |muList|))
+                (SPADLET |pList|
+                         (PROG (G167778)
+                           (SPADLET G167778 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |npoint|) G167778)
+                               (SEQ (EXIT
+                                     (SETQ G167778
+                                      (APPEND G167778
+                                       (|e02dafSolve,fp| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+            "\\blankline \\menuitemstyle{} \\tab{2} Enter values of Point: "))
+                (SPADLET |pList|
+                         (CONS (CONS '|text| |prefix|) |pList|))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               (APPEND |labelList|
+                                       (APPEND |lamList|
+                                        (APPEND |muList| |pList|)))))
+                (SPADLET |page|
+                         (|htInitPage|
+                             (MAKESTRING
+                         "E02DAF - Least-squares surface fit, bicubic splines")
+                             NIL))
+                (|htSay| (MAKESTRING
+                       "\\menuitemstyle{}\\tab{2} Values of \\htbitmap{xr}: "))
+                (|htSay| (MAKESTRING
+             "\\tab{15} \\menuitemstyle{}\\tab{17} Values of \\htbitmap{yr}:"))
+                (|htSay| (MAKESTRING
+             "\\tab{30} \\menuitemstyle{}\\tab{32} Values of \\htbitmap{fr}:"))
+                (|htSay| (MAKESTRING
+             "\\tab{44} \\menuitemstyle{}\\tab{46} Values of \\htbitmap{wr}:"))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02dafGen|)
+                (|htpSetProperty| |page| '|m| |m|)
+                (|htpSetProperty| |page| '|px| |px|)
+                (|htpSetProperty| |page| '|py| |py|)
+                (|htpSetProperty| |page| '|nws| |nws|)
+                (|htpSetProperty| |page| '|eps| |eps|)
+                (|htpSetProperty| |page| '|npoint| |npoint|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02dafDefaultSolve (htPage,eps,nws,npoint,ifail) ==
+;  m := '30
+;  px := '8
+;  py := '10
+;  page := htInitPage('"E02DAF - Least-squares surface fit, bicubic splines",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} Values of \htbitmap{xr}:")
+;    (text . "\tab{15} \menuitemstyle{} \tab{17} Values of ")
+;    (text . "\htbitmap{yr}: \tab{30} \menuitemstyle{} \tab{32} ")
+;    (text . "Values of \htbitmap{fr}: \tab{44} \menuitemstyle{} ")
+;    (text . "\tab{46} Values of \htbitmap{wr}:")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.52" x1 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.60" y1 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.93" f1 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "10" w1 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.61" x2 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "-0.95" y2 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "-1.79" f2 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "10" w2 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.93" x3 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.87" y3 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.36" f3 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "10" w3 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.09" x4 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.84" y4 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.52" f4 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "10" w4 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.88" x5 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.17" y5 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.49" f5 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "10" w5 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.70" x6 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "-0.87" y6 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "-1.76" f6 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "10" w6 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "1" x7 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "1" y7 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.33" f7 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w7 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "1" x8 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.1" y8 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.48" f8 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w8 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.3" x9 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.24" y9 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.65" f9 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w9 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.77" x10 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "-0.77" y10 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "-1.82" f10 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w10 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.23" x11 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.32" y11 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.92" f11 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w11 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-1" x12 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "1" y12 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "1" f12 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w12 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.26" x13 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "-0.63" y13 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "8.88" f13 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w13 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.83" x14 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "-0.66" y14 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "-2.01" f14 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w14 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.22" x15 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.93" y15 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.47" f15 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w15 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.89" x16 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.15" y16 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.49" f16 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w16 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.80" x17 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.99" y17 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.84" f17 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w17 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.88" x18 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "-0.54" y18 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "-2.42" f18 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w18 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.68" x19 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.44" y19 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.47" f19 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w19 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.14" x20 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "-0.72" y20 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "7.15" f20 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w20 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.67" x21 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.63" y21 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.44" f21 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w21 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.90" x22 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "-0.40" y22 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "-3.34" f22 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w22 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.84" x23 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.20" y23 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "2.78" f23 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w23 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.84" x24 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.43" y24 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.44" f24 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w24 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.15" x25 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.28" y25 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.70" f25 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w25 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.91" x26 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "-0.24" y26 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "-6.52" f26 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w26 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.35" x27 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.86" y27 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.66" f27 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w27 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.16" x28 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "-0.41" y28 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "2.32" f28 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w28 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-0.35" x29 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "-0.05" y29 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "1.66" f29 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w29 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "-1" x30 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "-1" y30 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "-1" f30 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w30 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} mu(5) to mu(py-4):")
+;    (text . "\newline \tab{2}")
+;    (bcStrings (8 "-0.50" mu5 F))
+;    (bcStrings (8 "0.00" mu6 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} Enter values for point:")
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 3 p1 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 6 p2 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 4 p3 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 5 p4 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 7 p5 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 10 p6 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 8 p7 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 9 p8 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 11 p9 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 13 p10 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 12 p11 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 15 p12 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 14 p13 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 18 p14 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 16 p15 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 17 p16 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 19 p17 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 20 p18 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 21 p19 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 30 p20 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 23 p21 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 26 p22 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 24 p23 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 25 p24 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 27 p25 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 28 p26 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 0 p27 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 29 p28 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 0 p29 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 0 p30 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 2 p31 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 22 p32 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 1 p33 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 0 p34 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 0 p35 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 0 p36 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 0 p37 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 0 p38 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 0 p39 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 0 p40 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 0 p41 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 0 p42 PI))
+;    (text . "\newline \tab{2}")
+;    (bcStrings (6 0 p43 PI))
+;    (text . "\blankline"))
+;  htMakeDoneButton('"Continue",'e02dafGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'px,px)
+;  htpSetProperty(page,'py,py)
+;  htpSetProperty(page,'nws,nws)
+;  htpSetProperty(page,'eps,eps)
+;  htpSetProperty(page,'npoint,npoint)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02dafDefaultSolve| (|htPage| |eps| |nws| |npoint| |ifail|)
+  (PROG (|m| |px| |py| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |m| '30)
+        (SPADLET |px| '8)
+        (SPADLET |py| '10)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02DAF - Least-squares surface fit, bicubic splines")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text| . "\\newline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of \\htbitmap{xr}:")
+              (|text|
+               . "\\tab{15} \\menuitemstyle{} \\tab{17} Values of ")
+              (|text|
+               . "\\htbitmap{yr}: \\tab{30} \\menuitemstyle{} \\tab{32} ")
+              (|text|
+               . "Values of \\htbitmap{fr}: \\tab{44} \\menuitemstyle{} ")
+              (|text| . "\\tab{46} Values of \\htbitmap{wr}:")
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.52" |x1| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.60" |y1| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.93" |f1| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "10" |w1| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.61" |x2| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "-0.95" |y2| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "-1.79" |f2| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "10" |w2| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.93" |x3| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.87" |y3| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.36" |f3| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "10" |w3| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.09" |x4| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.84" |y4| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.52" |f4| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "10" |w4| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.88" |x5| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.17" |y5| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.49" |f5| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "10" |w5| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.70" |x6| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "-0.87" |y6| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "-1.76" |f6| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "10" |w6| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "1" |x7| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "1" |y7| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.33" |f7| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w7| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "1" |x8| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.1" |y8| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.48" |f8| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w8| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.3" |x9| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.24" |y9| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.65" |f9| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w9| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.77" |x10| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "-0.77" |y10| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "-1.82" |f10| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w10| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.23" |x11| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.32" |y11| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.92" |f11| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w11| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-1" |x12| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "1" |y12| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "1" |f12| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w12| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.26" |x13| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "-0.63" |y13| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "8.88" |f13| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w13| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.83" |x14| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "-0.66" |y14| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "-2.01" |f14| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w14| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.22" |x15| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.93" |y15| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.47" |f15| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w15| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.89" |x16| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.15" |y16| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.49" |f16| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w16| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.80" |x17| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.99" |y17| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.84" |f17| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w17| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.88" |x18| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "-0.54" |y18| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "-2.42" |f18| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w18| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.68" |x19| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.44" |y19| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.47" |f19| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w19| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.14" |x20| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "-0.72" |y20| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "7.15" |f20| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w20| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.67" |x21| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.63" |y21| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.44" |f21| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w21| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.90" |x22| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "-0.40" |y22| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "-3.34" |f22| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w22| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.84" |x23| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.20" |y23| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "2.78" |f23| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w23| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.84" |x24| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.43" |y24| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.44" |f24| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w24| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.15" |x25| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.28" |y25| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.70" |f25| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w25| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.91" |x26| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "-0.24" |y26| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "-6.52" |f26| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w26| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.35" |x27| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.86" |y27| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.66" |f27| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w27| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.16" |x28| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "-0.41" |y28| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "2.32" |f28| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w28| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-0.35" |x29| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "-0.05" |y29| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "1.66" |f29| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w29| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "-1" |x30| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "-1" |y30| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "-1" |f30| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w30| F)) (|text| . "\\blankline ")
+              (|text| . "\\menuitemstyle{}\\tab{2} mu(5) to mu(py-4):")
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (8 "-0.50" |mu5| F))
+              (|bcStrings| (8 "0.00" |mu6| F))
+              (|text| . "\\blankline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Enter values for point:")
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 3 |p1| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 6 |p2| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 4 |p3| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 5 |p4| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 7 |p5| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 10 |p6| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 8 |p7| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 9 |p8| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 11 |p9| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 13 |p10| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 12 |p11| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 15 |p12| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 14 |p13| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 18 |p14| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 16 |p15| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 17 |p16| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 19 |p17| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 20 |p18| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 21 |p19| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 30 |p20| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 23 |p21| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 26 |p22| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 24 |p23| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 25 |p24| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 27 |p25| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 28 |p26| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 0 |p27| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 29 |p28| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 0 |p29| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 0 |p30| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 2 |p31| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 22 |p32| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 1 |p33| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 0 |p34| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 0 |p35| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 0 |p36| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 0 |p37| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 0 |p38| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 0 |p39| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 0 |p40| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 0 |p41| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 0 |p42| PI))
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (6 0 |p43| PI)) (|text| . "\\blankline")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02dafGen|)
+        (|htpSetProperty| |page| '|m| |m|)
+        (|htpSetProperty| |page| '|px| |px|)
+        (|htpSetProperty| |page| '|py| |py|)
+        (|htpSetProperty| |page| '|nws| |nws|)
+        (|htpSetProperty| |page| '|eps| |eps|)
+        (|htpSetProperty| |page| '|npoint| |npoint|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02dafGen htPage ==
+;  m := htpProperty(htPage,'m)
+;  px := htpProperty(htPage,'px)
+;  py := htpProperty(htPage,'py)
+;  nws := htpProperty(htPage,'nws)
+;  eps := htpProperty(htPage,'eps)
+;  npoint := htpProperty(htPage,'npoint)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  y := alist
+;  nadres := (px-7)*(py-7)
+;  -- point
+;  for i in 1..npoint repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    pointList := [right,:pointList]
+;  pstring := bcwords2liststring pointList
+;  -- mu
+;  for i in 1..4 repeat
+;    muList := ['"0 ",:muList]
+;  for i in 5..(py-4) repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    muList := [right,:muList]
+;  for i in (py-3)..py repeat
+;    muList := ['"0 ",:muList]
+;  mustring := bcwords2liststring muList
+;  -- lamda
+;  for i in 1..4 repeat
+;    lamList := ['"0 ",:lamList]
+;  for i in 5..(px-4) repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    lamList := [right,:lamList]
+;  for i in (px-3)..px repeat
+;    lamList := ['"0 ",:lamList]
+;  lamstring := bcwords2liststring lamList
+;  -- x & y
+;  while y repeat
+;    one := STRCONC((first y).1," ")
+;    y := rest y
+;    two := STRCONC((first y).1," ")
+;    y := rest y
+;    three := STRCONC ((first y).1," ")
+;    y := rest y
+;    four :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    xlist := [four,:xlist]
+;    ylist := [three,:ylist]
+;    flist := [two,:flist]
+;    wlist := [one,:wlist]
+;  xstring := bcwords2liststring xlist
+;  ystring := bcwords2liststring ylist
+;  fstring := bcwords2liststring flist
+;  wstring := bcwords2liststring wlist
+;  nc := (px-4)*(py-4)
+;  prefix := STRCONC('"e02daf(",STRINGIMAGE m,", ",STRINGIMAGE px,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE py,",[",xstring,"],[",ystring,"],[")
+;  prefix := STRCONC(prefix,fstring,"],[",wstring,"],[",mustring,"],[")
+;  prefix := STRCONC(prefix,pstring,"], ",STRINGIMAGE npoint,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE nc,", ",STRINGIMAGE nws,", ",eps,", [")
+;  prefix := STRCONC(prefix,lamstring,"], ",STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02dafGen| (|htPage|)
+  (PROG (|m| |px| |py| |nws| |eps| |npoint| |ifail| |alist| |nadres|
+             |pointList| |pstring| |muList| |mustring| |right|
+             |lamList| |lamstring| |one| |two| |three| |four| |y|
+             |xlist| |ylist| |flist| |wlist| |xstring| |ystring|
+             |fstring| |wstring| |nc| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m| (|htpProperty| |htPage| '|m|))
+             (SPADLET |px| (|htpProperty| |htPage| '|px|))
+             (SPADLET |py| (|htpProperty| |htPage| '|py|))
+             (SPADLET |nws| (|htpProperty| |htPage| '|nws|))
+             (SPADLET |eps| (|htpProperty| |htPage| '|eps|))
+             (SPADLET |npoint| (|htpProperty| |htPage| '|npoint|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |y| |alist|)
+             (SPADLET |nadres|
+                      (TIMES (SPADDIFFERENCE |px| 7)
+                             (SPADDIFFERENCE |py| 7)))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |npoint|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |pointList|
+                                     (CONS |right| |pointList|))))))
+             (SPADLET |pstring| (|bcwords2liststring| |pointList|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| 4) NIL)
+               (SEQ (EXIT (SPADLET |muList|
+                                   (CONS (MAKESTRING "0 ") |muList|)))))
+             (DO ((G167851 (SPADDIFFERENCE |py| 4))
+                  (|i| 5 (+ |i| 1)))
+                 ((> |i| G167851) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |muList| (CONS |right| |muList|))))))
+             (DO ((|i| (SPADDIFFERENCE |py| 3) (+ |i| 1)))
+                 ((> |i| |py|) NIL)
+               (SEQ (EXIT (SPADLET |muList|
+                                   (CONS (MAKESTRING "0 ") |muList|)))))
+             (SPADLET |mustring| (|bcwords2liststring| |muList|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| 4) NIL)
+               (SEQ (EXIT (SPADLET |lamList|
+                                   (CONS (MAKESTRING "0 ") |lamList|)))))
+             (DO ((G167873 (SPADDIFFERENCE |px| 4))
+                  (|i| 5 (+ |i| 1)))
+                 ((> |i| G167873) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |lamList|
+                                     (CONS |right| |lamList|))))))
+             (DO ((|i| (SPADDIFFERENCE |px| 3) (+ |i| 1)))
+                 ((> |i| |px|) NIL)
+               (SEQ (EXIT (SPADLET |lamList|
+                                   (CONS (MAKESTRING "0 ") |lamList|)))))
+             (SPADLET |lamstring| (|bcwords2liststring| |lamList|))
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |one|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |two|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |three|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |four|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |xlist| (CONS |four| |xlist|))
+                            (SPADLET |ylist| (CONS |three| |ylist|))
+                            (SPADLET |flist| (CONS |two| |flist|))
+                            (SPADLET |wlist| (CONS |one| |wlist|))))))
+             (SPADLET |xstring| (|bcwords2liststring| |xlist|))
+             (SPADLET |ystring| (|bcwords2liststring| |ylist|))
+             (SPADLET |fstring| (|bcwords2liststring| |flist|))
+             (SPADLET |wstring| (|bcwords2liststring| |wlist|))
+             (SPADLET |nc|
+                      (TIMES (SPADDIFFERENCE |px| 4)
+                             (SPADDIFFERENCE |py| 4)))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02daf(") (STRINGIMAGE |m|)
+                               '|, | (STRINGIMAGE |px|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |py|) '|,[|
+                               |xstring| '|],[| |ystring| '|],[|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |fstring| '|],[| |wstring|
+                               '|],[| |mustring| '|],[|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |pstring| '|], |
+                               (STRINGIMAGE |npoint|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |nc|) '|, |
+                               (STRINGIMAGE |nws|) '|, | |eps| '|, [|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |lamstring| '|], |
+                               (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02dcf() ==
+;  htInitPage('"E02DCF - Least-squares curve by bicubic splines with automatic knot placement, data on a rectangular grid",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02dcf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02dcf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "\newline ")
+;    (text . "Determines a bicubic spline approximation to a set of points ")
+;    (text . "given on a rectangular grid defined by \htbitmap{mx} ")
+;    (text . "points \htbitmap{xq} on the x-axis and ")
+;    (text . "\htbitmap{my} points \htbitmap{yr} on the ")
+;    (text . "y-axix. The knots \htbitmap{lamdai}, for i = 1,2,...,")
+;    (text . "\htbitmap{nx} and \htbitmap{mui}, for ")
+;    (text . "i = 1,2,...,\htbitmap{ny} are chosen for this routine ")
+;    (text . ", but a single parameter S must be specified to control the ")
+;    (text . "trade-off between closeness of fit and smoothness of fit.  This ")
+;    (text . "affects the number of knots required by the spline, which is ")
+;    (text . "given in the B-spline representation \htbitmap{e02daf}")
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Grid points on x-axis \htbitmap{mx}: ")
+;    (text . "\tab{30} \menuitemstyle{}\tab{32} Grid points on y-axis ")
+;    (text . "\htbitmap{my}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 11 mx PI))
+;    (text . "\tab{32} ")
+;    (bcStrings (6 9 my PI))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} ")
+;    (text . "Over-estimate of \htbitmap{nx} of knots \lambda of the ")
+;    (text . "computed spline, {\it nxest}: \newline\tab{2} ")
+;    (bcStrings (6 15 nxest PI))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} ")
+;    (text . "Over-estimate of \htbitmap{ny} of knots \mu of the computed ")
+;    (text . "spline, {\it nyest}: \newline\tab{2} ")
+;    (bcStrings (6 13 nyest PI))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Smoothing factor {\it s}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 "0.1" s F))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Start value: ")
+;    (radioButtons start
+;        ("" "  Cold Start - no values needed for {\it nx,ny,lamda,mu} or {\it iwrk}" cold)
+;        ("" "  Warm Start - uses knots found in a previous call" warm))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02dcfSolve)
+;  htShowPage()
+
+(DEFUN |e02dcf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02DCF - Least-squares curve by bicubic splines with automatic knot placement, data on a rectangular grid")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02dcf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02dcf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text| . "\\newline ")
+          (|text|
+           . "Determines a bicubic spline approximation to a set of points ")
+          (|text|
+           . "given on a rectangular grid defined by \\htbitmap{mx} ")
+          (|text| . "points \\htbitmap{xq} on the x-axis and ")
+          (|text| . "\\htbitmap{my} points \\htbitmap{yr} on the ")
+          (|text|
+           . "y-axix. The knots \\htbitmap{lamdai}, for i = 1,2,...,")
+          (|text| . "\\htbitmap{nx} and \\htbitmap{mui}, for ")
+          (|text|
+           . "i = 1,2,...,\\htbitmap{ny} are chosen for this routine ")
+          (|text|
+           . ", but a single parameter S must be specified to control the ")
+          (|text|
+           . "trade-off between closeness of fit and smoothness of fit.  This ")
+          (|text|
+           . "affects the number of knots required by the spline, which is ")
+          (|text|
+           . "given in the B-spline representation \\htbitmap{e02daf}")
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Grid points on x-axis \\htbitmap{mx}: ")
+          (|text|
+           . "\\tab{30} \\menuitemstyle{}\\tab{32} Grid points on y-axis ")
+          (|text| . "\\htbitmap{my}: ") (|text| . "\\newline\\tab{2} ")
+          (|bcStrings| (6 11 |mx| PI)) (|text| . "\\tab{32} ")
+          (|bcStrings| (6 9 |my| PI)) (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} ")
+          (|text|
+           . "Over-estimate of \\htbitmap{nx} of knots \\lambda of the ")
+          (|text|
+           . "computed spline, {\\it nxest}: \\newline\\tab{2} ")
+          (|bcStrings| (6 15 |nxest| PI)) (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} ")
+          (|text|
+           . "Over-estimate of \\htbitmap{ny} of knots \\mu of the computed ")
+          (|text| . "spline, {\\it nyest}: \\newline\\tab{2} ")
+          (|bcStrings| (6 13 |nyest| PI)) (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Smoothing factor {\\it s}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 "0.1" |s| F))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Start value: ")
+          (|radioButtons| |start|
+              (""
+               "  Cold Start - no values needed for {\\it nx,ny,lamda,mu} or {\\it iwrk}"
+               |cold|)
+              ("" "  Warm Start - uses knots found in a previous call"
+               |warm|))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02dcfSolve|)
+    (|htShowPage|)))
+
+;e02dcfSolve htPage ==
+;  mx :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'mx)
+;    objValUnwrap htpLabelSpadValue(htPage, 'mx)
+;  my :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'my)
+;    objValUnwrap htpLabelSpadValue(htPage, 'my)
+;  nxest :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nxest)
+;    objValUnwrap htpLabelSpadValue(htPage, 'nxest)
+;  nyest :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nyest)
+;    objValUnwrap htpLabelSpadValue(htPage, 'nyest)
+;  wrklist := [my,nxest]
+;  wrkmax := APPLY ('MAX, wrklist)
+;  lwrk := 4*(mx + my) +11*(nxest + nyest) + nxest*my + wrkmax +54
+;  liwrk := 3 + mx + my + nxest + nyest
+;  s := htpLabelInputString(htPage,'s)
+;  initial := htpButtonValue(htPage,'start)
+;  start :=
+;    initial = 'cold => '1
+;    '2
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  ((mx = 11 and my = 9) and start = 1) =>
+;                e02dcfDefaultSolve (htPage,nxest,nyest,lwrk,liwrk,s,ifail)
+;  start = 1 => e02dcfColdSolve (htPage,mx,my,nxest,nyest,lwrk,liwrk,s,ifail)
+;  -- warm start not really possible from hyperdoc
+;  -- as inputing a workspace array of dimension 592 is asking too much
+;  -- user should use the command line, using the previous calculated
+;  -- parameters
+;  htInitPage('"E02DCF - Least-squares curve by bicubic splines with automatic knot placement, data on a rectangular grid",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\blankline ")
+;    (text . "{\center{\em Hyperdoc interface not available for warm starts.}}")
+;    (text . "\newline ")
+;    (text . "{\center{\em Please use the command line.}}"))
+;  htMakeDoneButton('"Continue",'e02dcf)
+;  htShowPage()
+
+(DEFUN |e02dcfSolve| (|htPage|)
+  (PROG (|mx| |my| |nxest| |nyest| |wrklist| |wrkmax| |lwrk| |liwrk|
+              |s| |initial| |start| |error| |ifail|)
+  (declare (special |$bcParseOnly|))
+    (RETURN
+      (PROGN
+        (SPADLET |mx|
+                 (COND
+                   (|$bcParseOnly|
+                       (PARSE-INTEGER
+                           (|htpLabelInputString| |htPage| '|mx|)))
+                   ('T
+                    (|objValUnwrap|
+                        (|htpLabelSpadValue| |htPage| '|mx|)))))
+        (SPADLET |my|
+                 (COND
+                   (|$bcParseOnly|
+                       (PARSE-INTEGER
+                           (|htpLabelInputString| |htPage| '|my|)))
+                   ('T
+                    (|objValUnwrap|
+                        (|htpLabelSpadValue| |htPage| '|my|)))))
+        (SPADLET |nxest|
+                 (COND
+                   (|$bcParseOnly|
+                       (PARSE-INTEGER
+                           (|htpLabelInputString| |htPage| '|nxest|)))
+                   ('T
+                    (|objValUnwrap|
+                        (|htpLabelSpadValue| |htPage| '|nxest|)))))
+        (SPADLET |nyest|
+                 (COND
+                   (|$bcParseOnly|
+                       (PARSE-INTEGER
+                           (|htpLabelInputString| |htPage| '|nyest|)))
+                   ('T
+                    (|objValUnwrap|
+                        (|htpLabelSpadValue| |htPage| '|nyest|)))))
+        (SPADLET |wrklist| (CONS |my| (CONS |nxest| NIL)))
+        (SPADLET |wrkmax| (APPLY 'MAX |wrklist|))
+        (SPADLET |lwrk|
+                 (PLUS (PLUS (PLUS (PLUS (TIMES 4 (PLUS |mx| |my|))
+                                    (TIMES 11 (PLUS |nxest| |nyest|)))
+                                   (TIMES |nxest| |my|))
+                             |wrkmax|)
+                       54))
+        (SPADLET |liwrk|
+                 (PLUS (PLUS (PLUS (PLUS 3 |mx|) |my|) |nxest|)
+                       |nyest|))
+        (SPADLET |s| (|htpLabelInputString| |htPage| '|s|))
+        (SPADLET |initial| (|htpButtonValue| |htPage| '|start|))
+        (SPADLET |start|
+                 (COND ((BOOT-EQUAL |initial| '|cold|) '1) ('T '2)))
+        (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+        (SPADLET |ifail|
+                 (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+        (COND
+          ((AND (EQL |mx| 11) (EQL |my| 9) (EQL |start| 1))
+           (|e02dcfDefaultSolve| |htPage| |nxest| |nyest| |lwrk|
+               |liwrk| |s| |ifail|))
+          ((EQL |start| 1)
+           (|e02dcfColdSolve| |htPage| |mx| |my| |nxest| |nyest| |lwrk|
+               |liwrk| |s| |ifail|))
+          ('T
+           (|htInitPage|
+               (MAKESTRING
+                   "E02DCF - Least-squares curve by bicubic splines with automatic knot placement, data on a rectangular grid")
+               NIL)
+           (|htMakePage|
+               '((|domainConditions|
+                     (|isDomain| PI (|PositiveInteger|)))
+                 (|text| . "\\blankline ")
+                 (|text|
+                  . "{\\center{\\em Hyperdoc interface not available for warm starts.}}")
+                 (|text| . "\\newline ")
+                 (|text|
+                  . "{\\center{\\em Please use the command line.}}")))
+           (|htMakeDoneButton| (MAKESTRING "Continue") '|e02dcf|)
+           (|htShowPage|)))))))
+
+;e02dcfColdSolve(htPage,mx,my,nxest,nyest,lwrk,liwrk,s,ifail) ==
+;  xList :=
+;    "append"/[f(i) for i in 1..mx] where f(i) ==
+;      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, xnam, 'F]]]
+;  yList :=
+;    "append"/[g(i) for i in 1..my] where g(i) ==
+;      ynam := INTERN STRCONC ('"g",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, ynam, 'F]]]
+;  prefix:= ('"\blankline \menuitemstyle{}\tab{2} Values of {\it y(my)}: \newline ")
+;  yList := [['text,:prefix],:yList]
+;  fList :=
+;    "append"/[h(i) for i in 1..(mx*my)] where h(i) ==
+;      fnam := INTERN STRCONC ('"g",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, fnam, 'F]]]
+;  prefix:=('"\blankline \menuitemstyle{} \tab{2} Values of {\it f(mx*my)}: \newline ")
+;  fList := [['text,:prefix],:fList]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :xList,:yList,:fList]
+;  page := htInitPage('"E02DCF - Least-squares curve by bicubic splines with automatic knot placement, data on a rectangular grid",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Values of {\it x(mx)}: \newline "
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02dcfColdGen)
+;  htpSetProperty(page,'mx,mx)
+;  htpSetProperty(page,'my,my)
+;  htpSetProperty(page,'nxest,nxest)
+;  htpSetProperty(page,'nyest,nyest)
+;  htpSetProperty(page,'lwrk,lwrk)
+;  htpSetProperty(page,'liwrk,liwrk)
+;  htpSetProperty(page,'s,s)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02dcfColdSolve,f| (|i|)
+  (PROG (|xnam|)
+    (RETURN
+      (SEQ (SPADLET |xnam|
+                    (INTERN (STRCONC (MAKESTRING "x")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |xnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02dcfColdSolve,g| (|i|)
+  (PROG (|ynam|)
+    (RETURN
+      (SEQ (SPADLET |ynam|
+                    (INTERN (STRCONC (MAKESTRING "g")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |ynam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02dcfColdSolve,h| (|i|)
+  (PROG (|fnam|)
+    (RETURN
+      (SEQ (SPADLET |fnam|
+                    (INTERN (STRCONC (MAKESTRING "g")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |fnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02dcfColdSolve|
+       (|htPage| |mx| |my| |nxest| |nyest| |lwrk| |liwrk| |s| |ifail|)
+  (PROG (|xList| |yList| |prefix| |fList| |equationPart| |page|)
+  (declare (special |$EmptyMode|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |xList|
+                      (PROG (G167999)
+                        (SPADLET G167999 NIL)
+                        (RETURN
+                          (DO ((|i| 1 (QSADD1 |i|)))
+                              ((QSGREATERP |i| |mx|) G167999)
+                            (SEQ (EXIT (SETQ G167999
+                                        (APPEND G167999
+                                         (|e02dcfColdSolve,f| |i|)))))))))
+             (SPADLET |yList|
+                      (PROG (G168007)
+                        (SPADLET G168007 NIL)
+                        (RETURN
+                          (DO ((|i| 1 (QSADD1 |i|)))
+                              ((QSGREATERP |i| |my|) G168007)
+                            (SEQ (EXIT (SETQ G168007
+                                        (APPEND G168007
+                                         (|e02dcfColdSolve,g| |i|)))))))))
+             (SPADLET |prefix|
+                      (MAKESTRING
+                          "\\blankline \\menuitemstyle{}\\tab{2} Values of {\\it y(my)}: \\newline "))
+             (SPADLET |yList| (CONS (CONS '|text| |prefix|) |yList|))
+             (SPADLET |fList|
+                      (PROG (G168015)
+                        (SPADLET G168015 NIL)
+                        (RETURN
+                          (DO ((G168020 (TIMES |mx| |my|))
+                               (|i| 1 (QSADD1 |i|)))
+                              ((QSGREATERP |i| G168020) G168015)
+                            (SEQ (EXIT (SETQ G168015
+                                        (APPEND G168015
+                                         (|e02dcfColdSolve,h| |i|)))))))))
+             (SPADLET |prefix|
+                      (MAKESTRING
+                          "\\blankline \\menuitemstyle{} \\tab{2} Values of {\\it f(mx*my)}: \\newline "))
+             (SPADLET |fList| (CONS (CONS '|text| |prefix|) |fList|))
+             (SPADLET |equationPart|
+                      (CONS '(|domainConditions|
+                                 (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                 (|isDomain| S (|String|))
+                                 (|isDomain| F (|Float|))
+                                 (|isDomain| PI (|PositiveInteger|)))
+                            (APPEND |xList| (APPEND |yList| |fList|))))
+             (SPADLET |page|
+                      (|htInitPage|
+                          (MAKESTRING
+                              "E02DCF - Least-squares curve by bicubic splines with automatic knot placement, data on a rectangular grid")
+                          NIL))
+             (|htSay| (MAKESTRING
+                          "\\menuitemstyle{}\\tab{2} Values of {\\it x(mx)}: \\newline "))
+             (|htMakePage| |equationPart|)
+             (|htSay| (MAKESTRING "\\blankline "))
+             (|htMakeDoneButton| (MAKESTRING "Continue")
+                 '|e02dcfColdGen|)
+             (|htpSetProperty| |page| '|mx| |mx|)
+             (|htpSetProperty| |page| '|my| |my|)
+             (|htpSetProperty| |page| '|nxest| |nxest|)
+             (|htpSetProperty| |page| '|nyest| |nyest|)
+             (|htpSetProperty| |page| '|lwrk| |lwrk|)
+             (|htpSetProperty| |page| '|liwrk| |liwrk|)
+             (|htpSetProperty| |page| '|s| |s|)
+             (|htpSetProperty| |page| '|ifail| |ifail|)
+             (|htpSetProperty| |page| '|inputArea|
+                 (|htpInputAreaAlist| |htPage|))
+             (|htShowPage|))))))
+
+;e02dcfDefaultSolve (htPage,nxest,nyest,lwrk,liwrk,s,ifail) ==
+;  mx := 11
+;  my := 9
+;  page := htInitPage('"E02DCF - Least-squares curve by bicubic splines with automatic knot placement, data on a rectangular grid",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} Values of {\it x(mx)}:")
+;    (text . "\newline ")
+;    (bcStrings (8 "0" x1 F))
+;    (bcStrings (8 "0.5" x2 F))
+;    (bcStrings (8 "1" x3 F))
+;    (bcStrings (8 "1.5" x4 F))
+;    (bcStrings (8 "2" x5 F))
+;    (bcStrings (8 "2.5" x6 F))
+;    (bcStrings (8 "3" x7 F))
+;    (bcStrings (8 "3.5" x8 F))
+;    (bcStrings (8 "4" x9 F))
+;    (bcStrings (8 "4.5" x10 F))
+;    (bcStrings (8 "5" x11 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} Values of {\it y(my)}:")
+;    (text . "\newline ")
+;    (bcStrings (8 "0" y1 F))
+;    (bcStrings (8 "0.5" y2 F))
+;    (bcStrings (8 "1" y3 F))
+;    (bcStrings (8 "1.5" y4 F))
+;    (bcStrings (8 "2" y5 F))
+;    (bcStrings (8 "2.5" y6 F))
+;    (bcStrings (8 "3" y7 F))
+;    (bcStrings (8 "3.5" y8 F))
+;    (bcStrings (8 "4" y9 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} Values of {\it f(mx*my)}:")
+;    (text . "\newline ")
+;    (bcStrings (8 "1" f1 F))
+;    (bcStrings (8 "0.88758" f2 F))
+;    (bcStrings (8 "0.5403" f3 F))
+;    (bcStrings (8 "0.070737" f4 F))
+;    (bcStrings (8 "-0.41515" f5 F))
+;    (bcStrings (8 "-0.80114" f6 F))
+;    (bcStrings (8 "-0.97999" f7 F))
+;    (bcStrings (8 "-0.93446" f8 F))
+;    (bcStrings (8 "-0.65664" f9 F))
+;    (bcStrings (8 "1.5" f10 F))
+;    (bcStrings (8 "1.3564" f11 F))
+;    (bcStrings (8 "0.82045" f12 F))
+;    (bcStrings (8 "0.10611" f13 F))
+;    (bcStrings (8 "-0.62422" f14 F))
+;    (bcStrings (8 "-1.2317" f15 F))
+;    (bcStrings (8 "-1.485" f16 F))
+;    (bcStrings (8 "-1.3047" f17 F))
+;    (bcStrings (8 "-0.98547" f18 F))
+;    (bcStrings (8 "2.06" f19 F))
+;    (bcStrings (8 "1.7552" f20 F))
+;    (bcStrings (8 "1.0806" f21 F))
+;    (bcStrings (8 "0.15147" f22 F))
+;    (bcStrings (8 "-0.83229" f23 F))
+;    (bcStrings (8 "-1.6023" f24 F))
+;    (bcStrings (8 "-1.97" f25 F))
+;    (bcStrings (8 "-1.8729" f26 F))
+;    (bcStrings (8 "-1.4073" f27 F))
+;    (bcStrings (8 "2.57" f28 F))
+;    (bcStrings (8 "2.124" f29 F))
+;    (bcStrings (8 "1.3508" f30 F))
+;    (bcStrings (8 "0.17684" f31 F))
+;    (bcStrings (8 "-1.0404" f32 F))
+;    (bcStrings (8 "-2.0029" f33 F))
+;    (bcStrings (8 "-2.475" f34 F))
+;    (bcStrings (8 "-2.3511" f35 F))
+;    (bcStrings (8 "-1.6741" f36 F))
+;    (bcStrings (8 "3" f37 F))
+;    (bcStrings (8 "2.6427" f38 F))
+;    (bcStrings (8 "1.6309" f39 F))
+;    (bcStrings (8 "0.21221" f40 F))
+;    (bcStrings (8 "-1.2484" f41 F))
+;    (bcStrings (8 "-2.2034" f42 F))
+;    (bcStrings (8 "-2.97" f43 F))
+;    (bcStrings (8 "-2.8094" f44 F))
+;    (bcStrings (8 "-1.9809" f45 F))
+;    (bcStrings (8 "3.5" f46 F))
+;    (bcStrings (8 "3.1715" f47 F))
+;    (bcStrings (8 "1.8611" f48 F))
+;    (bcStrings (8 "0.24458" f49 F))
+;    (bcStrings (8 "-1.4565" f50 F))
+;    (bcStrings (8 "-2.864" f51 F))
+;    (bcStrings (8 "-3.265" f52 F))
+;    (bcStrings (8 "-3.2776" f53 F))
+;    (bcStrings (8 "-2.2878" f54 F))
+;    (bcStrings (8 "4.04" f55 F))
+;    (bcStrings (8 "3.5103" f56 F))
+;    (bcStrings (8 "2.0612" f57 F))
+;    (bcStrings (8 "0.28595" f58 F))
+;    (bcStrings (8 "-1.6946" f59 F))
+;    (bcStrings (8 "-3.2046" f60 F))
+;    (bcStrings (8 "-3.96" f61 F))
+;    (bcStrings (8 "-3.7958" f62 F))
+;    (bcStrings (8 "-2.6146" f63 F))
+;    (bcStrings (8 "4.5" f64 F))
+;    (bcStrings (8 "3.9391" f65 F))
+;    (bcStrings (8 "2.4314" f66 F))
+;    (bcStrings (8 "0.31632" f67 F))
+;    (bcStrings (8 "-1.8627" f68 F))
+;    (bcStrings (8 "-3.6351" f69 F))
+;    (bcStrings (8 "-4.455" f70 F))
+;    (bcStrings (8 "-4.2141" f71 F))
+;    (bcStrings (8 "-2.9314" f72 F))
+;    (bcStrings (8 "5.04" f73 F))
+;    (bcStrings (8 "4.3879" f74 F))
+;    (bcStrings (8 "2.7515" f75 F))
+;    (bcStrings (8 "0.35369" f76 F))
+;    (bcStrings (8 "-2.0707" f77 F))
+;    (bcStrings (8 "-4.0057" f78 F))
+;    (bcStrings (8 "-4.97" f79 F))
+;    (bcStrings (8 "-4.6823" f80 F))
+;    (bcStrings (8 "-3.2382" f81 F))
+;    (bcStrings (8 "5.505" f82 F))
+;    (bcStrings (8 "4.8367" f83 F))
+;    (bcStrings (8 "2.9717" f84 F))
+;    (bcStrings (8 "0.38505" f85 F))
+;    (bcStrings (8 "-2.2888" f86 F))
+;    (bcStrings (8 "-4.4033" f87 F))
+;    (bcStrings (8 "-5.445" f88 F))
+;    (bcStrings (8 "-5.1405" f89 F))
+;    (bcStrings (8 "-3.595" f90 F))
+;    (bcStrings (8 "6" f91 F))
+;    (bcStrings (8 "5.2755" f92 F))
+;    (bcStrings (8 "3.2418" f93 F))
+;    (bcStrings (8 "0.42442" f94 F))
+;    (bcStrings (8 "-2.4769" f95 F))
+;    (bcStrings (8 "-4.8169" f96 F))
+;    (bcStrings (8 "-5.93" f97 F))
+;    (bcStrings (8 "-5.6387" f98 F))
+;    (bcStrings (8 "-3.9319" f99 F)))
+;  htMakeDoneButton('"Continue",'e02dcfColdGen)
+;  htpSetProperty(page,'mx,mx)
+;  htpSetProperty(page,'my,my)
+;  htpSetProperty(page,'nxest,nxest)
+;  htpSetProperty(page,'nyest,nyest)
+;  htpSetProperty(page,'lwrk,lwrk)
+;  htpSetProperty(page,'liwrk,liwrk)
+;  htpSetProperty(page,'s,s)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02dcfDefaultSolve|
+       (|htPage| |nxest| |nyest| |lwrk| |liwrk| |s| |ifail|)
+  (PROG (|mx| |my| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |mx| 11)
+        (SPADLET |my| 9)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02DCF - Least-squares curve by bicubic splines with automatic knot placement, data on a rectangular grid")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text| . "\\newline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of {\\it x(mx)}:")
+              (|text| . "\\newline ") (|bcStrings| (8 "0" |x1| F))
+              (|bcStrings| (8 "0.5" |x2| F))
+              (|bcStrings| (8 "1" |x3| F))
+              (|bcStrings| (8 "1.5" |x4| F))
+              (|bcStrings| (8 "2" |x5| F))
+              (|bcStrings| (8 "2.5" |x6| F))
+              (|bcStrings| (8 "3" |x7| F))
+              (|bcStrings| (8 "3.5" |x8| F))
+              (|bcStrings| (8 "4" |x9| F))
+              (|bcStrings| (8 "4.5" |x10| F))
+              (|bcStrings| (8 "5" |x11| F)) (|text| . "\\blankline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of {\\it y(my)}:")
+              (|text| . "\\newline ") (|bcStrings| (8 "0" |y1| F))
+              (|bcStrings| (8 "0.5" |y2| F))
+              (|bcStrings| (8 "1" |y3| F))
+              (|bcStrings| (8 "1.5" |y4| F))
+              (|bcStrings| (8 "2" |y5| F))
+              (|bcStrings| (8 "2.5" |y6| F))
+              (|bcStrings| (8 "3" |y7| F))
+              (|bcStrings| (8 "3.5" |y8| F))
+              (|bcStrings| (8 "4" |y9| F)) (|text| . "\\blankline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of {\\it f(mx*my)}:")
+              (|text| . "\\newline ") (|bcStrings| (8 "1" |f1| F))
+              (|bcStrings| (8 "0.88758" |f2| F))
+              (|bcStrings| (8 "0.5403" |f3| F))
+              (|bcStrings| (8 "0.070737" |f4| F))
+              (|bcStrings| (8 "-0.41515" |f5| F))
+              (|bcStrings| (8 "-0.80114" |f6| F))
+              (|bcStrings| (8 "-0.97999" |f7| F))
+              (|bcStrings| (8 "-0.93446" |f8| F))
+              (|bcStrings| (8 "-0.65664" |f9| F))
+              (|bcStrings| (8 "1.5" |f10| F))
+              (|bcStrings| (8 "1.3564" |f11| F))
+              (|bcStrings| (8 "0.82045" |f12| F))
+              (|bcStrings| (8 "0.10611" |f13| F))
+              (|bcStrings| (8 "-0.62422" |f14| F))
+              (|bcStrings| (8 "-1.2317" |f15| F))
+              (|bcStrings| (8 "-1.485" |f16| F))
+              (|bcStrings| (8 "-1.3047" |f17| F))
+              (|bcStrings| (8 "-0.98547" |f18| F))
+              (|bcStrings| (8 "2.06" |f19| F))
+              (|bcStrings| (8 "1.7552" |f20| F))
+              (|bcStrings| (8 "1.0806" |f21| F))
+              (|bcStrings| (8 "0.15147" |f22| F))
+              (|bcStrings| (8 "-0.83229" |f23| F))
+              (|bcStrings| (8 "-1.6023" |f24| F))
+              (|bcStrings| (8 "-1.97" |f25| F))
+              (|bcStrings| (8 "-1.8729" |f26| F))
+              (|bcStrings| (8 "-1.4073" |f27| F))
+              (|bcStrings| (8 "2.57" |f28| F))
+              (|bcStrings| (8 "2.124" |f29| F))
+              (|bcStrings| (8 "1.3508" |f30| F))
+              (|bcStrings| (8 "0.17684" |f31| F))
+              (|bcStrings| (8 "-1.0404" |f32| F))
+              (|bcStrings| (8 "-2.0029" |f33| F))
+              (|bcStrings| (8 "-2.475" |f34| F))
+              (|bcStrings| (8 "-2.3511" |f35| F))
+              (|bcStrings| (8 "-1.6741" |f36| F))
+              (|bcStrings| (8 "3" |f37| F))
+              (|bcStrings| (8 "2.6427" |f38| F))
+              (|bcStrings| (8 "1.6309" |f39| F))
+              (|bcStrings| (8 "0.21221" |f40| F))
+              (|bcStrings| (8 "-1.2484" |f41| F))
+              (|bcStrings| (8 "-2.2034" |f42| F))
+              (|bcStrings| (8 "-2.97" |f43| F))
+              (|bcStrings| (8 "-2.8094" |f44| F))
+              (|bcStrings| (8 "-1.9809" |f45| F))
+              (|bcStrings| (8 "3.5" |f46| F))
+              (|bcStrings| (8 "3.1715" |f47| F))
+              (|bcStrings| (8 "1.8611" |f48| F))
+              (|bcStrings| (8 "0.24458" |f49| F))
+              (|bcStrings| (8 "-1.4565" |f50| F))
+              (|bcStrings| (8 "-2.864" |f51| F))
+              (|bcStrings| (8 "-3.265" |f52| F))
+              (|bcStrings| (8 "-3.2776" |f53| F))
+              (|bcStrings| (8 "-2.2878" |f54| F))
+              (|bcStrings| (8 "4.04" |f55| F))
+              (|bcStrings| (8 "3.5103" |f56| F))
+              (|bcStrings| (8 "2.0612" |f57| F))
+              (|bcStrings| (8 "0.28595" |f58| F))
+              (|bcStrings| (8 "-1.6946" |f59| F))
+              (|bcStrings| (8 "-3.2046" |f60| F))
+              (|bcStrings| (8 "-3.96" |f61| F))
+              (|bcStrings| (8 "-3.7958" |f62| F))
+              (|bcStrings| (8 "-2.6146" |f63| F))
+              (|bcStrings| (8 "4.5" |f64| F))
+              (|bcStrings| (8 "3.9391" |f65| F))
+              (|bcStrings| (8 "2.4314" |f66| F))
+              (|bcStrings| (8 "0.31632" |f67| F))
+              (|bcStrings| (8 "-1.8627" |f68| F))
+              (|bcStrings| (8 "-3.6351" |f69| F))
+              (|bcStrings| (8 "-4.455" |f70| F))
+              (|bcStrings| (8 "-4.2141" |f71| F))
+              (|bcStrings| (8 "-2.9314" |f72| F))
+              (|bcStrings| (8 "5.04" |f73| F))
+              (|bcStrings| (8 "4.3879" |f74| F))
+              (|bcStrings| (8 "2.7515" |f75| F))
+              (|bcStrings| (8 "0.35369" |f76| F))
+              (|bcStrings| (8 "-2.0707" |f77| F))
+              (|bcStrings| (8 "-4.0057" |f78| F))
+              (|bcStrings| (8 "-4.97" |f79| F))
+              (|bcStrings| (8 "-4.6823" |f80| F))
+              (|bcStrings| (8 "-3.2382" |f81| F))
+              (|bcStrings| (8 "5.505" |f82| F))
+              (|bcStrings| (8 "4.8367" |f83| F))
+              (|bcStrings| (8 "2.9717" |f84| F))
+              (|bcStrings| (8 "0.38505" |f85| F))
+              (|bcStrings| (8 "-2.2888" |f86| F))
+              (|bcStrings| (8 "-4.4033" |f87| F))
+              (|bcStrings| (8 "-5.445" |f88| F))
+              (|bcStrings| (8 "-5.1405" |f89| F))
+              (|bcStrings| (8 "-3.595" |f90| F))
+              (|bcStrings| (8 "6" |f91| F))
+              (|bcStrings| (8 "5.2755" |f92| F))
+              (|bcStrings| (8 "3.2418" |f93| F))
+              (|bcStrings| (8 "0.42442" |f94| F))
+              (|bcStrings| (8 "-2.4769" |f95| F))
+              (|bcStrings| (8 "-4.8169" |f96| F))
+              (|bcStrings| (8 "-5.93" |f97| F))
+              (|bcStrings| (8 "-5.6387" |f98| F))
+              (|bcStrings| (8 "-3.9319" |f99| F))))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02dcfColdGen|)
+        (|htpSetProperty| |page| '|mx| |mx|)
+        (|htpSetProperty| |page| '|my| |my|)
+        (|htpSetProperty| |page| '|nxest| |nxest|)
+        (|htpSetProperty| |page| '|nyest| |nyest|)
+        (|htpSetProperty| |page| '|lwrk| |lwrk|)
+        (|htpSetProperty| |page| '|liwrk| |liwrk|)
+        (|htpSetProperty| |page| '|s| |s|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02dcfColdGen htPage ==
+;  mx := htpProperty(htPage,'mx)
+;  my := htpProperty(htPage,'my)
+;  nxest := htpProperty(htPage,'nxest)
+;  nyest := htpProperty(htPage,'nyest)
+;  lwrk := htpProperty(htPage,'lwrk)
+;  liwrk := htpProperty(htPage,'liwrk)
+;  s := htpProperty(htPage,'s)
+;  cold := '"c"
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  y := alist
+;  for i in 1..(mx*my) repeat
+;    end := STRCONC((first y).1," ")
+;    y := rest y
+;    fList := [end,:fList]
+;  fstring := bcwords2liststring fList
+;  for i in 1..my repeat
+;    mid :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    ylist := [mid,:ylist]
+;  ystring := bcwords2liststring ylist
+;  while y repeat
+;    start :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    xlist := [start,:xlist]
+;  xstring := bcwords2liststring xlist
+;  -- additional entries needed to get it running
+;  -- but as Start = c they are not used
+;  prefix := STRCONC('"e02dcf(_"",cold,"_",",STRINGIMAGE mx,", [",xstring,"],")
+;  prefix := STRCONC(prefix,STRINGIMAGE my,",[",ystring,"],[",fstring,"], ")
+;  prefix := STRCONC(prefix,STRINGIMAGE s,", ",STRINGIMAGE nxest,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE nyest,", ",STRINGIMAGE lwrk,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE liwrk,",0,new(1,", STRINGIMAGE nxest,",0.0)$MATRIX DFLOAT,")
+;  prefix := STRCONC(prefix,"0,new(1,", STRINGIMAGE nyest,",0.0)$MATRIX DFLOAT,")
+;  end := STRCONC("new(1,", STRINGIMAGE lwrk,",0.0)$MATRIX DFLOAT,[[0 for i in 1..")
+;  end := STRCONC(end,STRINGIMAGE liwrk,"]]::Matrix Integer,",STRINGIMAGE ifail,")")
+;  linkGen STRCONC(prefix,end)
+
+(DEFUN |e02dcfColdGen| (|htPage|)
+  (PROG (|mx| |my| |nxest| |nyest| |lwrk| |liwrk| |s| |cold| |ifail|
+              |alist| |fList| |fstring| |mid| |ylist| |ystring| |start|
+              |y| |xlist| |xstring| |prefix| |end|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |mx| (|htpProperty| |htPage| '|mx|))
+             (SPADLET |my| (|htpProperty| |htPage| '|my|))
+             (SPADLET |nxest| (|htpProperty| |htPage| '|nxest|))
+             (SPADLET |nyest| (|htpProperty| |htPage| '|nyest|))
+             (SPADLET |lwrk| (|htpProperty| |htPage| '|lwrk|))
+             (SPADLET |liwrk| (|htpProperty| |htPage| '|liwrk|))
+             (SPADLET |s| (|htpProperty| |htPage| '|s|))
+             (SPADLET |cold| (MAKESTRING "c"))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |y| |alist|)
+             (DO ((G168056 (TIMES |mx| |my|)) (|i| 1 (QSADD1 |i|)))
+                 ((QSGREATERP |i| G168056) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |end|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |fList| (CONS |end| |fList|))))))
+             (SPADLET |fstring| (|bcwords2liststring| |fList|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |my|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |mid|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |ylist| (CONS |mid| |ylist|))))))
+             (SPADLET |ystring| (|bcwords2liststring| |ylist|))
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |start|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |xlist| (CONS |start| |xlist|))))))
+             (SPADLET |xstring| (|bcwords2liststring| |xlist|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02dcf(\"") |cold| '|",|
+                               (STRINGIMAGE |mx|) '|, [| |xstring|
+                               '|],|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |my|) '|,[|
+                               |ystring| '|],[| |fstring| '|], |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |s|) '|, |
+                               (STRINGIMAGE |nxest|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |nyest|) '|, |
+                               (STRINGIMAGE |lwrk|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |liwrk|)
+                               '|,0,new(1,| (STRINGIMAGE |nxest|)
+                               '|,0.0)$MATRIX DFLOAT,|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| '|0,new(1,|
+                               (STRINGIMAGE |nyest|)
+                               '|,0.0)$MATRIX DFLOAT,|))
+             (SPADLET |end|
+                      (STRCONC '|new(1,| (STRINGIMAGE |lwrk|)
+                               '|,0.0)$MATRIX DFLOAT,[[0 for i in 1..|))
+             (SPADLET |end|
+                      (STRCONC |end| (STRINGIMAGE |liwrk|)
+                               '|]]::Matrix Integer,|
+                               (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| (STRCONC |prefix| |end|)))))))
+
+;e02ddf() ==
+;  htInitPage('"E02DDF - Least-squares surface fit by bicubic splines with automatic knot placement, scattered data",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02ddf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02ddf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "\newline ")
+;    (text . "Determines a bicubic spline approximation to a set of scattered")
+;    (text . " points ( \htbitmap{xr},\htbitmap{yr}, ")
+;    (text . "\htbitmap{fr})")
+;    (text . "with weights \htbitmap{wr}, for r = 1,2,...,m. ")
+;    (text . "The knots \htbitmap{lamdai}, for i = 1,2,...,")
+;    (text . "\htbitmap{nx} and \htbitmap{mui}, for ")
+;    (text . "i = 1,2,...,\htbitmap{ny} are chosen by the routine ")
+;    (text . ", but a single parameter S must be specified to control the ")
+;    (text . "trade-off between closeness of fit and smoothness of fit.  This ")
+;    (text . "affects the number of knots required by the spline, which is ")
+;    (text . "given in the B-spline representation \htbitmap{e02daf}")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of data points {\it m}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 30 m PI))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} ")
+;    (text . "Over-estimate of \htbitmap{nx} of knots \lambda of the ")
+;    (text . "computed spline, {\it nxest}: \newline\tab{2} ")
+;    (bcStrings (6 14 nxest PI))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} ")
+;    (text . "Over-estimate of \htbitmap{ny} of knots \mu of the computed ")
+;    (text . "spline, {\it nyest}: \newline\tab{2} ")
+;    (bcStrings (6 14 nyest PI))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Smoothing factor {\it s}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 "10" s F))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Start value: ")
+;    (radioButtons start
+;        ("" "  Cold Start - no values needed for {\it nx,ny,lamda,wrk,iwrk}" cold)
+;        ("" "  Warm Start - uses knots found in a previous call" warm))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02ddfSolve)
+;  htShowPage()
+
+(DEFUN |e02ddf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02DDF - Least-squares surface fit by bicubic splines with automatic knot placement, scattered data")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02ddf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02ddf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text| . "\\newline ")
+          (|text|
+           . "Determines a bicubic spline approximation to a set of scattered")
+          (|text| . " points ( \\htbitmap{xr},\\htbitmap{yr}, ")
+          (|text| . "\\htbitmap{fr})")
+          (|text| . "with weights \\htbitmap{wr}, for r = 1,2,...,m. ")
+          (|text| . "The knots \\htbitmap{lamdai}, for i = 1,2,...,")
+          (|text| . "\\htbitmap{nx} and \\htbitmap{mui}, for ")
+          (|text|
+           . "i = 1,2,...,\\htbitmap{ny} are chosen by the routine ")
+          (|text|
+           . ", but a single parameter S must be specified to control the ")
+          (|text|
+           . "trade-off between closeness of fit and smoothness of fit.  This ")
+          (|text|
+           . "affects the number of knots required by the spline, which is ")
+          (|text|
+           . "given in the B-spline representation \\htbitmap{e02daf}")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Number of data points {\\it m}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 30 |m| PI))
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} ")
+          (|text|
+           . "Over-estimate of \\htbitmap{nx} of knots \\lambda of the ")
+          (|text|
+           . "computed spline, {\\it nxest}: \\newline\\tab{2} ")
+          (|bcStrings| (6 14 |nxest| PI)) (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} ")
+          (|text|
+           . "Over-estimate of \\htbitmap{ny} of knots \\mu of the computed ")
+          (|text| . "spline, {\\it nyest}: \\newline\\tab{2} ")
+          (|bcStrings| (6 14 |nyest| PI)) (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Smoothing factor {\\it s}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 "10" |s| F))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Start value: ")
+          (|radioButtons| |start|
+              (""
+              "  Cold Start - no values needed for {\\it nx,ny,lamda,wrk,iwrk}"
+               |cold|)
+              ("" "  Warm Start - uses knots found in a previous call"
+               |warm|))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02ddfSolve|)
+    (|htShowPage|)))
+
+;e02ddfSolve htPage ==
+;  m :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
+;    objValUnwrap htpLabelSpadValue(htPage, 'm)
+;  nxest :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nxest)
+;    objValUnwrap htpLabelSpadValue(htPage, 'nxest)
+;  nyest :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nyest)
+;    objValUnwrap htpLabelSpadValue(htPage, 'nyest)
+;  u := nxest - 4
+;  v := nyest - 4
+;  wlist := [u,v]
+;  w := APPLY ('MAX, wlist)
+;  lwrk := (7*u*v + 25*w)*(w + 1) + 2*(u + v + 4*m) + 23*w + 56
+;  liwrk := m + 2*(nxest - 7)*(nyest - 7)
+;  s := htpLabelInputString(htPage,'s)
+;  initial := htpButtonValue(htPage,'start)
+;  start :=
+;    initial = 'cold => '1
+;    '2
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  (m = 30 and start = 1) => e02ddfDefaultSolve (htPage,nxest,nyest,lwrk,liwrk,s,ifail)
+;  start = 1 => e02ddfColdSolve (htPage,m,nxest,nyest,lwrk,liwrk,s,ifail)
+;  -- need to change as only wrk(1) is required
+;  labelList :=
+;    "append"/[f(i) for i in 1..m] where f(i) ==
+;      prefix := ('"\newline \tab{2} ")
+;      middle := ('"\tab{17} ")
+;      post   := ('"\tab{32} ")
+;      end    := ('"\tab{47} ")
+;      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
+;      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
+;      fnam := INTERN STRCONC ('"f",STRINGIMAGE i)
+;      wnam := INTERN STRCONC ('"w",STRINGIMAGE i)
+;      [['text,:prefix],['bcStrings,[8, 0.0, xnam, 'F]],
+;       ['text,:middle],['bcStrings,[8, 0.0, ynam, 'F]],
+;        ['text,:post],['bcStrings,[8, 0.0, fnam, 'F]],
+;         ['text,:end],['bcStrings,[8, 0.0, wnam, 'F]]]
+;  lamdaList :=
+;    "append"/[g(i) for i in 1..nxest] where g(i) ==
+;      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, lnam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} Values of Lamda: \newline")
+;  lamdaList := [['text,:prefix],:lamdaList]
+;  muList :=
+;    "append"/[h(i) for i in 1..nyest] where h(i) ==
+;      mnam := INTERN STRCONC ('"m",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, mnam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} Values of Mu: \newline")
+;  muList := [['text,:prefix],:muList]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} Value of nx: \newline \tab{2}")
+;  nxList := [['text,:prefix],['bcStrings,[8, 10, 'nx, 'PI]]]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} Value of ny: \newline \tab{2}")
+;  nyList := [['text,:prefix],['bcStrings,[8, 9, 'ny, 'PI]]]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} Value of WRK(1): \newline \tab{2}")
+;  wList := [['text,:prefix],['bcStrings,[8, 0.0, 'wone, 'F]]]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList,:lamdaList,:muList,:nxList,:nyList,:wList]
+;  page := htInitPage('"E02DDF - Least-squares surface fit by bicubic splines with automatic knot placement, scattered data",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Values of \space{1} "
+;  htSay '"\htbitmap{xr}: \tab{15} \menuitemstyle{}\tab{17} "
+;  htSay '"Values of \space{1} \htbitmap{yr}: \tab{30}"
+;  htSay '"\menuitemstyle{}\tab{32} Values of \space{1} "
+;  htSay '"\htbitmap{fr}: \tab{45} \menuitemstyle{} "
+;  htSay '"\tab{47} Values of \htbitmap{wr}:"
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02ddfWarmGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'nxest,nxest)
+;  htpSetProperty(page,'nyest,nyest)
+;  htpSetProperty(page,'lwrk,lwrk)
+;  htpSetProperty(page,'liwrk,liwrk)
+;  htpSetProperty(page,'s,s)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02ddfSolve,f| (|i|)
+  (PROG (|prefix| |middle| |post| |end| |xnam| |ynam| |fnam| |wnam|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |middle| (MAKESTRING "\\tab{17} "))
+           (SPADLET |post| (MAKESTRING "\\tab{32} "))
+           (SPADLET |end| (MAKESTRING "\\tab{47} "))
+           (SPADLET |xnam|
+                    (INTERN (STRCONC (MAKESTRING "x")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |ynam|
+                    (INTERN (STRCONC (MAKESTRING "y")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |fnam|
+                    (INTERN (STRCONC (MAKESTRING "f")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |wnam|
+                    (INTERN (STRCONC (MAKESTRING "w")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 8
+                                     (CONS 0.0
+                                      (CONS |xnam| (CONS 'F NIL))))
+                                    NIL))
+                             (CONS (CONS '|text| |middle|)
+                                   (CONS
+                                    (CONS '|bcStrings|
+                                     (CONS
+                                      (CONS 8
+                                       (CONS 0.0
+                                        (CONS |ynam| (CONS 'F NIL))))
+                                      NIL))
+                                    (CONS (CONS '|text| |post|)
+                                     (CONS
+                                      (CONS '|bcStrings|
+                                       (CONS
+                                        (CONS 8
+                                         (CONS 0.0
+                                          (CONS |fnam| (CONS 'F NIL))))
+                                        NIL))
+                                      (CONS (CONS '|text| |end|)
+                                       (CONS
+                                        (CONS '|bcStrings|
+                                         (CONS
+                                          (CONS 8
+                                           (CONS 0.0
+                                            (CONS |wnam| (CONS 'F NIL))))
+                                          NIL))
+                                        NIL)))))))))))))
+
+(DEFUN |e02ddfSolve,g| (|i|)
+  (PROG (|lnam|)
+    (RETURN
+      (SEQ (SPADLET |lnam|
+                    (INTERN (STRCONC (MAKESTRING "l")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |lnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02ddfSolve,h| (|i|)
+  (PROG (|mnam|)
+    (RETURN
+      (SEQ (SPADLET |mnam|
+                    (INTERN (STRCONC (MAKESTRING "m")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |mnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02ddfSolve| (|htPage|)
+  (PROG (|m| |nxest| |nyest| |u| |v| |wlist| |w| |lwrk| |liwrk| |s|
+             |initial| |start| |error| |ifail| |labelList| |lamdaList|
+             |muList| |nxList| |nyList| |prefix| |wList| |equationPart|
+             |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|m|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|m|)))))
+             (SPADLET |nxest|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|nxest|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|nxest|)))))
+             (SPADLET |nyest|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|nyest|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|nyest|)))))
+             (SPADLET |u| (SPADDIFFERENCE |nxest| 4))
+             (SPADLET |v| (SPADDIFFERENCE |nyest| 4))
+             (SPADLET |wlist| (CONS |u| (CONS |v| NIL)))
+             (SPADLET |w| (APPLY 'MAX |wlist|))
+             (SPADLET |lwrk|
+                      (PLUS (PLUS (PLUS (TIMES
+                                         (PLUS
+                                          (TIMES (TIMES 7 |u|) |v|)
+                                          (TIMES 25 |w|))
+                                         (PLUS |w| 1))
+                                        (TIMES 2
+                                         (PLUS (PLUS |u| |v|)
+                                          (TIMES 4 |m|))))
+                                  (TIMES 23 |w|))
+                            56))
+             (SPADLET |liwrk|
+                      (PLUS |m|
+                            (TIMES (TIMES 2 (SPADDIFFERENCE |nxest| 7))
+                                   (SPADDIFFERENCE |nyest| 7))))
+             (SPADLET |s| (|htpLabelInputString| |htPage| '|s|))
+             (SPADLET |initial| (|htpButtonValue| |htPage| '|start|))
+             (SPADLET |start|
+                      (COND
+                        ((BOOT-EQUAL |initial| '|cold|) '1)
+                        ('T '2)))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((AND (EQL |m| 30) (EQL |start| 1))
+                (|e02ddfDefaultSolve| |htPage| |nxest| |nyest| |lwrk|
+                    |liwrk| |s| |ifail|))
+               ((EQL |start| 1)
+                (|e02ddfColdSolve| |htPage| |m| |nxest| |nyest| |lwrk|
+                    |liwrk| |s| |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G168147)
+                           (SPADLET G168147 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |m|) G168147)
+                               (SEQ (EXIT
+                                     (SETQ G168147
+                                      (APPEND G168147
+                                       (|e02ddfSolve,f| |i|)))))))))
+                (SPADLET |lamdaList|
+                         (PROG (G168155)
+                           (SPADLET G168155 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |nxest|) G168155)
+                               (SEQ (EXIT
+                                     (SETQ G168155
+                                      (APPEND G168155
+                                       (|e02ddfSolve,g| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                             "\\blankline \\menuitemstyle{} \\tab{2} Values of Lamda: \\newline"))
+                (SPADLET |lamdaList|
+                         (CONS (CONS '|text| |prefix|) |lamdaList|))
+                (SPADLET |muList|
+                         (PROG (G168163)
+                           (SPADLET G168163 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |nyest|) G168163)
+                               (SEQ (EXIT
+                                     (SETQ G168163
+                                      (APPEND G168163
+                                       (|e02ddfSolve,h| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                             "\\blankline \\menuitemstyle{} \\tab{2} Values of Mu: \\newline"))
+                (SPADLET |muList|
+                         (CONS (CONS '|text| |prefix|) |muList|))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                             "\\blankline \\menuitemstyle{} \\tab{2} Value of nx: \\newline \\tab{2}"))
+                (SPADLET |nxList|
+                         (CONS (CONS '|text| |prefix|)
+                               (CONS (CONS '|bcStrings|
+                                      (CONS
+                                       (CONS 8
+                                        (CONS 10
+                                         (CONS '|nx| (CONS 'PI NIL))))
+                                       NIL))
+                                     NIL)))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                             "\\blankline \\menuitemstyle{} \\tab{2} Value of ny: \\newline \\tab{2}"))
+                (SPADLET |nyList|
+                         (CONS (CONS '|text| |prefix|)
+                               (CONS (CONS '|bcStrings|
+                                      (CONS
+                                       (CONS 8
+                                        (CONS 9
+                                         (CONS '|ny| (CONS 'PI NIL))))
+                                       NIL))
+                                     NIL)))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                             "\\blankline \\menuitemstyle{} \\tab{2} Value of WRK(1): \\newline \\tab{2}"))
+                (SPADLET |wList|
+                         (CONS (CONS '|text| |prefix|)
+                               (CONS (CONS '|bcStrings|
+                                      (CONS
+                                       (CONS 8
+                                        (CONS 0.0
+                                         (CONS '|wone| (CONS 'F NIL))))
+                                       NIL))
+                                     NIL)))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               (APPEND |labelList|
+                                       (APPEND |lamdaList|
+                                        (APPEND |muList|
+                                         (APPEND |nxList|
+                                          (APPEND |nyList| |wList|)))))))
+                (SPADLET |page|
+                         (|htInitPage|
+                             (MAKESTRING
+                                 "E02DDF - Least-squares surface fit by bicubic splines with automatic knot placement, scattered data")
+                             NIL))
+                (|htSay| (MAKESTRING
+                             "\\menuitemstyle{}\\tab{2} Values of \\space{1} "))
+                (|htSay| (MAKESTRING
+                             "\\htbitmap{xr}: \\tab{15} \\menuitemstyle{}\\tab{17} "))
+                (|htSay| (MAKESTRING
+                             "Values of \\space{1} \\htbitmap{yr}: \\tab{30}"))
+                (|htSay| (MAKESTRING
+                             "\\menuitemstyle{}\\tab{32} Values of \\space{1} "))
+                (|htSay| (MAKESTRING
+                             "\\htbitmap{fr}: \\tab{45} \\menuitemstyle{} "))
+                (|htSay| (MAKESTRING
+                             "\\tab{47} Values of \\htbitmap{wr}:"))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02ddfWarmGen|)
+                (|htpSetProperty| |page| '|m| |m|)
+                (|htpSetProperty| |page| '|nxest| |nxest|)
+                (|htpSetProperty| |page| '|nyest| |nyest|)
+                (|htpSetProperty| |page| '|lwrk| |lwrk|)
+                (|htpSetProperty| |page| '|liwrk| |liwrk|)
+                (|htpSetProperty| |page| '|s| |s|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02ddfColdSolve(htPage,m,nxest,nyest,lwrk,liwrk,s,ifail)  ==
+;  labelList :=
+;    "append"/[f(i) for i in 1..m] where f(i) ==
+;      prefix := ('"\newline \tab{2} ")
+;      middle := ('"\tab{17} ")
+;      post   := ('"\tab{32} ")
+;      end    := ('"\tab{47} ")
+;      xnam := INTERN STRCONC ('"x",STRINGIMAGE i)
+;      ynam := INTERN STRCONC ('"y",STRINGIMAGE i)
+;      fnam := INTERN STRCONC ('"f",STRINGIMAGE i)
+;      wnam := INTERN STRCONC ('"w",STRINGIMAGE i)
+;      [['text,:prefix],['bcStrings,[8, 0.0, xnam, 'F]],
+;       ['text,:middle],['bcStrings,[8, 0.0, ynam, 'F]],
+;        ['text,:post],['bcStrings,[8, 0.0, fnam, 'F]],
+;         ['text,:end],['bcStrings,[8, 0.0, wnam, 'F]]]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList]
+;  page := htInitPage('"E02DDF - Least-squares surface fit by bicubic splines with automatic knot placement, scattered data",nil)
+;  htSay '"\menuitemstyle{}\tab{2} Values of \space{1} "
+;  htSay '"\htbitmap{xr}: \tab{15} \menuitemstyle{}\tab{17} "
+;  htSay '"Values of \space{1} \htbitmap{yr}: \tab{30}"
+;  htSay '"\menuitemstyle{}\tab{32} Values of \space{1} "
+;  htSay '"\htbitmap{fr}: \tab{44} \menuitemstyle{} "
+;  htSay '"\tab{46} Values of \htbitmap{wr}:"
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02ddfColdGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'nxest,nxest)
+;  htpSetProperty(page,'nyest,nyest)
+;  htpSetProperty(page,'lwrk,lwrk)
+;  htpSetProperty(page,'liwrk,liwrk)
+;  htpSetProperty(page,'s,s)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02ddfColdSolve,f| (|i|)
+  (PROG (|prefix| |middle| |post| |end| |xnam| |ynam| |fnam| |wnam|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |middle| (MAKESTRING "\\tab{17} "))
+           (SPADLET |post| (MAKESTRING "\\tab{32} "))
+           (SPADLET |end| (MAKESTRING "\\tab{47} "))
+           (SPADLET |xnam|
+                    (INTERN (STRCONC (MAKESTRING "x")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |ynam|
+                    (INTERN (STRCONC (MAKESTRING "y")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |fnam|
+                    (INTERN (STRCONC (MAKESTRING "f")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |wnam|
+                    (INTERN (STRCONC (MAKESTRING "w")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 8
+                                     (CONS 0.0
+                                      (CONS |xnam| (CONS 'F NIL))))
+                                    NIL))
+                             (CONS (CONS '|text| |middle|)
+                                   (CONS
+                                    (CONS '|bcStrings|
+                                     (CONS
+                                      (CONS 8
+                                       (CONS 0.0
+                                        (CONS |ynam| (CONS 'F NIL))))
+                                      NIL))
+                                    (CONS (CONS '|text| |post|)
+                                     (CONS
+                                      (CONS '|bcStrings|
+                                       (CONS
+                                        (CONS 8
+                                         (CONS 0.0
+                                          (CONS |fnam| (CONS 'F NIL))))
+                                        NIL))
+                                      (CONS (CONS '|text| |end|)
+                                       (CONS
+                                        (CONS '|bcStrings|
+                                         (CONS
+                                          (CONS 8
+                                           (CONS 0.0
+                                            (CONS |wnam| (CONS 'F NIL))))
+                                          NIL))
+                                        NIL)))))))))))))
+
+(DEFUN |e02ddfColdSolve|
+       (|htPage| |m| |nxest| |nyest| |lwrk| |liwrk| |s| |ifail|)
+  (PROG (|labelList| |equationPart| |page|)
+  (declare (special |$EmptyMode|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |labelList|
+                      (PROG (G168220)
+                        (SPADLET G168220 NIL)
+                        (RETURN
+                          (DO ((|i| 1 (QSADD1 |i|)))
+                              ((QSGREATERP |i| |m|) G168220)
+                            (SEQ (EXIT (SETQ G168220
+                                        (APPEND G168220
+                                         (|e02ddfColdSolve,f| |i|)))))))))
+             (SPADLET |equationPart|
+                      (CONS '(|domainConditions|
+                                 (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                 (|isDomain| S (|String|))
+                                 (|isDomain| F (|Float|))
+                                 (|isDomain| PI (|PositiveInteger|)))
+                            |labelList|))
+             (SPADLET |page|
+                      (|htInitPage|
+                          (MAKESTRING
+                              "E02DDF - Least-squares surface fit by bicubic splines with automatic knot placement, scattered data")
+                          NIL))
+             (|htSay| (MAKESTRING
+                          "\\menuitemstyle{}\\tab{2} Values of \\space{1} "))
+             (|htSay| (MAKESTRING
+                          "\\htbitmap{xr}: \\tab{15} \\menuitemstyle{}\\tab{17} "))
+             (|htSay| (MAKESTRING
+                          "Values of \\space{1} \\htbitmap{yr}: \\tab{30}"))
+             (|htSay| (MAKESTRING
+                          "\\menuitemstyle{}\\tab{32} Values of \\space{1} "))
+             (|htSay| (MAKESTRING
+                          "\\htbitmap{fr}: \\tab{44} \\menuitemstyle{} "))
+             (|htSay| (MAKESTRING
+                          "\\tab{46} Values of \\htbitmap{wr}:"))
+             (|htMakePage| |equationPart|)
+             (|htSay| (MAKESTRING "\\blankline "))
+             (|htMakeDoneButton| (MAKESTRING "Continue")
+                 '|e02ddfColdGen|)
+             (|htpSetProperty| |page| '|m| |m|)
+             (|htpSetProperty| |page| '|nxest| |nxest|)
+             (|htpSetProperty| |page| '|nyest| |nyest|)
+             (|htpSetProperty| |page| '|lwrk| |lwrk|)
+             (|htpSetProperty| |page| '|liwrk| |liwrk|)
+             (|htpSetProperty| |page| '|s| |s|)
+             (|htpSetProperty| |page| '|ifail| |ifail|)
+             (|htpSetProperty| |page| '|inputArea|
+                 (|htpInputAreaAlist| |htPage|))
+             (|htShowPage|))))))
+
+;e02ddfDefaultSolve (htPage,nxest,nyest,lwrk,liwrk,s,ifail) ==
+;  m := 30
+;  page := htInitPage('"E02DDF - Least-squares surface fit by bicubic splines with automatic knot placement, scattered data",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} Values of \htbitmap{xr}:")
+;    (text . "\tab{15} \menuitemstyle{} \tab{17} Values of ")
+;    (text . "\htbitmap{yr}: \tab{30} \menuitemstyle{} \tab{32} ")
+;    (text . "Values of \htbitmap{fr}: \tab{44} \menuitemstyle{} ")
+;    (text . "\tab{46} Values of \htbitmap{wr}:")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "11.16" x1 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "1.24" y1 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "22.15" f1 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w1 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "12.85" x2 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "3.06" y2 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "22.11" f2 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w2 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "19.85" x3 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "10.72" y3 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "7.97" f3 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w3 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "19.72" x4 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "1.39" y4 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "16.83" f4 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w4 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "15.91" x5 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "7.74" y5 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "15.30" f5 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w5 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0" x6 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "20" y6 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "34.6" f6 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w6 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "20.87" x7 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "20" y7 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "5.74" f7 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w7 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "3.45" x8 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "12.78" y8 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "41.24" f8 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w8 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "14.26" x9 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "17.87" y9 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "10.74" f9 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w9 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "17.43" x10 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "3.46" y10 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "18.60" f10 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w10 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "22.8" x11 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "12.39" y11 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "5.47" f11 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w11 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "7.58" x12 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "1.98" y12 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "29.87" f12 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w12 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "25" x13 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "11.87" y13 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "4.4" f13 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w13 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0" x14 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0" y14 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "58.2" f14 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w14 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "9.66" x15 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "20" y15 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "4.73" f15 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w15 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "5.22" x16 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "14.66" y16 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "40.36" f16 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w16 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "17.25" x17 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "19.57" y17 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "6.43" f17 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w17 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "25" x18 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "3.87" y18 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "8.74" f18 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w18 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "12.13" x19 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "10.79" y19 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "13.71" f19 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w19 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "22.23" x20 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "6.21" y20 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "10.25" f20 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w20 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "11.52" x21 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "8.53" y21 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "15.74" f21 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w21 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "15.2" x22 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0" y22 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "21.6" f22 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w22 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "7.54" x23 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "10.69" y23 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "19.31" f23 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w23 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "17.32" x24 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "13.78" y24 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "12.11" f24 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w24 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "2.14" x25 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "15.03" y25 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "53.1" f25 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w25 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.51" x26 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "8.37" y26 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "49.43" f26 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w26 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "22.69" x27 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "19.63" y27 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "3.25" f27 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w27 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "5.47" x28 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "17.13" y28 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "28.63" f28 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w28 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "21.67" x29 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "14.36" y29 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "5.52" f29 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w29 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "3.31" x30 F))
+;    (text . "\tab{17}")
+;    (bcStrings (8 "0.33" y30 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "44.08" f30 F))
+;    (text . "\tab{47}")
+;    (bcStrings (8 "1" w30 F))
+;    (text . "\blankline"))
+;  htMakeDoneButton('"Continue",'e02ddfColdGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'nxest,nxest)
+;  htpSetProperty(page,'nyest,nyest)
+;  htpSetProperty(page,'lwrk,lwrk)
+;  htpSetProperty(page,'liwrk,liwrk)
+;  htpSetProperty(page,'s,s)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02ddfDefaultSolve|
+       (|htPage| |nxest| |nyest| |lwrk| |liwrk| |s| |ifail|)
+  (PROG (|m| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |m| 30)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02DDF - Least-squares surface fit by bicubic splines with automatic knot placement, scattered data")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text| . "\\newline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} Values of \\htbitmap{xr}:")
+              (|text|
+               . "\\tab{15} \\menuitemstyle{} \\tab{17} Values of ")
+              (|text|
+               . "\\htbitmap{yr}: \\tab{30} \\menuitemstyle{} \\tab{32} ")
+              (|text|
+               . "Values of \\htbitmap{fr}: \\tab{44} \\menuitemstyle{} ")
+              (|text| . "\\tab{46} Values of \\htbitmap{wr}:")
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "11.16" |x1| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "1.24" |y1| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "22.15" |f1| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w1| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "12.85" |x2| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "3.06" |y2| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "22.11" |f2| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w2| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "19.85" |x3| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "10.72" |y3| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "7.97" |f3| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w3| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "19.72" |x4| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "1.39" |y4| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "16.83" |f4| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w4| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "15.91" |x5| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "7.74" |y5| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "15.30" |f5| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w5| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0" |x6| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "20" |y6| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "34.6" |f6| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w6| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "20.87" |x7| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "20" |y7| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "5.74" |f7| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w7| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "3.45" |x8| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "12.78" |y8| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "41.24" |f8| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w8| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "14.26" |x9| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "17.87" |y9| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "10.74" |f9| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w9| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "17.43" |x10| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "3.46" |y10| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "18.60" |f10| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w10| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "22.8" |x11| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "12.39" |y11| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "5.47" |f11| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w11| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "7.58" |x12| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "1.98" |y12| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "29.87" |f12| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w12| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "25" |x13| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "11.87" |y13| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "4.4" |f13| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w13| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0" |x14| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0" |y14| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "58.2" |f14| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w14| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "9.66" |x15| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "20" |y15| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "4.73" |f15| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w15| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "5.22" |x16| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "14.66" |y16| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "40.36" |f16| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w16| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "17.25" |x17| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "19.57" |y17| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "6.43" |f17| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w17| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "25" |x18| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "3.87" |y18| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "8.74" |f18| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w18| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "12.13" |x19| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "10.79" |y19| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "13.71" |f19| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w19| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "22.23" |x20| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "6.21" |y20| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "10.25" |f20| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w20| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "11.52" |x21| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "8.53" |y21| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "15.74" |f21| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w21| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "15.2" |x22| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0" |y22| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "21.6" |f22| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w22| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "7.54" |x23| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "10.69" |y23| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "19.31" |f23| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w23| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "17.32" |x24| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "13.78" |y24| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "12.11" |f24| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w24| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "2.14" |x25| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "15.03" |y25| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "53.1" |f25| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w25| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.51" |x26| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "8.37" |y26| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "49.43" |f26| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w26| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "22.69" |x27| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "19.63" |y27| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "3.25" |f27| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w27| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "5.47" |x28| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "17.13" |y28| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "28.63" |f28| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w28| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "21.67" |x29| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "14.36" |y29| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "5.52" |f29| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w29| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "3.31" |x30| F)) (|text| . "\\tab{17}")
+              (|bcStrings| (8 "0.33" |y30| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "44.08" |f30| F)) (|text| . "\\tab{47}")
+              (|bcStrings| (8 "1" |w30| F)) (|text| . "\\blankline")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02ddfColdGen|)
+        (|htpSetProperty| |page| '|m| |m|)
+        (|htpSetProperty| |page| '|nxest| |nxest|)
+        (|htpSetProperty| |page| '|nyest| |nyest|)
+        (|htpSetProperty| |page| '|lwrk| |lwrk|)
+        (|htpSetProperty| |page| '|liwrk| |liwrk|)
+        (|htpSetProperty| |page| '|s| |s|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02ddfColdGen htPage ==
+;  m := htpProperty(htPage,'m)
+;  nxest := htpProperty(htPage,'nxest)
+;  nyest := htpProperty(htPage,'nyest)
+;  lwrk := htpProperty(htPage,'lwrk)
+;  liwrk := htpProperty(htPage,'liwrk)
+;  s := htpProperty(htPage,'s)
+;  cold := '"c"
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  y := alist
+;  while y repeat
+;    end :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    mid :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    left :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    xlist := [left,:xlist]
+;    ylist := [mid,:ylist]
+;    flist := [right,:flist]
+;    wlist := [end,:wlist]
+;  xstring := bcwords2liststring xlist
+;  ystring := bcwords2liststring ylist
+;  fstring := bcwords2liststring flist
+;  wstring := bcwords2liststring wlist
+;  -- additional entries nx,ny,lamda,mu,wrk needed to get it running
+;  -- but they are just set to 0.0
+;  prefix := STRCONC('"e02ddf(_"",cold,"_",",STRINGIMAGE m,", [",xstring,"],[")
+;  prefix := STRCONC(prefix,ystring,"],[",fstring,"],[",wstring,"], ")
+;  prefix := STRCONC(prefix,STRINGIMAGE s,", ",STRINGIMAGE nxest,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE nyest,", ",STRINGIMAGE lwrk,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE liwrk,", 0,")
+;  prefix := STRCONC(prefix,"new(1,", STRINGIMAGE nxest,",0.0)$MATRIX DFLOAT,0,")
+;  prefix := STRCONC(prefix,"new(1,", STRINGIMAGE nyest,",0.0)$MATRIX DFLOAT,")
+;  prefix := STRCONC(prefix,"new(1,", STRINGIMAGE lwrk,",0.0)$MATRIX DFLOAT,")
+;--  prefix := STRCONC(prefix,"[[0.0 for i in 1..", STRINGIMAGE nxest,"]],0,")
+;--  prefix := STRCONC(prefix,"[[0.0 for i in 1..", STRINGIMAGE nyest,"]],")
+;--  prefix := STRCONC(prefix,"[[0.0 for i in 1..", STRINGIMAGE lwrk,"]],")
+;  prefix := STRCONC(prefix,STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02ddfColdGen| (|htPage|)
+  (PROG (|m| |nxest| |nyest| |lwrk| |liwrk| |s| |cold| |ifail| |alist|
+             |end| |right| |mid| |left| |y| |xlist| |ylist| |flist|
+             |wlist| |xstring| |ystring| |fstring| |wstring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m| (|htpProperty| |htPage| '|m|))
+             (SPADLET |nxest| (|htpProperty| |htPage| '|nxest|))
+             (SPADLET |nyest| (|htpProperty| |htPage| '|nyest|))
+             (SPADLET |lwrk| (|htpProperty| |htPage| '|lwrk|))
+             (SPADLET |liwrk| (|htpProperty| |htPage| '|liwrk|))
+             (SPADLET |s| (|htpProperty| |htPage| '|s|))
+             (SPADLET |cold| (MAKESTRING "c"))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |y| |alist|)
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |end|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |mid|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |left|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |xlist| (CONS |left| |xlist|))
+                            (SPADLET |ylist| (CONS |mid| |ylist|))
+                            (SPADLET |flist| (CONS |right| |flist|))
+                            (SPADLET |wlist| (CONS |end| |wlist|))))))
+             (SPADLET |xstring| (|bcwords2liststring| |xlist|))
+             (SPADLET |ystring| (|bcwords2liststring| |ylist|))
+             (SPADLET |fstring| (|bcwords2liststring| |flist|))
+             (SPADLET |wstring| (|bcwords2liststring| |wlist|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02ddf(\"") |cold| '|",|
+                               (STRINGIMAGE |m|) '|, [| |xstring|
+                               '|],[|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |ystring| '|],[| |fstring|
+                               '|],[| |wstring| '|], |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |s|) '|, |
+                               (STRINGIMAGE |nxest|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |nyest|) '|, |
+                               (STRINGIMAGE |lwrk|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |liwrk|) '|, 0,|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| '|new(1,| (STRINGIMAGE |nxest|)
+                               '|,0.0)$MATRIX DFLOAT,0,|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| '|new(1,| (STRINGIMAGE |nyest|)
+                               '|,0.0)$MATRIX DFLOAT,|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| '|new(1,| (STRINGIMAGE |lwrk|)
+                               '|,0.0)$MATRIX DFLOAT,|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02ddfWarmGen htPage ==
+;  m := htpProperty(htPage,'m)
+;  nxest := htpProperty(htPage,'nxest)
+;  nyest := htpProperty(htPage,'nyest)
+;  lwrk := htpProperty(htPage,'lwrk)
+;  liwrk := htpProperty(htPage,'liwrk)
+;  s := htpProperty(htPage,'s)
+;  warm := '"w"
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  y := alist
+;  wrk := (first y).1
+;  y := rest y
+;  for i in 1..lwrk repeat
+;    wrkList := ['"0.0 ",:wrkList]
+;  wrkList := [wrk,:wrkList]
+;  wrkstring := bcwords2liststring wrkList
+;  ny := STRCONC((first y).1," ")
+;  y := rest y
+;  nx := STRCONC((first y).1," ")
+;  y := rest y
+;  for i in 1..nyest repeat
+;    mu := STRCONC ((first y).1, " ")
+;    y := rest y
+;    muList := [mu,:muList]
+;  mustring := bcwords2liststring muList
+;  for i in 1..nxest repeat
+;    lam := STRCONC ((first y).1, " ")
+;    y := rest y
+;    lamList := [lam,:lamList]
+;  lamstring := bcwords2liststring lamList
+;  while y repeat
+;    end :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    mid :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    left :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    xlist := [left,:xlist]
+;    ylist := [mid,:ylist]
+;    flist := [right,:flist]
+;    wlist := [end,:wlist]
+;  xstring := bcwords2liststring xlist
+;  ystring := bcwords2liststring ylist
+;  fstring := bcwords2liststring flist
+;  wstring := bcwords2liststring wlist
+;  -- additional entries nx,ny,lamda,mu,wrk needed to get it running
+;  -- but they are just set to 0.0
+;  prefix := STRCONC('"e02ddf(_"",warm,"_",",STRINGIMAGE m,", [",xstring,"],[")
+;  prefix := STRCONC(prefix,ystring,"],[",fstring,"],[",wstring,"], ")
+;  prefix := STRCONC(prefix,STRINGIMAGE s,", ",STRINGIMAGE nxest,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE nyest,", ",STRINGIMAGE lwrk,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE liwrk,", ",nx,",[",lamstring,"],",ny)
+;  prefix := STRCONC(prefix,",[",mustring,"],[",wrkstring,"],")
+;  prefix := STRCONC(prefix,STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02ddfWarmGen| (|htPage|)
+  (PROG (|m| |nxest| |nyest| |lwrk| |liwrk| |s| |warm| |ifail| |alist|
+             |wrk| |wrkList| |wrkstring| |ny| |nx| |mu| |muList|
+             |mustring| |lam| |lamList| |lamstring| |end| |right| |mid|
+             |left| |y| |xlist| |ylist| |flist| |wlist| |xstring|
+             |ystring| |fstring| |wstring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m| (|htpProperty| |htPage| '|m|))
+             (SPADLET |nxest| (|htpProperty| |htPage| '|nxest|))
+             (SPADLET |nyest| (|htpProperty| |htPage| '|nyest|))
+             (SPADLET |lwrk| (|htpProperty| |htPage| '|lwrk|))
+             (SPADLET |liwrk| (|htpProperty| |htPage| '|liwrk|))
+             (SPADLET |s| (|htpProperty| |htPage| '|s|))
+             (SPADLET |warm| (MAKESTRING "w"))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |y| |alist|)
+             (SPADLET |wrk| (ELT (CAR |y|) 1))
+             (SPADLET |y| (CDR |y|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |lwrk|) NIL)
+               (SEQ (EXIT (SPADLET |wrkList|
+                                   (CONS (MAKESTRING "0.0 ") |wrkList|)))))
+             (SPADLET |wrkList| (CONS |wrk| |wrkList|))
+             (SPADLET |wrkstring| (|bcwords2liststring| |wrkList|))
+             (SPADLET |ny| (STRCONC (ELT (CAR |y|) 1) '| |))
+             (SPADLET |y| (CDR |y|))
+             (SPADLET |nx| (STRCONC (ELT (CAR |y|) 1) '| |))
+             (SPADLET |y| (CDR |y|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |nyest|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |mu|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |muList| (CONS |mu| |muList|))))))
+             (SPADLET |mustring| (|bcwords2liststring| |muList|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| |nxest|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |lam|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |lamList| (CONS |lam| |lamList|))))))
+             (SPADLET |lamstring| (|bcwords2liststring| |lamList|))
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |end|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |mid|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |left|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |xlist| (CONS |left| |xlist|))
+                            (SPADLET |ylist| (CONS |mid| |ylist|))
+                            (SPADLET |flist| (CONS |right| |flist|))
+                            (SPADLET |wlist| (CONS |end| |wlist|))))))
+             (SPADLET |xstring| (|bcwords2liststring| |xlist|))
+             (SPADLET |ystring| (|bcwords2liststring| |ylist|))
+             (SPADLET |fstring| (|bcwords2liststring| |flist|))
+             (SPADLET |wstring| (|bcwords2liststring| |wlist|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02ddf(\"") |warm| '|",|
+                               (STRINGIMAGE |m|) '|, [| |xstring|
+                               '|],[|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |ystring| '|],[| |fstring|
+                               '|],[| |wstring| '|], |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |s|) '|, |
+                               (STRINGIMAGE |nxest|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |nyest|) '|, |
+                               (STRINGIMAGE |lwrk|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |liwrk|) '|, |
+                               |nx| '|,[| |lamstring| '|],| |ny|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| '|,[| |mustring| '|],[|
+                               |wrkstring| '|],|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+;e02zaf() ==
+;  htInitPage('"E02ZAF - Sort 2-D sata into panels for fitting bicubic splines",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain PI (PositiveInteger)))
+;    (text . "\windowlink{Manual Page}{manpageXXe02zaf} for this routine ")
+;    (text . "\newline ")
+;    (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02zaf| '|NagFittingPackage|)} for this routine")
+;    (text . "\newline \horizontalline ")
+;    (text . "Sorts the set of points {\em (\htbitmap{xr},")
+;    (text . "\htbitmap{yr})} into panels defined by \space{1}")
+;    (text . "\htbitmap{px} -8 points \htbitmap{lamdai} ")
+;    (text . "on the x-axis and \space{1}\htbitmap{py}-8 points ")
+;    (text . "\htbitmap{muj} on the y axis. The points are ordered ")
+;    (text . "so that all points in a panel occur before data in succeeding ")
+;    (text . "panels. Within a panel, the points maintain their original ")
+;    (text . "order. ")
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Number of points to be sorted to be sorted {\it m}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 10 m PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2}")
+;    (text . "\newline Intercepts + 8 on x axis {\em px}:")
+;    (text . "\tab{32} \menuitemstyle{}\tab{34}")
+;    (text . "Intercepts + 8 on y axis {\em py}:")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 9 px PI))
+;    (text . "\tab{34} ")
+;    (bcStrings (6 10 py PI))
+;    (text . "\blankline ")
+;    (text . "\newline \menuitemstyle{}\tab{2} \newline ")
+;    (text . "Dimension of point {\it npoint}: ")
+;    (text . "\newline\tab{2} ")
+;    (bcStrings (6 45 npoint PI))
+;    (text . "\blankline ")
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{} \tab{2} ")
+;    (text . "\newline \tab{2} ")
+;    (text . "Ifail value: ")
+;    (radioButtons ifail
+;        ("" " -1, Print error messages" minusOne)
+;        ("" "  1, Suppress error messages" one)))
+;  htMakeDoneButton('"Continue", 'e02zafSolve)
+;  htShowPage()
+
+(DEFUN |e02zaf| ()
+  (PROGN
+    (|htInitPage|
+        (MAKESTRING
+            "E02ZAF - Sort 2-D sata into panels for fitting bicubic splines")
+        NIL)
+    (|htMakePage|
+        '((|domainConditions| (|isDomain| PI (|PositiveInteger|)))
+          (|text|
+           . "\\windowlink{Manual Page}{manpageXXe02zaf} for this routine ")
+          (|text| . "\\newline ")
+          (|text|
+           . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|e02zaf| '|NagFittingPackage|)} for this routine")
+          (|text| . "\\newline \\horizontalline ")
+          (|text| . "Sorts the set of points {\\em (\\htbitmap{xr},")
+          (|text|
+           . "\\htbitmap{yr})} into panels defined by \\space{1}")
+          (|text| . "\\htbitmap{px} -8 points \\htbitmap{lamdai} ")
+          (|text|
+           . "on the x-axis and \\space{1}\\htbitmap{py}-8 points ")
+          (|text|
+           . "\\htbitmap{muj} on the y axis. The points are ordered ")
+          (|text|
+           . "so that all points in a panel occur before data in succeeding ")
+          (|text|
+           . "panels. Within a panel, the points maintain their original ")
+          (|text| . "order. ") (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text|
+           . "Number of points to be sorted to be sorted {\\it m}: ")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 10 |m| PI))
+          (|text| . "\\blankline ") (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{}\\tab{2}")
+          (|text| . "\\newline Intercepts + 8 on x axis {\\em px}:")
+          (|text| . "\\tab{32} \\menuitemstyle{}\\tab{34}")
+          (|text| . "Intercepts + 8 on y axis {\\em py}:")
+          (|text| . "\\newline\\tab{2} ") (|bcStrings| (6 9 |px| PI))
+          (|text| . "\\tab{34} ") (|bcStrings| (6 10 |py| PI))
+          (|text| . "\\blankline ")
+          (|text| . "\\newline \\menuitemstyle{}\\tab{2} \\newline ")
+          (|text| . "Dimension of point {\\it npoint}: ")
+          (|text| . "\\newline\\tab{2} ")
+          (|bcStrings| (6 45 |npoint| PI)) (|text| . "\\blankline ")
+          (|text| . "\\newline ")
+          (|text| . "\\menuitemstyle{} \\tab{2} ")
+          (|text| . "\\newline \\tab{2} ") (|text| . "Ifail value: ")
+          (|radioButtons| |ifail|
+              ("" " -1, Print error messages" |minusOne|)
+              ("" "  1, Suppress error messages" |one|))))
+    (|htMakeDoneButton| (MAKESTRING "Continue") '|e02zafSolve|)
+    (|htShowPage|)))
+
+;e02zafSolve htPage ==
+;  m :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm)
+;    objValUnwrap htpLabelSpadValue(htPage, 'm)
+;  px :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'px)
+;    objValUnwrap htpLabelSpadValue(htPage, 'px)
+;  py :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'py)
+;    objValUnwrap htpLabelSpadValue(htPage, 'py)
+;  npoint :=
+;    $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'npoint)
+;    objValUnwrap htpLabelSpadValue(htPage, 'npoint)
+;  error := htpButtonValue(htPage,'ifail)
+;  ifail :=
+;    error = 'one => '1
+;    '-1
+;  ((m = '10 and px = '9) and py = '10) => e02zafDefaultSolve(htPage,npoint,ifail)
+;  labelList :=
+;    "append"/[fxy(i) for i in 1..m] where fxy(i) ==
+;      prefix := ('"\newline \tab{2} ")
+;      middle := ('"\tab{32} ")
+;      lnam := INTERN STRCONC ('"x",STRINGIMAGE i)
+;      cnam := INTERN STRCONC ('"y",STRINGIMAGE i)
+;      [['text,:prefix],['bcStrings,[8, 0.0, lnam, 'F]],
+;       ['text,:middle],['bcStrings,[8, 0.0, cnam, 'F]]]
+;  lamList :=
+;    "append"/[flam(i) for i in 5..(px-4)] where flam(i) ==
+;      lnam := INTERN STRCONC ('"l",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, lnam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} {\it \lambda(5) to ")
+;  prefix := STRCONC(prefix,"\lambda(px-4)}: \newline \tab{2} ")
+;  lamList := [['text,:prefix],:lamList]
+;  muList :=
+;    "append"/[fmu(i) for i in 5..(py-4)] where fmu(i) ==
+;      mnam := INTERN STRCONC ('"m",STRINGIMAGE i)
+;      [['bcStrings,[8, 0.0, mnam, 'F]]]
+;  prefix := ('"\blankline \menuitemstyle{} \tab{2} {\it \mu(5) to \mu(py-4)}: ")
+;  prefix := STRCONC(prefix,"\newline \tab{2} ")
+;  muList := [['text,:prefix],:muList]
+;  equationPart := [
+;     '(domainConditions
+;        (isDomain P (Polynomial $EmptyMode))
+;         (isDomain S (String))
+;          (isDomain F (Float))
+;           (isDomain PI (PositiveInteger))),
+;            :labelList,:lamList,:muList]
+;  page := htInitPage('"E02ZAF - Sort 2-D sata into panels for fitting bicubic splines",nil)
+;  htSay '"\menuitemstyle{}\tab{2} {\it x(m)}: "
+;  htSay '"\tab{30} \menuitemstyle{}\tab{32} {\it y(m)}: "
+;  htMakePage equationPart
+;  htSay '"\blankline "
+;  htMakeDoneButton('"Continue",'e02zafGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'px,px)
+;  htpSetProperty(page,'py,py)
+;  htpSetProperty(page,'npoint,npoint)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02zafSolve,fxy| (|i|)
+  (PROG (|prefix| |middle| |lnam| |cnam|)
+    (RETURN
+      (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} "))
+           (SPADLET |middle| (MAKESTRING "\\tab{32} "))
+           (SPADLET |lnam|
+                    (INTERN (STRCONC (MAKESTRING "x")
+                                     (STRINGIMAGE |i|))))
+           (SPADLET |cnam|
+                    (INTERN (STRCONC (MAKESTRING "y")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|text| |prefix|)
+                       (CONS (CONS '|bcStrings|
+                                   (CONS
+                                    (CONS 8
+                                     (CONS 0.0
+                                      (CONS |lnam| (CONS 'F NIL))))
+                                    NIL))
+                             (CONS (CONS '|text| |middle|)
+                                   (CONS
+                                    (CONS '|bcStrings|
+                                     (CONS
+                                      (CONS 8
+                                       (CONS 0.0
+                                        (CONS |cnam| (CONS 'F NIL))))
+                                      NIL))
+                                    NIL)))))))))
+
+(DEFUN |e02zafSolve,flam| (|i|)
+  (PROG (|lnam|)
+    (RETURN
+      (SEQ (SPADLET |lnam|
+                    (INTERN (STRCONC (MAKESTRING "l")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |lnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02zafSolve,fmu| (|i|)
+  (PROG (|mnam|)
+    (RETURN
+      (SEQ (SPADLET |mnam|
+                    (INTERN (STRCONC (MAKESTRING "m")
+                                     (STRINGIMAGE |i|))))
+           (EXIT (CONS (CONS '|bcStrings|
+                             (CONS (CONS 8
+                                    (CONS 0.0
+                                     (CONS |mnam| (CONS 'F NIL))))
+                                   NIL))
+                       NIL))))))
+
+(DEFUN |e02zafSolve| (|htPage|)
+  (PROG (|m| |px| |py| |npoint| |error| |ifail| |labelList| |lamList|
+             |prefix| |muList| |equationPart| |page|)
+  (declare (special |$EmptyMode| |$bcParseOnly|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|m|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|m|)))))
+             (SPADLET |px|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|px|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|px|)))))
+             (SPADLET |py|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage| '|py|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|py|)))))
+             (SPADLET |npoint|
+                      (COND
+                        (|$bcParseOnly|
+                            (PARSE-INTEGER
+                                (|htpLabelInputString| |htPage|
+                                    '|npoint|)))
+                        ('T
+                         (|objValUnwrap|
+                             (|htpLabelSpadValue| |htPage| '|npoint|)))))
+             (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|))
+             (SPADLET |ifail|
+                      (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1)))
+             (COND
+               ((AND (BOOT-EQUAL |m| '10) (BOOT-EQUAL |px| '9)
+                     (BOOT-EQUAL |py| '10))
+                (|e02zafDefaultSolve| |htPage| |npoint| |ifail|))
+               ('T
+                (SPADLET |labelList|
+                         (PROG (G168429)
+                           (SPADLET G168429 NIL)
+                           (RETURN
+                             (DO ((|i| 1 (QSADD1 |i|)))
+                                 ((QSGREATERP |i| |m|) G168429)
+                               (SEQ (EXIT
+                                     (SETQ G168429
+                                      (APPEND G168429
+                                       (|e02zafSolve,fxy| |i|)))))))))
+                (SPADLET |lamList|
+                         (PROG (G168437)
+                           (SPADLET G168437 NIL)
+                           (RETURN
+                             (DO ((G168442 (SPADDIFFERENCE |px| 4))
+                                  (|i| 5 (+ |i| 1)))
+                                 ((> |i| G168442) G168437)
+                               (SEQ (EXIT
+                                     (SETQ G168437
+                                      (APPEND G168437
+                                       (|e02zafSolve,flam| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+                             "\\blankline \\menuitemstyle{} \\tab{2} {\\it \\lambda(5) to "))
+                (SPADLET |prefix|
+                         (STRCONC |prefix|
+                                  '|\\lambda(px-4)}: \\newline \\tab{2} |))
+                (SPADLET |lamList|
+                         (CONS (CONS '|text| |prefix|) |lamList|))
+                (SPADLET |muList|
+                         (PROG (G168446)
+                           (SPADLET G168446 NIL)
+                           (RETURN
+                             (DO ((G168451 (SPADDIFFERENCE |py| 4))
+                                  (|i| 5 (+ |i| 1)))
+                                 ((> |i| G168451) G168446)
+                               (SEQ (EXIT
+                                     (SETQ G168446
+                                      (APPEND G168446
+                                       (|e02zafSolve,fmu| |i|)))))))))
+                (SPADLET |prefix|
+                         (MAKESTRING
+      "\\blankline \\menuitemstyle{} \\tab{2} {\\it \\mu(5) to \\mu(py-4)}: "))
+                (SPADLET |prefix|
+                         (STRCONC |prefix| '|\\newline \\tab{2} |))
+                (SPADLET |muList|
+                         (CONS (CONS '|text| |prefix|) |muList|))
+                (SPADLET |equationPart|
+                         (CONS '(|domainConditions|
+                                    (|isDomain| P
+                                     (|Polynomial| |$EmptyMode|))
+                                    (|isDomain| S (|String|))
+                                    (|isDomain| F (|Float|))
+                                    (|isDomain| PI (|PositiveInteger|)))
+                               (APPEND |labelList|
+                                       (APPEND |lamList| |muList|))))
+                (SPADLET |page|
+                         (|htInitPage|
+                             (MAKESTRING
+            "E02ZAF - Sort 2-D sata into panels for fitting bicubic splines")
+                             NIL))
+                (|htSay| (MAKESTRING
+                             "\\menuitemstyle{}\\tab{2} {\\it x(m)}: "))
+                (|htSay| (MAKESTRING
+                         "\\tab{30} \\menuitemstyle{}\\tab{32} {\\it y(m)}: "))
+                (|htMakePage| |equationPart|)
+                (|htSay| (MAKESTRING "\\blankline "))
+                (|htMakeDoneButton| (MAKESTRING "Continue")
+                    '|e02zafGen|)
+                (|htpSetProperty| |page| '|m| |m|)
+                (|htpSetProperty| |page| '|px| |px|)
+                (|htpSetProperty| |page| '|py| |py|)
+                (|htpSetProperty| |page| '|npoint| |npoint|)
+                (|htpSetProperty| |page| '|ifail| |ifail|)
+                (|htpSetProperty| |page| '|inputArea|
+                    (|htpInputAreaAlist| |htPage|))
+                (|htShowPage|))))))))
+
+;e02zafDefaultSolve (htPage,npoint,ifail) ==
+;  m := '10
+;  px := '9
+;  py := '10
+;  page := htInitPage('"E02ZAF - Sort 2-D sata into panels for fitting bicubic splines",nil)
+;  htMakePage '(
+;    (domainConditions
+;       (isDomain F (Float)))
+;    (text . "\newline ")
+;    (text . "\menuitemstyle{}\tab{2} {\it x(m)}:")
+;    (text . "\tab{30} \menuitemstyle{} \tab{32} {\it y(m)}:")
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.00" x1 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.77" y1 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.70" x2 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "1.06" y2 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "1.44" x3 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.33" y3 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.21" x4 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.44" y4 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "1.01" x5 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.50" y5 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "1.84" x6 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.02" y6 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.71" x7 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "1.95" y7 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "1.00" x8 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "1.20" y8 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "0.54" x9 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.04" y9 F))
+;    (text . "\newline \tab{2} ")
+;    (bcStrings (8 "1.531" x10 F))
+;    (text . "\tab{32}")
+;    (bcStrings (8 "0.18" y10 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} {\it \lambda(5) to \lambda(px-4)}:")
+;    (text . "\newline \tab{2}")
+;    (bcStrings (8 "1.00" l5 F))
+;    (text . "\blankline ")
+;    (text . "\menuitemstyle{}\tab{2} {\it \mu(5) to \mu(py-4)}:")
+;    (text . "\newline \tab{2}")
+;    (bcStrings (8 "0.80" mu5 F))
+;    (bcStrings (8 "1.20" mu6 F))
+;    (text . "\blankline "))
+;  htMakeDoneButton('"Continue",'e02zafGen)
+;  htpSetProperty(page,'m,m)
+;  htpSetProperty(page,'px,px)
+;  htpSetProperty(page,'py,py)
+;  htpSetProperty(page,'npoint,npoint)
+;  htpSetProperty(page,'ifail,ifail)
+;  htpSetProperty(page,'inputArea, htpInputAreaAlist htPage)
+;  htShowPage()
+
+(DEFUN |e02zafDefaultSolve| (|htPage| |npoint| |ifail|)
+  (PROG (|m| |px| |py| |page|)
+    (RETURN
+      (PROGN
+        (SPADLET |m| '10)
+        (SPADLET |px| '9)
+        (SPADLET |py| '10)
+        (SPADLET |page|
+                 (|htInitPage|
+                     (MAKESTRING
+                         "E02ZAF - Sort 2-D sata into panels for fitting bicubic splines")
+                     NIL))
+        (|htMakePage|
+            '((|domainConditions| (|isDomain| F (|Float|)))
+              (|text| . "\\newline ")
+              (|text| . "\\menuitemstyle{}\\tab{2} {\\it x(m)}:")
+              (|text|
+               . "\\tab{30} \\menuitemstyle{} \\tab{32} {\\it y(m)}:")
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.00" |x1| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.77" |y1| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.70" |x2| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "1.06" |y2| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "1.44" |x3| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.33" |y3| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.21" |x4| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.44" |y4| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "1.01" |x5| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.50" |y5| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "1.84" |x6| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.02" |y6| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.71" |x7| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "1.95" |y7| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "1.00" |x8| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "1.20" |y8| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "0.54" |x9| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.04" |y9| F))
+              (|text| . "\\newline \\tab{2} ")
+              (|bcStrings| (8 "1.531" |x10| F)) (|text| . "\\tab{32}")
+              (|bcStrings| (8 "0.18" |y10| F))
+              (|text| . "\\blankline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} {\\it \\lambda(5) to \\lambda(px-4)}:")
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (8 "1.00" |l5| F)) (|text| . "\\blankline ")
+              (|text|
+               . "\\menuitemstyle{}\\tab{2} {\\it \\mu(5) to \\mu(py-4)}:")
+              (|text| . "\\newline \\tab{2}")
+              (|bcStrings| (8 "0.80" |mu5| F))
+              (|bcStrings| (8 "1.20" |mu6| F))
+              (|text| . "\\blankline ")))
+        (|htMakeDoneButton| (MAKESTRING "Continue") '|e02zafGen|)
+        (|htpSetProperty| |page| '|m| |m|)
+        (|htpSetProperty| |page| '|px| |px|)
+        (|htpSetProperty| |page| '|py| |py|)
+        (|htpSetProperty| |page| '|npoint| |npoint|)
+        (|htpSetProperty| |page| '|ifail| |ifail|)
+        (|htpSetProperty| |page| '|inputArea|
+            (|htpInputAreaAlist| |htPage|))
+        (|htShowPage|)))))
+
+;e02zafGen htPage ==
+;  m := htpProperty(htPage,'m)
+;  px := htpProperty(htPage,'px)
+;  py := htpProperty(htPage,'py)
+;  npoint := htpProperty(htPage,'npoint)
+;  ifail := htpProperty(htPage,'ifail)
+;  alist := htpInputAreaAlist htPage
+;  y := alist
+;  nadres := (px-7)*(py-7)
+;  -- mu
+;  for i in 1..4 repeat
+;    muList := ['"0 ",:muList]
+;  for i in 5..(py-4) repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    muList := [right,:muList]
+;  for i in (py-3)..py repeat
+;    muList := ['"0 ",:muList]
+;  mustring := bcwords2liststring muList
+;  -- lamda
+;  for i in 1..4 repeat
+;    lamList := ['"0 ",:lamList]
+;  for i in 5..(px-4) repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    lamList := [right,:lamList]
+;  for i in (px-3)..px repeat
+;    lamList := ['"0 ",:lamList]
+;  lamstring := bcwords2liststring lamList
+;  -- x & y
+;  while y repeat
+;    right := STRCONC ((first y).1," ")
+;    y := rest y
+;    left :=  STRCONC ((first y).1," ")
+;    y := rest y
+;    xlist := [left,:xlist]
+;    ylist := [right,:ylist]
+;  xstring := bcwords2liststring xlist
+;  ystring := bcwords2liststring ylist
+;  prefix := STRCONC('"e02zaf(",STRINGIMAGE px,", ",STRINGIMAGE py,",[")
+;  prefix := STRCONC(prefix,lamstring,"],[",mustring,"], ",STRINGIMAGE m,", [")
+;  prefix := STRCONC(prefix,xstring,"],[",ystring,"], ",STRINGIMAGE npoint,", ")
+;  prefix := STRCONC(prefix,STRINGIMAGE nadres,", ",STRINGIMAGE ifail,")")
+;  linkGen prefix
+
+(DEFUN |e02zafGen| (|htPage|)
+  (PROG (|m| |px| |py| |npoint| |ifail| |alist| |nadres| |muList|
+             |mustring| |lamList| |lamstring| |right| |left| |y|
+             |xlist| |ylist| |xstring| |ystring| |prefix|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |m| (|htpProperty| |htPage| '|m|))
+             (SPADLET |px| (|htpProperty| |htPage| '|px|))
+             (SPADLET |py| (|htpProperty| |htPage| '|py|))
+             (SPADLET |npoint| (|htpProperty| |htPage| '|npoint|))
+             (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|))
+             (SPADLET |alist| (|htpInputAreaAlist| |htPage|))
+             (SPADLET |y| |alist|)
+             (SPADLET |nadres|
+                      (TIMES (SPADDIFFERENCE |px| 7)
+                             (SPADDIFFERENCE |py| 7)))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| 4) NIL)
+               (SEQ (EXIT (SPADLET |muList|
+                                   (CONS (MAKESTRING "0 ") |muList|)))))
+             (DO ((G168502 (SPADDIFFERENCE |py| 4))
+                  (|i| 5 (+ |i| 1)))
+                 ((> |i| G168502) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |muList| (CONS |right| |muList|))))))
+             (DO ((|i| (SPADDIFFERENCE |py| 3) (+ |i| 1)))
+                 ((> |i| |py|) NIL)
+               (SEQ (EXIT (SPADLET |muList|
+                                   (CONS (MAKESTRING "0 ") |muList|)))))
+             (SPADLET |mustring| (|bcwords2liststring| |muList|))
+             (DO ((|i| 1 (QSADD1 |i|))) ((QSGREATERP |i| 4) NIL)
+               (SEQ (EXIT (SPADLET |lamList|
+                                   (CONS (MAKESTRING "0 ") |lamList|)))))
+             (DO ((G168524 (SPADDIFFERENCE |px| 4))
+                  (|i| 5 (+ |i| 1)))
+                 ((> |i| G168524) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |lamList|
+                                     (CONS |right| |lamList|))))))
+             (DO ((|i| (SPADDIFFERENCE |px| 3) (+ |i| 1)))
+                 ((> |i| |px|) NIL)
+               (SEQ (EXIT (SPADLET |lamList|
+                                   (CONS (MAKESTRING "0 ") |lamList|)))))
+             (SPADLET |lamstring| (|bcwords2liststring| |lamList|))
+             (DO () ((NULL |y|) NIL)
+               (SEQ (EXIT (PROGN
+                            (SPADLET |right|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |left|
+                                     (STRCONC (ELT (CAR |y|) 1) '| |))
+                            (SPADLET |y| (CDR |y|))
+                            (SPADLET |xlist| (CONS |left| |xlist|))
+                            (SPADLET |ylist| (CONS |right| |ylist|))))))
+             (SPADLET |xstring| (|bcwords2liststring| |xlist|))
+             (SPADLET |ystring| (|bcwords2liststring| |ylist|))
+             (SPADLET |prefix|
+                      (STRCONC (MAKESTRING "e02zaf(")
+                               (STRINGIMAGE |px|) '|, |
+                               (STRINGIMAGE |py|) '|,[|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |lamstring| '|],[| |mustring|
+                               '|], | (STRINGIMAGE |m|) '|, [|))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| |xstring| '|],[| |ystring|
+                               '|], | (STRINGIMAGE |npoint|) '|, |))
+             (SPADLET |prefix|
+                      (STRCONC |prefix| (STRINGIMAGE |nadres|) '|, |
+                               (STRINGIMAGE |ifail|) '|)|))
+             (|linkGen| |prefix|))))))
+
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}
