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
src/interp/nag-d02.lisp rewrite from boot to lisp
20090831.04.tpd.patch src/interp/nag-e01.lisp rewrite from boot to lisp
+20090901.01.tpd.patch +src/interp/nag-e02.lisp rewrite from boot to lisp
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} <>= ${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} @ <>= -${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 ) @ -<>= -${MID}/nag-e02.clisp: ${IN}/nag-e02.boot.pamphlet - @ echo 184 making ${MID}/nag-e02.clisp from ${IN}/nag-e02.boot.pamphlet +<>= +${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: <> <> -<> +<> <> <> 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} -<>= --- 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. - -@ -<<*>>= -<> - -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}