diff --git a/changelog b/changelog index 077ceb3..26a3038 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,7 @@ +20090830 tpd src/axiom-website/patches.html 20090830.06.tpd.patch +20090830 tpd src/interp/Makefile move nag-c05.boot to nag-c05.lisp +20090830 tpd src/interp/nag-c05.lisp added, rewritten from nag-c05.boot +20090830 tpd src/interp/nag-c05.boot removed, rewritten to nag-c05.lisp 20090830 tpd src/axiom-website/patches.html 20090830.05.tpd.patch 20090830 tpd src/interp/Makefile move nag-c02.boot to nag-c02.lisp 20090830 tpd src/interp/nag-c02.lisp added, rewritten from nag-c02.boot diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 4b49cf9..e891ce4 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -1948,5 +1948,7 @@ src/interp/hashcode rewrite from boot to lisp
src/interp/as.lisp rewrite from boot to lisp
20090830.05.tpd.patch src/interp/nag-c02.lisp rewrite from boot to lisp
+20090830.06.tpd.patch +src/interp/nag-c05.lisp rewrite from boot to lisp
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet index 5a2a769..d7e8e8d 100644 --- a/src/interp/Makefile.pamphlet +++ b/src/interp/Makefile.pamphlet @@ -1381,7 +1381,7 @@ ${MID}/nag-c02.lisp: ${IN}/nag-c02.lisp.pamphlet @ -\subsection{nag-c05.boot \cite{44}} +\subsection{nag-c05.lisp} <>= ${AUTO}/nag-c05.${O}: ${OUT}/nag-c05.${O} @ echo 154 making ${AUTO}/nag-c05.${O} from ${OUT}/nag-c05.${O} @@ -1389,33 +1389,24 @@ ${AUTO}/nag-c05.${O}: ${OUT}/nag-c05.${O} @ <>= -${OUT}/nag-c05.${O}: ${MID}/nag-c05.clisp - @ echo 155 making ${OUT}/nag-c05.${O} from ${MID}/nag-c05.clisp - @ (cd ${MID} ; \ +${OUT}/nag-c05.${O}: ${MID}/nag-c05.lisp + @ echo 136 making ${OUT}/nag-c05.${O} from ${MID}/nag-c05.lisp + @ ( cd ${MID} ; \ if [ -z "${NOISE}" ] ; then \ - echo '(progn (compile-file "${MID}/nag-c05.clisp"' \ - ':output-file "${OUT}/nag-c05.${O}") (${BYE}))' | ${DEPSYS} ; \ + echo '(progn (compile-file "${MID}/nag-c05.lisp"' \ + ':output-file "${OUT}/nag-c05.${O}") (${BYE}))' | ${DEPSYS} ; \ else \ - echo '(progn (compile-file "${MID}/nag-c05.clisp"' \ - ':output-file "${OUT}/nag-c05.${O}") (${BYE}))' | ${DEPSYS} \ - >${TMP}/trace ; \ + echo '(progn (compile-file "${MID}/nag-c05.lisp"' \ + ':output-file "${OUT}/nag-c05.${O}") (${BYE}))' | ${DEPSYS} \ + >${TMP}/trace ; \ fi ) @ -<>= -${MID}/nag-c05.clisp: ${IN}/nag-c05.boot.pamphlet - @ echo 156 making ${MID}/nag-c05.clisp from ${IN}/nag-c05.boot.pamphlet +<>= +${MID}/nag-c05.lisp: ${IN}/nag-c05.lisp.pamphlet + @ echo 137 making ${MID}/nag-c05.lisp from ${IN}/nag-c05.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/nag-c05.boot.pamphlet >nag-c05.boot ; \ - if [ -z "${NOISE}" ] ; then \ - echo '(progn (boot::reroot "${SPAD}")' \ - '(boottran::boottocl "nag-c05.boot") (${BYE}))' | ${DEPSYS} ; \ - else \ - echo '(progn (boot::reroot "${SPAD}")' \ - '(boottran::boottocl "nag-c05.boot") (${BYE}))' | ${DEPSYS} \ - >${TMP}/trace ; \ - fi ; \ - rm nag-c05.boot ) + ${TANGLE} ${IN}/nag-c05.lisp.pamphlet >nag-c05.lisp ) @ @@ -4713,7 +4704,7 @@ clean: <> <> -<> +<> <> <> diff --git a/src/interp/nag-c05.boot.pamphlet b/src/interp/nag-c05.boot.pamphlet deleted file mode 100644 index 8b49400..0000000 --- a/src/interp/nag-c05.boot.pamphlet +++ /dev/null @@ -1,424 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp nag-c05.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. - -@ -<<*>>= -<> - -c05adf() == - htInitPage('"C05ADF - Zero of continuous function in given interval, Bus and Dekker algorithm",nil) - htMakePage '( - (domainConditions - (isDomain EM $EmptyMode) - (isDomain F (Float))) - (text . "\windowlink{Manual Page}{manpageXXc05adf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c05adf| '|NagRootFindingPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "\newline ") - (text . "C05ADF locates a zero of a continuous function in a ") - (text . "interval by a combination of the methods of linear ") - (text . "interpolation, extrapolation and bisection. ") - (text . "\blankline") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Enter the function whose zero is to be determined ") - (text . "as a function of X, {\it f}: ") - (text . "\newline\tab{2} ") - (bcStrings (55 "exp(-X)-X" expression EM)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "\newline Lower bound of the interval {\it a}:") - (text . "\tab{32} \menuitemstyle{}\tab{34}") - (text . "Upper bound {\it b}: ") - (text . "\newline\tab{2} ") - (bcStrings (10 "0.0" a F)) - (text . "\tab{34} ") - (bcStrings (10 "1.0" b F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "\newline Absolute tolerance {\it eps}:") - (text . "\tab{32} \menuitemstyle{}\tab{34}") - (text . "Value tolerance {\it eta}:") - (text . "\newline\tab{2} ") - (bcStrings (10 "1.0e-5" eps F)) - (text . "\tab{34} ") - (bcStrings (10 "0.0" eta F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "\newline Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c05adfGen) - htShowPage() - -c05adfGen htPage == - a := htpLabelInputString(htPage,'a) - b := htpLabelInputString(htPage,'b) - eps := htpLabelInputString(htPage,'eps) - eta := htpLabelInputString(htPage,'eta) - temp := READ_-FROM_-STRING(eps) - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => 1 - -1 - temp1 := - temp > 0.0 => eps - '"1.0e-5" - expression := htpLabelInputString(htPage, 'expression) - prefix := STRCONC('"c05adf(",a,",",b,",",temp1,",",eta,",",STRINGIMAGE ifail) - linkGen STRCONC (prefix,",(",expression,")::ASP1(F))") - - -c05nbf() == - htInitPage('"C05NBF - Solution of system of nonlinear equations using function values only",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc05nbf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c05nbf| '|NagRootFindingPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "\newline ") - (text . "C05NBF finds a solution of a system of nonlinear equations ") - (text . "by a modification of the Powell hybrid method. ") - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the number of equations in the system {\it n}:") - (text . "\newline\tab{2} ") - (bcStrings (5 9 n PI)) - (text . "\newline ") - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Accuracy required {\it xtol}:") - (text . "\newline\tab{2} ") - -- should be sqrt(machine precision) - (bcStrings (10 "1.0e-9" xtol F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c05nbfSolve) - htShowPage() - -c05nbfSolve htPage == - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - xtol := htpLabelInputString(htPage,'xtol) - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - n = '9 => c05nbfDefaultSolve(htPage,ifail,xtol) - funcList := - "append"/[fa(i) for i in 1..n] where fa(i) == - prefix := ('"\newline {\em Function ") - prefix := STRCONC(prefix,STRINGIMAGE i,'":} \space{1}") - funct := STRCONC ('"X[",STRINGIMAGE i ,"] + 1") - nam := INTERN STRCONC ('"n",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[42, funct, nam, 'EM]]] - middle := ('"\blankline \menuitemstyle{}\tab{2} Enter initial guess ") - middle := STRCONC(middle,'"of the solution vector {\it x}: \newline ") - middle := cons('text,middle) - vecList := - [fb(i) for i in 1..n] where fb(i) == - xnam := INTERN STRCONC ('"x",STRINGIMAGE i) - ['bcStrings,[4, -1.0, xnam, 'F]] - funcList := [:funcList,middle,:vecList] - equationPart := [ - '(domainConditions - (isDomain EM $EmptyMode) - (isDomain F (Float)) - (isDomain I (Integer))), - :funcList] - page := htInitPage("C05NBF - Solution of system of nonlinear equations using function values only", htpPropertyList htPage) - htSay '"\menuitemstyle{}\tab{2} " - htSay '"Enter the functions \htbitmap{fi} below in terms of X[1]...X[n]: " - htSay '"\newline " - htMakePage equationPart - htMakeDoneButton('"Continue",'c05nbfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'xtol,xtol) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c05nbfDefaultSolve (htPage,ifail,xtol) == - n := '9 - page := htInitPage("C05NBF - Solution of system of nonlinear equations using function values only", nil) - htMakePage '( - (domainConditions - (isDomain EM $EmptyMode) - (isDomain F (Float)) - (isDomain I (Integer))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the functions \htbitmap{fi} below in terms of X[1]...X[n]; ") - (text . " \newline ") - (text . "\newline {\em Function 1:} \space{1}") - (bcStrings (42 "3*X[1] - 2*X[1]**2 - 2*X[2] + 1" n1 EM)) - (text . "\newline {\em Function 2:} \space{1}") - (bcStrings (42 "-X[1] + 3*X[2] - 2*X[2]**2 - 2*X[3] + 1" n2 EM)) - (text . "\newline {\em Function 3:} \space{1}") - (bcStrings (42 "-X[2] + 3*X[3] - 2*X[3]**2 - 2*X[4] + 1" n3 EM)) - (text . "\newline {\em Function 4:} \space{1}") - (bcStrings (42 "-X[3] + 3*X[4] - 2*X[4]**2 - 2*X[5] + 1" n4 EM)) - (text . "\newline {\em Function 5:} \space{1}") - (bcStrings (42 "-X[4] + 3*X[5] - 2*X[5]**2 - 2*X[6] + 1" n5 EM)) - (text . "\newline {\em Function 6:} \space{1}") - (bcStrings (42 "-X[5] + 3*X[6] - 2*X[6]**2 - 2*X[7] + 1" n6 EM)) - (text . "\newline {\em Function 7:} \space{1}") - (bcStrings (42 "-X[6] + 3*X[7] - 2*X[7]**2 - 2*X[8] + 1" n7 EM)) - (text . "\newline {\em Function 8:} \space{1}") - (bcStrings (42 "-X[7] + 3*X[8] - 2*X[8]**2 - 2*X[9] + 1" n8 EM)) - (text . "\newline {\em Function 9:} \space{1}") - (bcStrings (42 "-X[8] + 3*X[9] - 2*X[9]**2 + 1" n9 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter initial guess of the solution vector {\it x}: \newline ") - (bcStrings (4 "-1.0" x1 F)) - (bcStrings (4 "-1.0" x2 F)) - (bcStrings (4 "-1.0" x3 F)) - (bcStrings (4 "-1.0" x4 F)) - (bcStrings (4 "-1.0" x5 F)) - (bcStrings (4 "-1.0" x6 F)) - (bcStrings (4 "-1.0" x7 F)) - (bcStrings (4 "-1.0" x8 F)) - (bcStrings (4 "-1.0" x9 F))) - htMakeDoneButton('"Continue",'c05nbfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'xtol,xtol) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -c05nbfGen htPage == - n := htpProperty(htPage, 'n) - ifail := htpProperty(htPage,'ifail) - xtol := htpProperty(htPage,'xtol) - alist := htpInputAreaAlist htPage - y := alist - i := 1 - while y repeat - if i < (n+1) then - temp1 := STRCONC ((first y).1," ") - temp1list := [temp1,:temp1list] - else - temp2 := (first y).1 - temp2list := [temp2,:temp2list] - y := rest y - i := i + 1 - string1 := bcwords2liststring temp1list - string2 := bcwords2liststring temp2list - lwa := n*(3*n+13)/2 - prefix := STRCONC ("c05nbf(",STRINGIMAGE n,",",STRINGIMAGE lwa,",[",string1,"],") - middle := STRCONC (xtol,",",STRINGIMAGE ifail,",") - linkGen STRCONC (prefix,middle,"(",string2,"::Vector Expression(Float))::ASP6(FCN))") - -c05pbf() == - htInitPage('"C05PBF - Solution of system of nonlinear equations using first derivatives",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc05pbf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c05pbf| '|NagRootFindingPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "\newline ") - (text . "C05PBF finds a solution of a system of nonlinear equations ") - (text . "by a modification of the Powell hybrid method. ") - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the number of equations in the system {\it n}:") - (text . "\newline\tab{2} ") - (bcStrings (5 9 n PI)) - (text . "\newline ") - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Accuracy required {\it xtol}:") - (text . "\newline\tab{2} ") - -- should be sqrt(machine precision) - (bcStrings (10 "1.0e-9" xtol F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c05pbfSolve) - htShowPage() - -c05pbfSolve htPage == - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - xtol := htpLabelInputString(htPage,'xtol) - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - n = '9 => c05pbfDefaultSolve(htPage,ifail,xtol) - funcList := - "append"/[fa(i) for i in 1..n] where fa(i) == - prefix := ('"\newline {\em Function ") - prefix := STRCONC(prefix,STRINGIMAGE i,'":} \space{1}") - funct := STRCONC ('"X[",STRINGIMAGE i ,"] + 1") - nam := INTERN STRCONC ('"n",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[42, funct, nam, 'EM]]] - middle := ('"\blankline \menuitemstyle{}\tab{2} Enter initial guess ") - middle := STRCONC(middle,'"of the solution vector {\it x}: \newline ") - middle := cons('text,middle) - vecList := - [fb(i) for i in 1..n] where fb(i) == - xnam := INTERN STRCONC ('"x",STRINGIMAGE i) - ['bcStrings,[4, -1.0, xnam, 'F]] - funcList := [:funcList,middle,:vecList] - equationPart := [ - '(domainConditions - (isDomain EM $EmptyMode) - (isDomain F (Float)) - (isDomain I (Integer))), - :funcList] - page := htInitPage('"C05PBF - Solution of system of nonlinear equations using first derivatives",htpPropertyList htPage) - htSay '"\menuitemstyle{}\tab{2} " - htSay '"Enter the functions \htbitmap{fi} below in terms of X[1]...X[n]: " - htSay '"\newline " - htMakePage equationPart - htMakeDoneButton('"Continue",'c05pbfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'xtol,xtol) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c05pbfDefaultSolve (htPage,ifail,xtol) == - n := '9 - page := htInitPage('"C05PBF - Solution of system of nonlinear equations using first derivatives",nil) - htMakePage '( - (domainConditions - (isDomain EM $EmptyMode) - (isDomain F (Float)) - (isDomain I (Integer))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter the functions \htbitmap{fi} below in terms of X[1]...X[n]: ") - (text . "\newline ") - (text . "\newline {\em Function 1:} \space{1}") - (bcStrings (42 "3*X[1] - 2*X[1]**2 - 2*X[2] + 1" n1 EM)) - (text . "\newline {\em Function 2:} \space{1}") - (bcStrings (42 "-X[1] + 3*X[2] - 2*X[2]**2 - 2*X[3] + 1" n2 EM)) - (text . "\newline {\em Function 3:} \space{1}") - (bcStrings (42 "-X[2] + 3*X[3] - 2*X[3]**2 - 2*X[4] + 1" n3 EM)) - (text . "\newline {\em Function 4:} \space{1}") - (bcStrings (42 "-X[3] + 3*X[4] - 2*X[4]**2 - 2*X[5] + 1" n4 EM)) - (text . "\newline {\em Function 5:} \space{1}") - (bcStrings (42 "-X[4] + 3*X[5] - 2*X[5]**2 - 2*X[6] + 1" n5 EM)) - (text . "\newline {\em Function 6:} \space{1}") - (bcStrings (42 "-X[5] + 3*X[6] - 2*X[6]**2 - 2*X[7] + 1" n6 EM)) - (text . "\newline {\em Function 7:} \space{1}") - (bcStrings (42 "-X[6] + 3*X[7] - 2*X[7]**2 - 2*X[8] + 1" n7 EM)) - (text . "\newline {\em Function 8:} \space{1}") - (bcStrings (42 "-X[7] + 3*X[8] - 2*X[8]**2 - 2*X[9] + 1" n8 EM)) - (text . "\newline {\em Function 9:} \space{1}") - (bcStrings (42 "-X[8] + 3*X[9] - 2*X[9]**2 + 1" n9 EM)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2}") - (text . "Enter initial guess of the solution vector {\it x}: \newline ") - (bcStrings (4 "-1.0" x1 F)) - (bcStrings (4 "-1.0" x2 F)) - (bcStrings (4 "-1.0" x3 F)) - (bcStrings (4 "-1.0" x4 F)) - (bcStrings (4 "-1.0" x5 F)) - (bcStrings (4 "-1.0" x6 F)) - (bcStrings (4 "-1.0" x7 F)) - (bcStrings (4 "-1.0" x8 F)) - (bcStrings (4 "-1.0" x9 F))) - htMakeDoneButton('"Continue",'c05pbfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'xtol,xtol) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -c05pbfGen htPage == - n := htpProperty(htPage, 'n) - ifail := htpProperty(htPage,'ifail) - xtol := htpProperty(htPage,'xtol) - alist := htpInputAreaAlist htPage - y := alist - i := 1 - while y repeat - if i < (n+1) then - temp1 := STRCONC ((first y).1," ") - temp1list := [temp1,:temp1list] - else - temp2 := (first y).1 - temp2list := [temp2,:temp2list] - y := rest y - i := i + 1 - string1 := bcwords2liststring temp1list - string2 := bcwords2liststring temp2list - lwa := n*(n+13)/2 - prefix := STRCONC("c05pbf(",STRINGIMAGE n,",",STRINGIMAGE n) - middle := STRCONC(",",STRINGIMAGE lwa,",[",string1,"],") - middle := STRCONC (middle,xtol,",",STRINGIMAGE ifail,",") - linkGen STRCONC (prefix,middle,"(",string2,"::Vector Expression(Float))::ASP35(FCN))") - -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/nag-c05.lisp.pamphlet b/src/interp/nag-c05.lisp.pamphlet new file mode 100644 index 0000000..ba420ed --- /dev/null +++ b/src/interp/nag-c05.lisp.pamphlet @@ -0,0 +1,996 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/interp nag-c05.lisp} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +(IN-PACKAGE "BOOT" ) + +;c05adf() == +; htInitPage('"C05ADF - Zero of continuous function in given interval, Bus and Dekker algorithm",nil) +; htMakePage '( +; (domainConditions +; (isDomain EM $EmptyMode) +; (isDomain F (Float))) +; (text . "\windowlink{Manual Page}{manpageXXc05adf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c05adf| '|NagRootFindingPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "\newline ") +; (text . "C05ADF locates a zero of a continuous function in a ") +; (text . "interval by a combination of the methods of linear ") +; (text . "interpolation, extrapolation and bisection. ") +; (text . "\blankline") +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "Enter the function whose zero is to be determined ") +; (text . "as a function of X, {\it f}: ") +; (text . "\newline\tab{2} ") +; (bcStrings (55 "exp(-X)-X" expression EM)) +; (text . "\blankline ") +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2}") +; (text . "\newline Lower bound of the interval {\it a}:") +; (text . "\tab{32} \menuitemstyle{}\tab{34}") +; (text . "Upper bound {\it b}: ") +; (text . "\newline\tab{2} ") +; (bcStrings (10 "0.0" a F)) +; (text . "\tab{34} ") +; (bcStrings (10 "1.0" b F)) +; (text . "\blankline ") +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2}") +; (text . "\newline Absolute tolerance {\it eps}:") +; (text . "\tab{32} \menuitemstyle{}\tab{34}") +; (text . "Value tolerance {\it eta}:") +; (text . "\newline\tab{2} ") +; (bcStrings (10 "1.0e-5" eps F)) +; (text . "\tab{34} ") +; (bcStrings (10 "0.0" eta F)) +; (text . "\blankline ") +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2}") +; (text . "\newline Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c05adfGen) +; htShowPage() + +(DEFUN |c05adf| () + (declare (special |$EmptyMode|)) + (PROGN + (|htInitPage| + (MAKESTRING + "C05ADF - Zero of continuous function in given interval, Bus and Dekker algorithm") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| EM |$EmptyMode|) + (|isDomain| F (|Float|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc05adf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c05adf| '|NagRootFindingPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| . "\\newline ") + (|text| + . "C05ADF locates a zero of a continuous function in a ") + (|text| + . "interval by a combination of the methods of linear ") + (|text| . "interpolation, extrapolation and bisection. ") + (|text| . "\\blankline") (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| + . "Enter the function whose zero is to be determined ") + (|text| . "as a function of X, {\\it f}: ") + (|text| . "\\newline\\tab{2} ") + (|bcStrings| (55 "exp(-X)-X" |expression| EM)) + (|text| . "\\blankline ") (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2}") + (|text| . "\\newline Lower bound of the interval {\\it a}:") + (|text| . "\\tab{32} \\menuitemstyle{}\\tab{34}") + (|text| . "Upper bound {\\it b}: ") + (|text| . "\\newline\\tab{2} ") + (|bcStrings| (10 "0.0" |a| F)) (|text| . "\\tab{34} ") + (|bcStrings| (10 "1.0" |b| F)) (|text| . "\\blankline ") + (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2}") + (|text| . "\\newline Absolute tolerance {\\it eps}:") + (|text| . "\\tab{32} \\menuitemstyle{}\\tab{34}") + (|text| . "Value tolerance {\\it eta}:") + (|text| . "\\newline\\tab{2} ") + (|bcStrings| (10 "1.0e-5" |eps| F)) (|text| . "\\tab{34} ") + (|bcStrings| (10 "0.0" |eta| F)) (|text| . "\\blankline ") + (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2}") + (|text| . "\\newline Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c05adfGen|) + (|htShowPage|))) + +;c05adfGen htPage == +; a := htpLabelInputString(htPage,'a) +; b := htpLabelInputString(htPage,'b) +; eps := htpLabelInputString(htPage,'eps) +; eta := htpLabelInputString(htPage,'eta) +; temp := READ_-FROM_-STRING(eps) +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => 1 +; -1 +; temp1 := +; temp > 0.0 => eps +; '"1.0e-5" +; expression := htpLabelInputString(htPage, 'expression) +; prefix := STRCONC('"c05adf(",a,",",b,",",temp1,",",eta,",",STRINGIMAGE ifail) +; linkGen STRCONC (prefix,",(",expression,")::ASP1(F))") + +(DEFUN |c05adfGen| (|htPage|) + (PROG (|a| |b| |eps| |eta| |temp| |error| |ifail| |temp1| + |expression| |prefix|) + (RETURN + (PROGN + (SPADLET |a| (|htpLabelInputString| |htPage| '|a|)) + (SPADLET |b| (|htpLabelInputString| |htPage| '|b|)) + (SPADLET |eps| (|htpLabelInputString| |htPage| '|eps|)) + (SPADLET |eta| (|htpLabelInputString| |htPage| '|eta|)) + (SPADLET |temp| (READ-FROM-STRING |eps|)) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND + ((BOOT-EQUAL |error| '|one|) 1) + ('T (SPADDIFFERENCE 1)))) + (SPADLET |temp1| + (COND + ((> |temp| 0.0) |eps|) + ('T (MAKESTRING "1.0e-5")))) + (SPADLET |expression| + (|htpLabelInputString| |htPage| '|expression|)) + (SPADLET |prefix| + (STRCONC (MAKESTRING "c05adf(") |a| '|,| |b| '|,| + |temp1| '|,| |eta| '|,| + (STRINGIMAGE |ifail|))) + (|linkGen| + (STRCONC |prefix| '|,(| |expression| '|)::ASP1(F))|)))))) + +;c05nbf() == +; htInitPage('"C05NBF - Solution of system of nonlinear equations using function values only",nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc05nbf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c05nbf| '|NagRootFindingPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "\newline ") +; (text . "C05NBF finds a solution of a system of nonlinear equations ") +; (text . "by a modification of the Powell hybrid method. ") +; (text . "\blankline ") +; (text . "\menuitemstyle{}\tab{2}") +; (text . "Enter the number of equations in the system {\it n}:") +; (text . "\newline\tab{2} ") +; (bcStrings (5 9 n PI)) +; (text . "\newline ") +; (text . "\blankline ") +; (text . "\menuitemstyle{}\tab{2}") +; (text . "Accuracy required {\it xtol}:") +; (text . "\newline\tab{2} ") +; -- should be sqrt(machine precision) +; (bcStrings (10 "1.0e-9" xtol F)) +; (text . "\blankline ") +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2}") +; (text . "Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c05nbfSolve) +; htShowPage() + +(DEFUN |c05nbf| () + (PROGN + (|htInitPage| + (MAKESTRING + "C05NBF - Solution of system of nonlinear equations using function values only") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc05nbf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c05nbf| '|NagRootFindingPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| . "\\newline ") + (|text| + . "C05NBF finds a solution of a system of nonlinear equations ") + (|text| . "by a modification of the Powell hybrid method. ") + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{}\\tab{2}") + (|text| + . "Enter the number of equations in the system {\\it n}:") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 9 |n| PI)) + (|text| . "\\newline ") (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{}\\tab{2}") + (|text| . "Accuracy required {\\it xtol}:") + (|text| . "\\newline\\tab{2} ") + (|bcStrings| (10 "1.0e-9" |xtol| F)) + (|text| . "\\blankline ") (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2}") + (|text| . "Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c05nbfSolve|) + (|htShowPage|))) + +;c05nbfSolve htPage == +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; xtol := htpLabelInputString(htPage,'xtol) +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; n = '9 => c05nbfDefaultSolve(htPage,ifail,xtol) +; funcList := +; "append"/[fa(i) for i in 1..n] where fa(i) == +; prefix := ('"\newline {\em Function ") +; prefix := STRCONC(prefix,STRINGIMAGE i,'":} \space{1}") +; funct := STRCONC ('"X[",STRINGIMAGE i ,"] + 1") +; nam := INTERN STRCONC ('"n",STRINGIMAGE i) +; [['text,:prefix],['bcStrings,[42, funct, nam, 'EM]]] +; middle := ('"\blankline \menuitemstyle{}\tab{2} Enter initial guess ") +; middle := STRCONC(middle,'"of the solution vector {\it x}: \newline ") +; middle := cons('text,middle) +; vecList := +; [fb(i) for i in 1..n] where fb(i) == +; xnam := INTERN STRCONC ('"x",STRINGIMAGE i) +; ['bcStrings,[4, -1.0, xnam, 'F]] +; funcList := [:funcList,middle,:vecList] +; equationPart := [ +; '(domainConditions +; (isDomain EM $EmptyMode) +; (isDomain F (Float)) +; (isDomain I (Integer))), +; :funcList] +; page := htInitPage("C05NBF - Solution of system of nonlinear equations using function values only", htpPropertyList htPage) +; htSay '"\menuitemstyle{}\tab{2} " +; htSay '"Enter the functions \htbitmap{fi} below in terms of X[1]...X[n]: " +; htSay '"\newline " +; htMakePage equationPart +; htMakeDoneButton('"Continue",'c05nbfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'xtol,xtol) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c05nbfSolve,fa| (|i|) + (PROG (|prefix| |funct| |nam|) + (RETURN + (SEQ (SPADLET |prefix| (MAKESTRING "\\newline {\\em Function ")) + (SPADLET |prefix| + (STRCONC |prefix| (STRINGIMAGE |i|) + (MAKESTRING ":} \\space{1}"))) + (SPADLET |funct| + (STRCONC (MAKESTRING "X[") (STRINGIMAGE |i|) + '|] + 1|)) + (SPADLET |nam| + (INTERN (STRCONC (MAKESTRING "n") + (STRINGIMAGE |i|)))) + (EXIT (CONS (CONS '|text| |prefix|) + (CONS (CONS '|bcStrings| + (CONS + (CONS 42 + (CONS |funct| + (CONS |nam| (CONS 'EM NIL)))) + NIL)) + NIL))))))) + +(DEFUN |c05nbfSolve,fb| (|i|) + (PROG (|xnam|) + (RETURN + (SEQ (SPADLET |xnam| + (INTERN (STRCONC (MAKESTRING "x") + (STRINGIMAGE |i|)))) + (EXIT (CONS '|bcStrings| + (CONS (CONS 4 + (CONS (SPADDIFFERENCE 1.0) + (CONS |xnam| (CONS 'F NIL)))) + NIL))))))) + +(DEFUN |c05nbfSolve| (|htPage|) + (PROG (|n| |xtol| |error| |ifail| |middle| |vecList| |funcList| + |equationPart| |page|) + (declare (special |$EmptyMode| |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |xtol| (|htpLabelInputString| |htPage| '|xtol|)) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (COND + ((BOOT-EQUAL |n| '9) + (|c05nbfDefaultSolve| |htPage| |ifail| |xtol|)) + ('T + (SPADLET |funcList| + (PROG (G166099) + (SPADLET G166099 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G166099) + (SEQ (EXIT + (SETQ G166099 + (APPEND G166099 + (|c05nbfSolve,fa| |i|))))))))) + (SPADLET |middle| + (MAKESTRING + "\\blankline \\menuitemstyle{}\\tab{2} Enter initial guess ")) + (SPADLET |middle| + (STRCONC |middle| + (MAKESTRING + "of the solution vector {\\it x}: \\newline "))) + (SPADLET |middle| (CONS '|text| |middle|)) + (SPADLET |vecList| + (PROG (G166111) + (SPADLET G166111 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) + (NREVERSE0 G166111)) + (SEQ (EXIT + (SETQ G166111 + (CONS (|c05nbfSolve,fb| |i|) + G166111)))))))) + (SPADLET |funcList| + (APPEND |funcList| (CONS |middle| |vecList|))) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| EM |$EmptyMode|) + (|isDomain| F (|Float|)) + (|isDomain| I (|Integer|))) + |funcList|)) + (SPADLET |page| + (|htInitPage| + '|C05NBF - Solution of system of nonlinear equations using function values only| + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING "\\menuitemstyle{}\\tab{2} ")) + (|htSay| (MAKESTRING + "Enter the functions \\htbitmap{fi} below in terms of X[1]...X[n]: ")) + (|htSay| (MAKESTRING "\\newline ")) + (|htMakePage| |equationPart|) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c05nbfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|xtol| |xtol|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c05nbfDefaultSolve (htPage,ifail,xtol) == +; n := '9 +; page := htInitPage("C05NBF - Solution of system of nonlinear equations using function values only", nil) +; htMakePage '( +; (domainConditions +; (isDomain EM $EmptyMode) +; (isDomain F (Float)) +; (isDomain I (Integer))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2}") +; (text . "Enter the functions \htbitmap{fi} below in terms of X[1]...X[n]; ") +; (text . " \newline ") +; (text . "\newline {\em Function 1:} \space{1}") +; (bcStrings (42 "3*X[1] - 2*X[1]**2 - 2*X[2] + 1" n1 EM)) +; (text . "\newline {\em Function 2:} \space{1}") +; (bcStrings (42 "-X[1] + 3*X[2] - 2*X[2]**2 - 2*X[3] + 1" n2 EM)) +; (text . "\newline {\em Function 3:} \space{1}") +; (bcStrings (42 "-X[2] + 3*X[3] - 2*X[3]**2 - 2*X[4] + 1" n3 EM)) +; (text . "\newline {\em Function 4:} \space{1}") +; (bcStrings (42 "-X[3] + 3*X[4] - 2*X[4]**2 - 2*X[5] + 1" n4 EM)) +; (text . "\newline {\em Function 5:} \space{1}") +; (bcStrings (42 "-X[4] + 3*X[5] - 2*X[5]**2 - 2*X[6] + 1" n5 EM)) +; (text . "\newline {\em Function 6:} \space{1}") +; (bcStrings (42 "-X[5] + 3*X[6] - 2*X[6]**2 - 2*X[7] + 1" n6 EM)) +; (text . "\newline {\em Function 7:} \space{1}") +; (bcStrings (42 "-X[6] + 3*X[7] - 2*X[7]**2 - 2*X[8] + 1" n7 EM)) +; (text . "\newline {\em Function 8:} \space{1}") +; (bcStrings (42 "-X[7] + 3*X[8] - 2*X[8]**2 - 2*X[9] + 1" n8 EM)) +; (text . "\newline {\em Function 9:} \space{1}") +; (bcStrings (42 "-X[8] + 3*X[9] - 2*X[9]**2 + 1" n9 EM)) +; (text . "\blankline ") +; (text . "\menuitemstyle{}\tab{2}") +; (text . "Enter initial guess of the solution vector {\it x}: \newline ") +; (bcStrings (4 "-1.0" x1 F)) +; (bcStrings (4 "-1.0" x2 F)) +; (bcStrings (4 "-1.0" x3 F)) +; (bcStrings (4 "-1.0" x4 F)) +; (bcStrings (4 "-1.0" x5 F)) +; (bcStrings (4 "-1.0" x6 F)) +; (bcStrings (4 "-1.0" x7 F)) +; (bcStrings (4 "-1.0" x8 F)) +; (bcStrings (4 "-1.0" x9 F))) +; htMakeDoneButton('"Continue",'c05nbfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'xtol,xtol) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c05nbfDefaultSolve| (|htPage| |ifail| |xtol|) + (PROG (|n| |page|) + (declare (special |$EmptyMode|)) + (RETURN + (PROGN + (SPADLET |n| '9) + (SPADLET |page| + (|htInitPage| + '|C05NBF - Solution of system of nonlinear equations using function values only| + NIL)) + (|htMakePage| + '((|domainConditions| (|isDomain| EM |$EmptyMode|) + (|isDomain| F (|Float|)) (|isDomain| I (|Integer|))) + (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2}") + (|text| + . "Enter the functions \\htbitmap{fi} below in terms of X[1]...X[n]; ") + (|text| . " \\newline ") + (|text| . "\\newline {\\em Function 1:} \\space{1}") + (|bcStrings| + (42 "3*X[1] - 2*X[1]**2 - 2*X[2] + 1" |n1| EM)) + (|text| . "\\newline {\\em Function 2:} \\space{1}") + (|bcStrings| + (42 "-X[1] + 3*X[2] - 2*X[2]**2 - 2*X[3] + 1" |n2| + EM)) + (|text| . "\\newline {\\em Function 3:} \\space{1}") + (|bcStrings| + (42 "-X[2] + 3*X[3] - 2*X[3]**2 - 2*X[4] + 1" |n3| + EM)) + (|text| . "\\newline {\\em Function 4:} \\space{1}") + (|bcStrings| + (42 "-X[3] + 3*X[4] - 2*X[4]**2 - 2*X[5] + 1" |n4| + EM)) + (|text| . "\\newline {\\em Function 5:} \\space{1}") + (|bcStrings| + (42 "-X[4] + 3*X[5] - 2*X[5]**2 - 2*X[6] + 1" |n5| + EM)) + (|text| . "\\newline {\\em Function 6:} \\space{1}") + (|bcStrings| + (42 "-X[5] + 3*X[6] - 2*X[6]**2 - 2*X[7] + 1" |n6| + EM)) + (|text| . "\\newline {\\em Function 7:} \\space{1}") + (|bcStrings| + (42 "-X[6] + 3*X[7] - 2*X[7]**2 - 2*X[8] + 1" |n7| + EM)) + (|text| . "\\newline {\\em Function 8:} \\space{1}") + (|bcStrings| + (42 "-X[7] + 3*X[8] - 2*X[8]**2 - 2*X[9] + 1" |n8| + EM)) + (|text| . "\\newline {\\em Function 9:} \\space{1}") + (|bcStrings| + (42 "-X[8] + 3*X[9] - 2*X[9]**2 + 1" |n9| EM)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{}\\tab{2}") + (|text| + . "Enter initial guess of the solution vector {\\it x}: \\newline ") + (|bcStrings| (4 "-1.0" |x1| F)) + (|bcStrings| (4 "-1.0" |x2| F)) + (|bcStrings| (4 "-1.0" |x3| F)) + (|bcStrings| (4 "-1.0" |x4| F)) + (|bcStrings| (4 "-1.0" |x5| F)) + (|bcStrings| (4 "-1.0" |x6| F)) + (|bcStrings| (4 "-1.0" |x7| F)) + (|bcStrings| (4 "-1.0" |x8| F)) + (|bcStrings| (4 "-1.0" |x9| F)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c05nbfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|xtol| |xtol|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c05nbfGen htPage == +; n := htpProperty(htPage, 'n) +; ifail := htpProperty(htPage,'ifail) +; xtol := htpProperty(htPage,'xtol) +; alist := htpInputAreaAlist htPage +; y := alist +; i := 1 +; while y repeat +; if i < (n+1) then +; temp1 := STRCONC ((first y).1," ") +; temp1list := [temp1,:temp1list] +; else +; temp2 := (first y).1 +; temp2list := [temp2,:temp2list] +; y := rest y +; i := i + 1 +; string1 := bcwords2liststring temp1list +; string2 := bcwords2liststring temp2list +; lwa := n*(3*n+13)/2 +; prefix := STRCONC ("c05nbf(",STRINGIMAGE n,",",STRINGIMAGE lwa,",[",string1,"],") +; middle := STRCONC (xtol,",",STRINGIMAGE ifail,",") +; linkGen STRCONC (prefix,middle,"(",string2,"::Vector Expression(Float))::ASP6(FCN))") + +(DEFUN |c05nbfGen| (|htPage|) + (PROG (|n| |ifail| |xtol| |alist| |temp1| |temp1list| |temp2| + |temp2list| |y| |i| |string1| |string2| |lwa| |prefix| + |middle|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |xtol| (|htpProperty| |htPage| '|xtol|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (SPADLET |i| 1) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (COND + ((> (PLUS |n| 1) |i|) + (SPADLET |temp1| + (STRCONC (ELT (CAR |y|) 1) + '| |)) + (SPADLET |temp1list| + (CONS |temp1| |temp1list|))) + ('T (SPADLET |temp2| (ELT (CAR |y|) 1)) + (SPADLET |temp2list| + (CONS |temp2| |temp2list|)))) + (SPADLET |y| (CDR |y|)) + (SPADLET |i| (PLUS |i| 1)))))) + (SPADLET |string1| (|bcwords2liststring| |temp1list|)) + (SPADLET |string2| (|bcwords2liststring| |temp2list|)) + (SPADLET |lwa| + (QUOTIENT (TIMES |n| (PLUS (TIMES 3 |n|) 13)) 2)) + (SPADLET |prefix| + (STRCONC '|c05nbf(| (STRINGIMAGE |n|) '|,| + (STRINGIMAGE |lwa|) '|,[| |string1| + '|],|)) + (SPADLET |middle| + (STRCONC |xtol| '|,| (STRINGIMAGE |ifail|) '|,|)) + (|linkGen| + (STRCONC |prefix| |middle| '|(| |string2| + '|::Vector Expression(Float))::ASP6(FCN))|))))))) + +;c05pbf() == +; htInitPage('"C05PBF - Solution of system of nonlinear equations using first derivatives",nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc05pbf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c05pbf| '|NagRootFindingPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "\newline ") +; (text . "C05PBF finds a solution of a system of nonlinear equations ") +; (text . "by a modification of the Powell hybrid method. ") +; (text . "\blankline ") +; (text . "\menuitemstyle{}\tab{2}") +; (text . "Enter the number of equations in the system {\it n}:") +; (text . "\newline\tab{2} ") +; (bcStrings (5 9 n PI)) +; (text . "\newline ") +; (text . "\blankline ") +; (text . "\menuitemstyle{}\tab{2}") +; (text . "Accuracy required {\it xtol}:") +; (text . "\newline\tab{2} ") +; -- should be sqrt(machine precision) +; (bcStrings (10 "1.0e-9" xtol F)) +; (text . "\blankline ") +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2}") +; (text . "Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c05pbfSolve) +; htShowPage() + +(DEFUN |c05pbf| () + (PROGN + (|htInitPage| + (MAKESTRING + "C05PBF - Solution of system of nonlinear equations using first derivatives") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc05pbf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c05pbf| '|NagRootFindingPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| . "\\newline ") + (|text| + . "C05PBF finds a solution of a system of nonlinear equations ") + (|text| . "by a modification of the Powell hybrid method. ") + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{}\\tab{2}") + (|text| + . "Enter the number of equations in the system {\\it n}:") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 9 |n| PI)) + (|text| . "\\newline ") (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{}\\tab{2}") + (|text| . "Accuracy required {\\it xtol}:") + (|text| . "\\newline\\tab{2} ") + (|bcStrings| (10 "1.0e-9" |xtol| F)) + (|text| . "\\blankline ") (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2}") + (|text| . "Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c05pbfSolve|) + (|htShowPage|))) + +;c05pbfSolve htPage == +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; xtol := htpLabelInputString(htPage,'xtol) +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; n = '9 => c05pbfDefaultSolve(htPage,ifail,xtol) +; funcList := +; "append"/[fa(i) for i in 1..n] where fa(i) == +; prefix := ('"\newline {\em Function ") +; prefix := STRCONC(prefix,STRINGIMAGE i,'":} \space{1}") +; funct := STRCONC ('"X[",STRINGIMAGE i ,"] + 1") +; nam := INTERN STRCONC ('"n",STRINGIMAGE i) +; [['text,:prefix],['bcStrings,[42, funct, nam, 'EM]]] +; middle := ('"\blankline \menuitemstyle{}\tab{2} Enter initial guess ") +; middle := STRCONC(middle,'"of the solution vector {\it x}: \newline ") +; middle := cons('text,middle) +; vecList := +; [fb(i) for i in 1..n] where fb(i) == +; xnam := INTERN STRCONC ('"x",STRINGIMAGE i) +; ['bcStrings,[4, -1.0, xnam, 'F]] +; funcList := [:funcList,middle,:vecList] +; equationPart := [ +; '(domainConditions +; (isDomain EM $EmptyMode) +; (isDomain F (Float)) +; (isDomain I (Integer))), +; :funcList] +; page := htInitPage('"C05PBF - Solution of system of nonlinear equations using first derivatives",htpPropertyList htPage) +; htSay '"\menuitemstyle{}\tab{2} " +; htSay '"Enter the functions \htbitmap{fi} below in terms of X[1]...X[n]: " +; htSay '"\newline " +; htMakePage equationPart +; htMakeDoneButton('"Continue",'c05pbfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'xtol,xtol) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c05pbfSolve,fa| (|i|) + (PROG (|prefix| |funct| |nam|) + (RETURN + (SEQ (SPADLET |prefix| (MAKESTRING "\\newline {\\em Function ")) + (SPADLET |prefix| + (STRCONC |prefix| (STRINGIMAGE |i|) + (MAKESTRING ":} \\space{1}"))) + (SPADLET |funct| + (STRCONC (MAKESTRING "X[") (STRINGIMAGE |i|) + '|] + 1|)) + (SPADLET |nam| + (INTERN (STRCONC (MAKESTRING "n") + (STRINGIMAGE |i|)))) + (EXIT (CONS (CONS '|text| |prefix|) + (CONS (CONS '|bcStrings| + (CONS + (CONS 42 + (CONS |funct| + (CONS |nam| (CONS 'EM NIL)))) + NIL)) + NIL))))))) + +(DEFUN |c05pbfSolve,fb| (|i|) + (PROG (|xnam|) + (RETURN + (SEQ (SPADLET |xnam| + (INTERN (STRCONC (MAKESTRING "x") + (STRINGIMAGE |i|)))) + (EXIT (CONS '|bcStrings| + (CONS (CONS 4 + (CONS (SPADDIFFERENCE 1.0) + (CONS |xnam| (CONS 'F NIL)))) + NIL))))))) + +(DEFUN |c05pbfSolve| (|htPage|) + (PROG (|n| |xtol| |error| |ifail| |middle| |vecList| |funcList| + |equationPart| |page|) + (declare (special |$EmptyMode| |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |xtol| (|htpLabelInputString| |htPage| '|xtol|)) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (COND + ((BOOT-EQUAL |n| '9) + (|c05pbfDefaultSolve| |htPage| |ifail| |xtol|)) + ('T + (SPADLET |funcList| + (PROG (G166197) + (SPADLET G166197 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G166197) + (SEQ (EXIT + (SETQ G166197 + (APPEND G166197 + (|c05pbfSolve,fa| |i|))))))))) + (SPADLET |middle| + (MAKESTRING + "\\blankline \\menuitemstyle{}\\tab{2} Enter initial guess ")) + (SPADLET |middle| + (STRCONC |middle| + (MAKESTRING + "of the solution vector {\\it x}: \\newline "))) + (SPADLET |middle| (CONS '|text| |middle|)) + (SPADLET |vecList| + (PROG (G166209) + (SPADLET G166209 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) + (NREVERSE0 G166209)) + (SEQ (EXIT + (SETQ G166209 + (CONS (|c05pbfSolve,fb| |i|) + G166209)))))))) + (SPADLET |funcList| + (APPEND |funcList| (CONS |middle| |vecList|))) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| EM |$EmptyMode|) + (|isDomain| F (|Float|)) + (|isDomain| I (|Integer|))) + |funcList|)) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C05PBF - Solution of system of nonlinear equations using first derivatives") + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING "\\menuitemstyle{}\\tab{2} ")) + (|htSay| (MAKESTRING + "Enter the functions \\htbitmap{fi} below in terms of X[1]...X[n]: ")) + (|htSay| (MAKESTRING "\\newline ")) + (|htMakePage| |equationPart|) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c05pbfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|xtol| |xtol|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c05pbfDefaultSolve (htPage,ifail,xtol) == +; n := '9 +; page := htInitPage('"C05PBF - Solution of system of nonlinear equations using first derivatives",nil) +; htMakePage '( +; (domainConditions +; (isDomain EM $EmptyMode) +; (isDomain F (Float)) +; (isDomain I (Integer))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2}") +; (text . "Enter the functions \htbitmap{fi} below in terms of X[1]...X[n]: ") +; (text . "\newline ") +; (text . "\newline {\em Function 1:} \space{1}") +; (bcStrings (42 "3*X[1] - 2*X[1]**2 - 2*X[2] + 1" n1 EM)) +; (text . "\newline {\em Function 2:} \space{1}") +; (bcStrings (42 "-X[1] + 3*X[2] - 2*X[2]**2 - 2*X[3] + 1" n2 EM)) +; (text . "\newline {\em Function 3:} \space{1}") +; (bcStrings (42 "-X[2] + 3*X[3] - 2*X[3]**2 - 2*X[4] + 1" n3 EM)) +; (text . "\newline {\em Function 4:} \space{1}") +; (bcStrings (42 "-X[3] + 3*X[4] - 2*X[4]**2 - 2*X[5] + 1" n4 EM)) +; (text . "\newline {\em Function 5:} \space{1}") +; (bcStrings (42 "-X[4] + 3*X[5] - 2*X[5]**2 - 2*X[6] + 1" n5 EM)) +; (text . "\newline {\em Function 6:} \space{1}") +; (bcStrings (42 "-X[5] + 3*X[6] - 2*X[6]**2 - 2*X[7] + 1" n6 EM)) +; (text . "\newline {\em Function 7:} \space{1}") +; (bcStrings (42 "-X[6] + 3*X[7] - 2*X[7]**2 - 2*X[8] + 1" n7 EM)) +; (text . "\newline {\em Function 8:} \space{1}") +; (bcStrings (42 "-X[7] + 3*X[8] - 2*X[8]**2 - 2*X[9] + 1" n8 EM)) +; (text . "\newline {\em Function 9:} \space{1}") +; (bcStrings (42 "-X[8] + 3*X[9] - 2*X[9]**2 + 1" n9 EM)) +; (text . "\blankline ") +; (text . "\menuitemstyle{}\tab{2}") +; (text . "Enter initial guess of the solution vector {\it x}: \newline ") +; (bcStrings (4 "-1.0" x1 F)) +; (bcStrings (4 "-1.0" x2 F)) +; (bcStrings (4 "-1.0" x3 F)) +; (bcStrings (4 "-1.0" x4 F)) +; (bcStrings (4 "-1.0" x5 F)) +; (bcStrings (4 "-1.0" x6 F)) +; (bcStrings (4 "-1.0" x7 F)) +; (bcStrings (4 "-1.0" x8 F)) +; (bcStrings (4 "-1.0" x9 F))) +; htMakeDoneButton('"Continue",'c05pbfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'xtol,xtol) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c05pbfDefaultSolve| (|htPage| |ifail| |xtol|) + (PROG (|n| |page|) + (declare (special |$EmptyMode|)) + (RETURN + (PROGN + (SPADLET |n| '9) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C05PBF - Solution of system of nonlinear equations using first derivatives") + NIL)) + (|htMakePage| + '((|domainConditions| (|isDomain| EM |$EmptyMode|) + (|isDomain| F (|Float|)) (|isDomain| I (|Integer|))) + (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2}") + (|text| + . "Enter the functions \\htbitmap{fi} below in terms of X[1]...X[n]: ") + (|text| . "\\newline ") + (|text| . "\\newline {\\em Function 1:} \\space{1}") + (|bcStrings| + (42 "3*X[1] - 2*X[1]**2 - 2*X[2] + 1" |n1| EM)) + (|text| . "\\newline {\\em Function 2:} \\space{1}") + (|bcStrings| + (42 "-X[1] + 3*X[2] - 2*X[2]**2 - 2*X[3] + 1" |n2| + EM)) + (|text| . "\\newline {\\em Function 3:} \\space{1}") + (|bcStrings| + (42 "-X[2] + 3*X[3] - 2*X[3]**2 - 2*X[4] + 1" |n3| + EM)) + (|text| . "\\newline {\\em Function 4:} \\space{1}") + (|bcStrings| + (42 "-X[3] + 3*X[4] - 2*X[4]**2 - 2*X[5] + 1" |n4| + EM)) + (|text| . "\\newline {\\em Function 5:} \\space{1}") + (|bcStrings| + (42 "-X[4] + 3*X[5] - 2*X[5]**2 - 2*X[6] + 1" |n5| + EM)) + (|text| . "\\newline {\\em Function 6:} \\space{1}") + (|bcStrings| + (42 "-X[5] + 3*X[6] - 2*X[6]**2 - 2*X[7] + 1" |n6| + EM)) + (|text| . "\\newline {\\em Function 7:} \\space{1}") + (|bcStrings| + (42 "-X[6] + 3*X[7] - 2*X[7]**2 - 2*X[8] + 1" |n7| + EM)) + (|text| . "\\newline {\\em Function 8:} \\space{1}") + (|bcStrings| + (42 "-X[7] + 3*X[8] - 2*X[8]**2 - 2*X[9] + 1" |n8| + EM)) + (|text| . "\\newline {\\em Function 9:} \\space{1}") + (|bcStrings| + (42 "-X[8] + 3*X[9] - 2*X[9]**2 + 1" |n9| EM)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{}\\tab{2}") + (|text| + . "Enter initial guess of the solution vector {\\it x}: \\newline ") + (|bcStrings| (4 "-1.0" |x1| F)) + (|bcStrings| (4 "-1.0" |x2| F)) + (|bcStrings| (4 "-1.0" |x3| F)) + (|bcStrings| (4 "-1.0" |x4| F)) + (|bcStrings| (4 "-1.0" |x5| F)) + (|bcStrings| (4 "-1.0" |x6| F)) + (|bcStrings| (4 "-1.0" |x7| F)) + (|bcStrings| (4 "-1.0" |x8| F)) + (|bcStrings| (4 "-1.0" |x9| F)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c05pbfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|xtol| |xtol|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c05pbfGen htPage == +; n := htpProperty(htPage, 'n) +; ifail := htpProperty(htPage,'ifail) +; xtol := htpProperty(htPage,'xtol) +; alist := htpInputAreaAlist htPage +; y := alist +; i := 1 +; while y repeat +; if i < (n+1) then +; temp1 := STRCONC ((first y).1," ") +; temp1list := [temp1,:temp1list] +; else +; temp2 := (first y).1 +; temp2list := [temp2,:temp2list] +; y := rest y +; i := i + 1 +; string1 := bcwords2liststring temp1list +; string2 := bcwords2liststring temp2list +; lwa := n*(n+13)/2 +; prefix := STRCONC("c05pbf(",STRINGIMAGE n,",",STRINGIMAGE n) +; middle := STRCONC(",",STRINGIMAGE lwa,",[",string1,"],") +; middle := STRCONC (middle,xtol,",",STRINGIMAGE ifail,",") +; linkGen STRCONC (prefix,middle,"(",string2,"::Vector Expression(Float))::ASP35(FCN))") + +(DEFUN |c05pbfGen| (|htPage|) + (PROG (|n| |ifail| |xtol| |alist| |temp1| |temp1list| |temp2| + |temp2list| |y| |i| |string1| |string2| |lwa| |prefix| + |middle|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |xtol| (|htpProperty| |htPage| '|xtol|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (SPADLET |i| 1) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (COND + ((> (PLUS |n| 1) |i|) + (SPADLET |temp1| + (STRCONC (ELT (CAR |y|) 1) + '| |)) + (SPADLET |temp1list| + (CONS |temp1| |temp1list|))) + ('T (SPADLET |temp2| (ELT (CAR |y|) 1)) + (SPADLET |temp2list| + (CONS |temp2| |temp2list|)))) + (SPADLET |y| (CDR |y|)) + (SPADLET |i| (PLUS |i| 1)))))) + (SPADLET |string1| (|bcwords2liststring| |temp1list|)) + (SPADLET |string2| (|bcwords2liststring| |temp2list|)) + (SPADLET |lwa| (QUOTIENT (TIMES |n| (PLUS |n| 13)) 2)) + (SPADLET |prefix| + (STRCONC '|c05pbf(| (STRINGIMAGE |n|) '|,| + (STRINGIMAGE |n|))) + (SPADLET |middle| + (STRCONC '|,| (STRINGIMAGE |lwa|) '|,[| |string1| + '|],|)) + (SPADLET |middle| + (STRCONC |middle| |xtol| '|,| + (STRINGIMAGE |ifail|) '|,|)) + (|linkGen| + (STRCONC |prefix| |middle| '|(| |string2| + '|::Vector Expression(Float))::ASP35(FCN))|))))))) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document}