diff options
Diffstat (limited to 'src/interp/nag-f04.boot.pamphlet')
-rw-r--r-- | src/interp/nag-f04.boot.pamphlet | 2331 |
1 files changed, 2331 insertions, 0 deletions
diff --git a/src/interp/nag-f04.boot.pamphlet b/src/interp/nag-f04.boot.pamphlet new file mode 100644 index 00000000..da36ae78 --- /dev/null +++ b/src/interp/nag-f04.boot.pamphlet @@ -0,0 +1,2331 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/interp nag-f04.boot} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +-- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. +-- All rights reserved. +-- +-- Redistribution and use in source and binary forms, with or without +-- modification, are permitted provided that the following conditions are +-- met: +-- +-- - Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- +-- - Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in +-- the documentation and/or other materials provided with the +-- distribution. +-- +-- - Neither the name of The Numerical ALgorithms Group Ltd. nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +-- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +-- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +-- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +-- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +-- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +-- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +@ +<<*>>= +<<license>> + +f04adf() == + htInitPage("F04ADF - Solution of complex simultaneous linear equations, with multiple right-hand sides (Black box)",nil) + htMakePage '( + (domainConditions + (isDomain I (Integer))) + (text . "\windowlink{Manual Page}{manpageXXf04adf} for this routine ") + (text . "\newline ") + (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|f04adf| '|NagLinearEquationSolvingPackage|)} for this routine") + (text . "\newline \horizontalline ") + (text . "\newline ") + (text . "Calculates the approximate solution of a set of complex linear ") + (text . "equations {\it AX = B} using an {\it LU} factorization with ") + (text . "partial pivoting, where {\it A} is an n * n matrix, {\it X} is ") + (text . "an {\it n} by {\it m} matrix of unknowns and {\it B} is an ") + (text . "{\it n} by {\it m} matrix of right-hand sides.") + (text . "\blankline ") + (text . "\newline \menuitemstyle{}\tab{2} ") + (text . "{\it n} order of matrix A:") + (text . "\tab{28} \menuitemstyle{}\tab{30} ") + (text . "{\it m} number of right-hand sides \htbitmap{great=} 0 :") + (text . "\newline\tab{2} ") + (bcStrings (10 3 n I)) + (text . "\tab{30} ") + (bcStrings (10 1 m I)) +-- (text . "\blankline ") +-- (text . "\newline \menuitemstyle{}\tab{2} ") +-- (text . "{\it IA} first dimension of A:") +-- (text . "\tab{32} \menuitemstyle{}\tab{34} ") +-- (text . "{\it IB} first dimension of B:") +-- (text . "\newline\tab{2} ") +-- (bcStrings (10 3 ia I)) +-- (text . "\tab{34} ") +-- (bcStrings (10 3 ib I)) +-- (text . "\blankline ") +-- (text . "\newline \menuitemstyle{}\tab{2} ") +-- (text . "{\it IC} first dimension of C:") +-- (text . "\newline\tab{2} ") +-- (bcStrings (10 3 ic I)) + (text . "\blankline ") + (text . "\newline \menuitemstyle{} \tab{2} ") + (text . "Ifail value:") + (radioButtons ifail + ("" " -1, Print error messages" minusOne) + ("" " 1, Suppress error messages" one))) + htMakeDoneButton('"Continue", 'f04adfSolve) + htShowPage() + +f04adfSolve htPage == + n := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) + objValUnwrap htpLabelSpadValue(htPage, 'n) + m := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) + objValUnwrap htpLabelSpadValue(htPage, 'm) + ia := n +-- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ia) +-- objValUnwrap htpLabelSpadValue(htPage, 'ia) + ib := n +-- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ib) +-- objValUnwrap htpLabelSpadValue(htPage, 'ib) + ic := n +-- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ic) +-- objValUnwrap htpLabelSpadValue(htPage, 'ic) + error := htpButtonValue(htPage,'ifail) + ifail := + error = 'one => '1 + '-1 + (n = '3 and m = '1) => f04adfDefaultSolve(htPage,ifail) + matList := + "append"/[f(i,n) for i in 1..ia] where f(i,n) == + labelList := + "append"/[g(i,j) for j in 1..n] where g(i,j) == + ianam := INTERN STRCONC ('"a",STRINGIMAGE i, STRINGIMAGE j) + [['bcStrings,[12, "0.0 + 0.0*%i", ianam, 'F]]] + prefix := ('"\newline \tab{2} ") + labelList := [['text,:prefix],:labelList] + bmatList := + "append"/[fb(i,m) for i in 1..ib] where fb(i,m) == + blabelList := + "append"/[gb(i,j) for j in 1..m] where gb(i,j) == + bnam := INTERN STRCONC ('"b",STRINGIMAGE i, STRINGIMAGE j) + [['bcStrings,[12, "0.0 + 0.0*%i", bnam, 'F]]] + prefix := ('"\newline \tab{2} ") + blabelList := [['text,:prefix],:blabelList] + start := ('"\blankline \menuitemstyle{} \tab{2} Enter values of {\it b}:") + bmatList := [['text,:start],:bmatList] + equationPart := [ + '(domainConditions + (isDomain P (Polynomial $EmptyMode)) + (isDomain F (Float))), + :matList,:bmatList] + page := htInitPage("F04ADF - Solution of complex simultaneous linear equations, with multiple right-hand sides (Black box)",nil) + htSay '"\newline \menuitemstyle{}\tab{2} Enter values of {\it A}: " + htSay '"\newline \tab{2} " + htMakePage equationPart + htSay '"\blankline " + htMakeDoneButton('"Continue",'f04adfGen) + htpSetProperty(page,'n,n) + htpSetProperty(page,'m,m) +-- htpSetProperty(page,'ia,ia) +-- htpSetProperty(page,'ib,ib) +-- htpSetProperty(page,'ic,ic) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + + + +f04adfDefaultSolve (htPage, ifail) == + n := '3 + m := '1 + ia := '3 + ib := '3 + ic := '3 + page := htInitPage("F04ADF - Solution of complex simultaneous linear equations, with multiple right-hand sides (Black box)",nil) + htMakePage '( + (domainConditions + (isDomain F (Float)) + (isDomain I (Integer))) + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} Enter values of {\it A}: ") + (text . "\newline \tab{2} ") + (bcStrings (12 "1" a11 F)) + (bcStrings (12 "1 + 2*%i" a12 F)) + (bcStrings (12 "2 + 10*%i" a13 F)) + (text . "\newline \tab{2} ") + (bcStrings (12 "1 + %i" a21 F)) + (bcStrings (12 "3*%i" a22 F)) + (bcStrings (12 "-5 + 14*%i" a23 F)) + (text . "\newline \tab{2} ") + (bcStrings (12 "1 + %i" a31 F)) + (bcStrings (12 "5*%i" a32 F)) + (bcStrings (12 "-8 + 20*%i" a33 F)) + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} Enter values of {\it b}: ") + (text . "\newline \tab{2} ") + (bcStrings (12 "1" b1 F)) + (text . "\newline \tab{2} ") + (bcStrings (12 "0" b2 F)) + (text . "\newline \tab{2} ") + (bcStrings (12 "0" b3 F))) + htMakeDoneButton('"Continue",'f04adfGen) + htpSetProperty(page,'n,n) + htpSetProperty(page,'m,m) +-- htpSetProperty(page,'ia,ia) +-- htpSetProperty(page,'ib,ib) +-- htpSetProperty(page,'ic,ic) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + +f04adfGen htPage == + n := htpProperty(htPage,'n) + m := htpProperty(htPage,'m) +-- ia := htpProperty(htPage,'ia) +-- ib := htpProperty(htPage,'ib) +-- ic := htpProperty(htPage,'ic) + ia := n + ib := n + ic := n + ifail := htpProperty(htPage,'ifail) + alist := htpInputAreaAlist htPage + y := alist + -- will probably need to change this as its a vector not an array + for i in 1..m repeat + for j in 1..ib repeat + right := STRCONC((first y).1," ") + y := rest y + bList := [right,:bList] + bstring := bcwords2liststring bList + boutList := [bstring,:boutList] + bList := [] + boutstring := bcwords2liststring boutList + y := REVERSE y + k := -1 + matform := [[y.(k := k + 1).1 for j in 0..(n-1)] for i in 0..(ia-1)] + matstring := bcwords2liststring [bcwords2liststring x for x in matform] + prefix := STRCONC('"f04adf(",STRINGIMAGE ia,",",boutstring,",") + prefix := STRCONC(prefix,STRINGIMAGE ib,", ",STRINGIMAGE n,", ") + prefix := STRCONC(prefix,STRINGIMAGE m,", ",STRINGIMAGE ic) + prefix := STRCONC(prefix,", ",matstring,", ",STRINGIMAGE ifail,")") + bcGen prefix + +f04arf() == + htInitPage("F04ARF - Solution of real simultaneous linear equations, one right-hand side (Black box)",nil) + htMakePage '( + (domainConditions + (isDomain I (Integer))) + (text . "\windowlink{Manual Page}{manpageXXf04arf} for this routine ") + (text . "\newline ") + (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|f04arf| '|NagLinearEquationSolvingPackage|)} for this routine") + (text . "\newline \horizontalline ") + (text . "\blankline ") + (text . "Calculates the approximate solution of a set of real linear ") + (text . "equations {\it Ax = b} using an {\it LU} factorization with ") + (text . "pivoting, where {\it A} is an n * n matrix, {\it x} is an n ") + (text . "element vector of unknowns and {\it b} is an n element ") + (text . "right-hand side vector.") + (text . "\blankline ") + (text . "\newline ") + (text . "\blankline ") + (text . "\newline \menuitemstyle{}\tab{2} ") +-- (text . "{\it IA} first dimension of A:") +-- (text . "\tab{32} \menuitemstyle{}\tab{34} ") + (text . "{\it n} order of matrix A:") + (text . "\newline\tab{2} ") +-- (bcStrings (10 8 ia I)) +-- (text . "\tab{34} ") + (bcStrings (10 3 n I)) + (text . "\blankline ") + (text . "\newline \menuitemstyle{} \tab{2} ") + (text . "Ifail value:") + (radioButtons ifail + ("" " -1, Print error messages" minusOne) + ("" " 1, Suppress error messages" one))) + htMakeDoneButton('"Continue", 'f04arfSolve) + htShowPage() + +f04arfSolve htPage == + n := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) + objValUnwrap htpLabelSpadValue(htPage, 'n) + ia := n +-- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ia) +-- objValUnwrap htpLabelSpadValue(htPage, 'ia) + error := htpButtonValue(htPage,'ifail) + ifail := + error = 'one => '1 + '-1 + n = '3 => f04arfDefaultSolve(htPage,ifail) + matList := + "append"/[f(i,n) for i in 1..ia] where f(i,n) == + labelList := + "append"/[g(i,j) for j in 1..n] where g(i,j) == + ianam := INTERN STRCONC ('"ia",STRINGIMAGE i, STRINGIMAGE j) + [['bcStrings,[6, "0.0", ianam, 'F]]] + prefix := ('"\newline \tab{2} ") + labelList := [['text,:prefix],:labelList] + bmatList := + "append"/[h(k) for k in 1..n] where h(k) == + prefix := ('"\newline \tab{2} ") + bnam := INTERN STRCONC ('"b",STRINGIMAGE k) + [['text,:prefix],['bcStrings,[6, "0.0", bnam, 'F]]] + start := ('"\blankline \menuitemstyle{} \tab{2} Enter values of {\it b}:") + bmatList := [['text,:start],:bmatList] + equationPart := [ + '(domainConditions + (isDomain P (Polynomial $EmptyMode)) + (isDomain F (Float))), + :matList,:bmatList] + page := htInitPage("F04ARF - Solution of real simultaneous linear equations, one right-hand side (Black box)",nil) + htSay '"\newline \menuitemstyle{}\tab{2} Enter values of {\it A}: " + htSay '"\newline \tab{2} " + htMakePage equationPart + htSay '"\blankline " + htMakeDoneButton('"Continue",'f04arfGen) + htpSetProperty(page,'n,n) +-- htpSetProperty(page,'ia,ia) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + + + +f04arfDefaultSolve (htPage, ifail) == + n := '3 + ia := '3 + page := htInitPage("F04ARF - Solution of real simultaneous linear equations, one right-hand side (Black box)",nil) + htMakePage '( + (domainConditions + (isDomain F (Float)) + (isDomain I (Integer))) + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} Enter values of {\it A}: ") + (text . "\newline \tab{2} ") + (bcStrings (6 33 ia11 F)) + (bcStrings (6 16 ia12 F)) + (bcStrings (6 72 ia13 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "-24" ia21 F)) + (bcStrings (6 "-10" ia22 F)) + (bcStrings (6 "-57" ia23 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "-8" ia31 F)) + (bcStrings (6 "-4" ia32 F)) + (bcStrings (6 "-17" ia33 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia41 F)) +-- (bcStrings (6 0 ia42 F)) +-- (bcStrings (6 0 ia43 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia51 F)) +-- (bcStrings (6 0 ia52 F)) +-- (bcStrings (6 0 ia53 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia61 F)) +-- (bcStrings (6 0 ia62 F)) +-- (bcStrings (6 0 ia63 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia71 F)) +-- (bcStrings (6 0 ia72 F)) +-- (bcStrings (6 0 ia73 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia81 F)) +-- (bcStrings (6 0 ia82 F)) +-- (bcStrings (6 0 ia83 F)) + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} Enter values of {\it b}: ") + (text . "\newline \tab{2} ") + (bcStrings (6 "-359" b1 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "281" b2 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "85" b3 F))) + htMakeDoneButton('"Continue",'f04arfGen) + htpSetProperty(page,'n,n) +-- htpSetProperty(page,'ia,ia) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + +f04arfGen htPage == + n := htpProperty(htPage,'n) +-- ia := htpProperty(htPage,'ia) + ia := n + ifail := htpProperty(htPage,'ifail) + alist := htpInputAreaAlist htPage + y := alist + for i in 1..n 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..(n-1)] for i in 0..(ia-1)] + matstring := bcwords2liststring [bcwords2liststring x for x in matform] + prefix := STRCONC('"f04arf(",STRINGIMAGE ia,", [",bstring,"],",STRINGIMAGE n) + prefix := STRCONC(prefix,", ",matstring,", ",STRINGIMAGE ifail,")") + bcGen prefix + +f04asf() == + htInitPage("F04ASF - Solution of real symmetric positive-definite simultaneous linear equations, one right-hand side using iterative refinement (Black box)",nil) + htMakePage '( + (domainConditions + (isDomain I (Integer))) + (text . "\windowlink{Manual Page}{manpageXXf04asf} for this routine ") + (text . "\newline ") + (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|f04asf| '|NagLinearEquationSolvingPackage|)} for this routine") + (text . "\newline \horizontalline ") + (text . "\blankline ") + (text . "Calculates the accurate solution of a set of real symmetric ") + (text . "positive-definite linear equations {\it Ax = b} using an a ") + (text . "Cholesky factorization and iterative refinement, ") + (text . "where {\it A} is an n * n matrix, {\it x} is an n ") + (text . "element vector of unknowns and {\it b} is an n element ") + (text . "right-hand side vector.") + (text . "\blankline ") + (text . "\newline ") + (text . "\blankline ") + (text . "\newline \menuitemstyle{}\tab{2} ") +-- (text . "{\it IA} first dimension of A:") +-- (text . "\tab{32} \menuitemstyle{}\tab{34} ") + (text . "{\it n} order of matrix A:") + (text . "\newline\tab{2} ") +-- (bcStrings (10 8 ia I)) +-- (text . "\tab{34} ") + (bcStrings (10 4 n I)) + (text . "\blankline ") + (text . "\newline \menuitemstyle{} \tab{2} ") + (text . "Ifail value:") + (radioButtons ifail + ("" " -1, Print error messages" minusOne) + ("" " 1, Suppress error messages" one))) + htMakeDoneButton('"Continue", 'f04asfSolve) + htShowPage() + +f04asfSolve htPage == + n := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) + objValUnwrap htpLabelSpadValue(htPage, 'n) + ia := n +-- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ia) +-- objValUnwrap htpLabelSpadValue(htPage, 'ia) + error := htpButtonValue(htPage,'ifail) + ifail := + error = 'one => '1 + '-1 +-- (n = '4 and ia = '8) => f04asfDefaultSolve(htPage,ifail) + n = '4 => f04asfDefaultSolve(htPage,ifail) + matList := + "append"/[f(i,n) for i in 1..ia] where f(i,n) == + labelList := + "append"/[g(i,j) for j in 1..n] where g(i,j) == + ianam := INTERN STRCONC ('"ia",STRINGIMAGE i, STRINGIMAGE j) + [['bcStrings,[6, "0.0", ianam, 'F]]] + prefix := ('"\newline \tab{2} ") + labelList := [['text,:prefix],:labelList] + bmatList := + "append"/[h(k) for k in 1..n] where h(k) == + prefix := ('"\newline \tab{2} ") + bnam := INTERN STRCONC ('"b",STRINGIMAGE k) + [['text,:prefix],['bcStrings,[6, "0.0", bnam, 'F]]] + start := ('"\blankline \menuitemstyle{} \tab{2} Enter values of {\it b}:") + bmatList := [['text,:start],:bmatList] + equationPart := [ + '(domainConditions + (isDomain P (Polynomial $EmptyMode)) + (isDomain F (Float))), + :matList,:bmatList] + page := htInitPage("F04ASF - Solution of real symmetric positive-definite simultaneous linear equations, one right-hand side using iterative refinement (Black box)",nil) + htSay '"\newline \menuitemstyle{}\tab{2} Enter values of {\it A}: " + htSay '"\newline \tab{2} " + htMakePage equationPart + htSay '"\blankline " + htMakeDoneButton('"Continue",'f04asfGen) + htpSetProperty(page,'n,n) +-- htpSetProperty(page,'ia,ia) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + + + +f04asfDefaultSolve (htPage, ifail) == + n := '4 + ia := '4 + page := htInitPage("F04ASF - Solution of real symmetric positive-definite simultaneous linear equations, one right-hand side using iterative refinement (Black box)",nil) + htMakePage '( + (domainConditions + (isDomain F (Float)) + (isDomain I (Integer))) + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} Enter values of {\it A}: ") + (text . "\newline \tab{2} ") + (bcStrings (6 5 ia11 F)) + (bcStrings (6 7 ia12 F)) + (bcStrings (6 6 ia13 F)) + (bcStrings (6 5 ia14 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 7 ia21 F)) + (bcStrings (6 10 ia22 F)) + (bcStrings (6 8 ia23 F)) + (bcStrings (6 7 ia24 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 6 ia31 F)) + (bcStrings (6 8 ia32 F)) + (bcStrings (6 10 ia33 F)) + (bcStrings (6 9 ia34 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 5 ia41 F)) + (bcStrings (6 7 ia42 F)) + (bcStrings (6 9 ia43 F)) + (bcStrings (6 10 ia44 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia51 F)) +-- (bcStrings (6 0 ia52 F)) +-- (bcStrings (6 0 ia53 F)) +-- (bcStrings (6 0 ia54 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia61 F)) +-- (bcStrings (6 0 ia62 F)) +-- (bcStrings (6 0 ia63 F)) +-- (bcStrings (6 0 ia64 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia71 F)) +-- (bcStrings (6 0 ia72 F)) +-- (bcStrings (6 0 ia73 F)) +-- (bcStrings (6 0 ia74 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia81 F)) +-- (bcStrings (6 0 ia82 F)) +-- (bcStrings (6 0 ia83 F)) +-- (bcStrings (6 0 ia84 F)) + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} Enter values of {\it b}: ") + (text . "\newline \tab{2} ") + (bcStrings (6 23 b1 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 32 b2 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 33 b3 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 31 b4 F))) + htMakeDoneButton('"Continue",'f04asfGen) + htpSetProperty(page,'n,n) +-- htpSetProperty(page,'ia,ia) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + +f04asfGen htPage == + n := htpProperty(htPage,'n) +-- ia := htpProperty(htPage,'ia) + ia := n + ifail := htpProperty(htPage,'ifail) + alist := htpInputAreaAlist htPage + y := alist + for i in 1..n 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..(n-1)] for i in 0..(ia-1)] + matstring := bcwords2liststring [bcwords2liststring x for x in matform] + prefix := STRCONC('"f04asf(",STRINGIMAGE ia,", [",bstring,"],",STRINGIMAGE n) + prefix := STRCONC(prefix,", ",matstring,", ",STRINGIMAGE ifail,")") + bcGen prefix + +f04atf() == + htInitPage("F04ATF - Solution of real simultaneous linear equations, one right-hand side using iterative refinement (Black box)",nil) + htMakePage '( + (domainConditions + (isDomain I (Integer))) + (text . "\windowlink{Manual Page}{manpageXXf04atf} for this routine ") + (text . "\newline ") + (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|f04atf| '|NagLinearEquationSolvingPackage|)} for this routine") + (text . "\newline \horizontalline ") + (text . "\blankline ") + (text . "Calculates the approximate solution of a set of real linear ") + (text . "equations {\it Ax = b} using an {\it LU} factorization with ") + (text . "pivoting and iterative refinement, ") + (text . "where {\it A} is an n * n matrix, {\it x} is an n ") + (text . "element vector of unknowns and {\it b} is an n element ") + (text . "right-hand side vector.") + (text . "\blankline ") + (text . "\newline ") + (text . "\blankline ") + (text . "\newline \menuitemstyle{}\tab{2} ") +-- (text . "{\it IA} first dimension of A:") +-- (text . "\tab{32} \menuitemstyle{}\tab{34} ") + (text . "{\it n} order of matrix A:") + (text . "\newline\tab{2} ") +-- (bcStrings (10 8 ia I)) +-- (text . "\tab{34} ") + (bcStrings (10 3 n I)) +-- (text . "\blankline ") +-- (text . "\newline \menuitemstyle{} \tab{2} ") +-- (text . "{\it IAA} first dimension of AA:") +-- (text . "\newline \tab{2} ") +-- (bcStrings (10 8 iaa I)) + (text . "\blankline ") + (text . "\newline \menuitemstyle{} \tab{2} ") + (text . "Ifail value:") + (radioButtons ifail + ("" " -1, Print error messages" minusOne) + ("" " 1, Suppress error messages" one))) + htMakeDoneButton('"Continue", 'f04atfSolve) + htShowPage() + +f04atfSolve htPage == + n := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) + objValUnwrap htpLabelSpadValue(htPage, 'n) + ia := n +-- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ia) +-- objValUnwrap htpLabelSpadValue(htPage, 'ia) + iaa := n +-- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'iaa) +-- objValUnwrap htpLabelSpadValue(htPage, 'iaa) + error := htpButtonValue(htPage,'ifail) + ifail := + error = 'one => '1 + '-1 +-- (n = '3 and ia = '8) => f04atfDefaultSolve(htPage,iaa,ifail) + n = '3 => f04atfDefaultSolve(htPage,iaa,ifail) + matList := + "append"/[f(i,n) for i in 1..ia] where f(i,n) == + labelList := + "append"/[g(i,j) for j in 1..n] where g(i,j) == + ianam := INTERN STRCONC ('"ia",STRINGIMAGE i, STRINGIMAGE j) + [['bcStrings,[6, "0.0", ianam, 'F]]] + prefix := ('"\newline \tab{2} ") + labelList := [['text,:prefix],:labelList] + bmatList := + "append"/[h(k) for k in 1..n] where h(k) == + prefix := ('"\newline \tab{2} ") + bnam := INTERN STRCONC ('"b",STRINGIMAGE k) + [['text,:prefix],['bcStrings,[6, "0.0", bnam, 'F]]] + start := ('"\blankline \menuitemstyle{} \tab{2} Enter values of {\it b}:") + bmatList := [['text,:start],:bmatList] + equationPart := [ + '(domainConditions + (isDomain P (Polynomial $EmptyMode)) + (isDomain F (Float))), + :matList,:bmatList] + page := htInitPage("F04ATF - Solution of real simultaneous linear equations, one right-hand side using iterative refinement (Black box)",nil) + htSay '"\newline \menuitemstyle{}\tab{2} Enter values of {\it A}: " + htSay '"\newline \tab{2} " + htMakePage equationPart + htSay '"\blankline " + htMakeDoneButton('"Continue",'f04atfGen) + htpSetProperty(page,'n,n) +-- htpSetProperty(page,'ia,ia) +-- htpSetProperty(page,'iaa,iaa) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + + + +f04atfDefaultSolve (htPage, iaa, ifail) == + n := '3 + ia := '3 + page := htInitPage("F04ATF - Solution of real simultaneous linear equations, one right-hand side using iterative refinement (Black box)",nil) + htMakePage '( + (domainConditions + (isDomain F (Float)) + (isDomain I (Integer))) + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} Enter values of {\it A}: ") + (text . "\newline \tab{2} ") + (bcStrings (6 33 ia11 F)) + (bcStrings (6 16 ia12 F)) + (bcStrings (6 72 ia13 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "-24" ia21 F)) + (bcStrings (6 "-10" ia22 F)) + (bcStrings (6 "-57" ia23 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "-8" ia31 F)) + (bcStrings (6 "-4" ia32 F)) + (bcStrings (6 "-17" ia33 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia41 F)) +-- (bcStrings (6 0 ia42 F)) +-- (bcStrings (6 0 ia43 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia51 F)) +-- (bcStrings (6 0 ia52 F)) +-- (bcStrings (6 0 ia53 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia61 F)) +-- (bcStrings (6 0 ia62 F)) +-- (bcStrings (6 0 ia63 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia71 F)) +-- (bcStrings (6 0 ia72 F)) +-- (bcStrings (6 0 ia73 F)) +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 0 ia81 F)) +-- (bcStrings (6 0 ia82 F)) +-- (bcStrings (6 0 ia83 F)) + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} Enter values of {\it b}: ") + (text . "\newline \tab{2} ") + (bcStrings (6 "-359" b1 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "281" b2 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "85" b3 F))) + htMakeDoneButton('"Continue",'f04atfGen) + htpSetProperty(page,'n,n) +-- htpSetProperty(page,'ia,ia) +-- htpSetProperty(page,'iaa,iaa) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + +f04atfGen htPage == + n := htpProperty(htPage,'n) +-- ia := htpProperty(htPage,'ia) +-- iaa := htpProperty(htPage,'iaa) + ia := n + iaa := n + ifail := htpProperty(htPage,'ifail) + alist := htpInputAreaAlist htPage + y := alist + for i in 1..n 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..(n-1)] for i in 0..(ia-1)] + matstring := bcwords2liststring [bcwords2liststring x for x in matform] + prefix := STRCONC('"f04atf(",matstring,", ",STRINGIMAGE ia,", [",bstring) + prefix := STRCONC(prefix,"],",STRINGIMAGE n,", ",STRINGIMAGE iaa,", ") + prefix := STRCONC(prefix,STRINGIMAGE ifail,")") + bcGen prefix + + +f04faf() == + htInitPage('"F04FAF - Solution of real symmetric positive-definite tridiagonal simultaneous linear equations, one right-hand side (Black box)",nil) + htMakePage '( + (domainConditions + (isDomain PI (PositiveInteger))) + (text . "\windowlink{Manual Page}{manpageXXf04adf} for this routine ") + (text . "\newline ") + (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|f04faf| '|NagLinearEquationSolvingPackage|)} for this routine") + (text . "\newline \horizontalline ") + (text . "\blankline ") + (text . "Calculates the approximate solution of a set of real symmetric ") + (text . "positive-definite tridiagonal linear equations {\it Tx = b} ") + (text . "using a modified symmetric Gaussian Elimination algorithm, ") + (text . "where {\it T} is an n * n matrix, {\it x} is an n ") + (text . "element vector of unknowns and {\it b} is an n element ") + (text . "right-hand side vector. {\it T} is factorized as ") + (text . "\inputbitmap{\htbmdir{}/mkm.bitmap}, where {\it K} is a diagonal matrix ") + (text . "and {\it M} is a matrix of multipliers. ") + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{} \tab{2} ") + (text . "\newline \tab{2} ") + (text . "{\it JOB} to be performed by f04faf: ") + (radioButtons job + ("" " = 0. {\it T} is factorized and equations {\it Tx = b} are solved for x." jobZero) + ("" " = 1. {\it T} assumed to be already factorized by previous call to f04faf, the equations {\it Tx = b} are solved for x." jobOne)) + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2}") + (text . "\newline Order of the matrix T {\it n}:") + (text . "\newline \tab{2} ") + (bcStrings (6 5 n 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", 'f04fafSolve) + htShowPage() + +f04fafSolve htPage == + n := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) + objValUnwrap htpLabelSpadValue(htPage, 'n) + number := htpButtonValue(htPage,'job) + job := + number = 'jobOne => '1 + '0 + error := htpButtonValue(htPage,'ifail) + ifail := + error = 'one => '1 + '-1 + n = '5 => f04fafDefaultSolve(htPage,job,ifail) + dList := + "append"/[f(i) for i in 1..n] where f(i) == + prefix := ('"\newline \tab{2} ") + dnam := INTERN STRCONC ('"d",STRINGIMAGE i) + [['text,:prefix],['bcStrings,[10, 0.0, dnam, 'F]]] + prefix := ('"\menuitemstyle{}\tab{2} {\it D} Diagonal elements of T: ") + prefix := STRCONC(prefix,"\newline \tab{2} ") + dList := [['text,:prefix],:dList] + eList := + "append"/[g(j) for j in 1..(n-1)] where g(j) == + prefix := ('"\newline \tab{2} ") + enam := INTERN STRCONC ('"e",STRINGIMAGE j) + [['text,:prefix],['bcStrings,[10, 0.0, enam, 'F]]] + prefix := ('"\blankline \newline \menuitemstyle{}\tab{2} {\it E} E(2) ") + prefix := STRCONC(prefix,"to E(N)\newline \tab{2} Job = 0 => super-diagonal") + prefix := STRCONC(prefix," elements of {\it T}. \newline \tab{2} Job = 1 =>") + prefix := STRCONC(prefix," off-diagonal elements of {\it M} from previous ") + prefix := STRCONC(prefix,"call to F04FAF. ") + eList := [['text,:prefix],:eList] + bList := + "append"/[h(k) for k in 1..n] where h(k) == + prefix := ('"\newline \tab{2} ") + bnam := INTERN STRCONC ('"b",STRINGIMAGE k) + [['text,:prefix],['bcStrings,[10, 0.0, bnam, 'F]]] + prefix := ('"\blankline \newline \menuitemstyle{}\tab{2} {\it B} Right-hand") + prefix := STRCONC(prefix," side vector b: ") + bList := [['text,:prefix],:bList] + equationPart := [ + '(domainConditions + (isDomain P (Polynomial $EmptyMode)) + (isDomain S (String)) + (isDomain F (Float)) + (isDomain PI (PositiveInteger))), + :dList,:eList,:bList] + page := htInitPage("F04FAF - Solution of real symmetric positive-definite tridiagonal simultaneous linear equations, one right-hand side (Black box)",nil) + htMakePage equationPart + htMakeDoneButton('"Continue",'f04fafGen) + htpSetProperty(page,'n,n) + htpSetProperty(page,'job,job) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + + +f04fafDefaultSolve (htPage,job,ifail) == + n := '5 + page := htInitPage('"F04FAF - Solution of real symmetric positive-definite tridiagonal simultaneous linear equations, one right-hand side (Black box)",nil) + htMakePage '( + (domainConditions + (isDomain F (Float))) + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} {\it D} Diagonal elements of T:") + (text . "\newline \tab{2} ") + (bcStrings (10 4 d1 F)) + (text . "\newline \tab{2} ") + (bcStrings (10 10 d2 F)) + (text . "\newline \tab{2} ") + (bcStrings (10 29 d3 F)) + (text . "\newline \tab{2} ") + (bcStrings (10 25 d4 F)) + (text . "\newline \tab{2} ") + (bcStrings (10 5 d5 F)) + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} {\it E}\space{1} E(2) to E(N) ") + (text . "\newline \tab{2} ") + (text . "Job = 0 => super-diagonal elements of {\it T}. \newline \tab{2}") + (text . "Job = 1 => off-diagonal elements of {\it M} from ") + (text . "previous call to F04FAF \newline \tab{2} ") + (bcStrings (10 "-2" e2 F)) + (text . "\newline \tab{2} ") + (bcStrings (10 "-6" e3 F)) + (text . "\newline \tab{2} ") + (bcStrings (10 15 e4 F)) + (text . "\newline \tab{2} ") + (bcStrings (10 8 e5 F)) + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} {\it B} Right-hand side vector b:") + (text . "\newline \tab{2} ") + (bcStrings (10 6 b1 F)) + (text . "\newline \tab{2} ") + (bcStrings (10 9 b2 F)) + (text . "\newline \tab{2} ") + (bcStrings (10 2 b3 F)) + (text . "\newline \tab{2} ") + (bcStrings (10 14 b4 F)) + (text . "\newline \tab{2} ") + (bcStrings (10 7 b5 F))) + htMakeDoneButton('"Continue",'f04fafGen) + htpSetProperty(page,'n,n) + htpSetProperty(page,'job,job) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + +f04fafGen htPage == + n := htpProperty(htPage,'n) + job := htpProperty(htPage,'job) + ifail := htpProperty(htPage,'ifail) + alist := htpInputAreaAlist htPage + y := alist + for i in 1..n repeat + b := STRCONC((first y).1," ") + bList := [b,:bList] + y := rest y + bstring := bcwords2liststring bList + for i in 1..(n-1) repeat + e := STRCONC((first y).1," ") + eList := [e,:eList] + y := rest y + eList := ['"0",:eList] + estring := bcwords2liststring eList + for i in 1..n repeat + d := STRCONC((first y).1," ") + dList := [d,:dList] + y := rest y + dstring := bcwords2liststring dList + prefix := STRCONC('"f04faf(",STRINGIMAGE job,", ",STRINGIMAGE n,",[") + prefix := STRCONC(prefix,dstring,"], [",estring,"], [",bstring,"], ") + prefix := STRCONC(prefix,STRINGIMAGE ifail,")") + bcGen prefix + + +f04jgf() == + htInitPage('"F04JGF - Least-squares (if rank = n) or minimal least-squares (if rank < n) solution of m real equations in n unknowns, rank \inputbitmap{\htbmdir{}/less=.bitmap} it n, m \inputbitmap{\htbmdir{}/great=.bitmap} n",nil) + htMakePage '( + (domainConditions + (isDomain F (Float)) + (isDomain PI (PositiveInteger))) + (text . "\windowlink{Manual Page}{manpageXXf04jgf} for this routine ") + (text . "\newline ") + (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|f04jgf| '|NagLinearEquationSolvingPackage|)} for this routine") + (text . "\newline \horizontalline ") + (text . "\blankline ") + (text . "Finds the solution of a linear least squares problem {\it Ax=b},") + (text . " where A is a real m by n matrix, (m \inputbitmap{\htbmdir{}/great=.bitmap}") + (text . " n), x is an n element vector of unknowns and b is an m element ") + (text . "right-hand side vector. The routine uses a QU factorization if ") + (text . "rank A = n and the SVD if A < n. ") + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{} \tab{2} ") + (text . "\newline Rows of matrix A, {\it m}: ") + (text . "\tab{32} \menuitemstyle{} \tab{34} ") + (text . "Columns of matrix A, {\it n}: \newline \tab{2} ") + (bcStrings (6 6 m PI)) + (text . "\tab{34} ") + (bcStrings (6 4 n PI)) + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{} \tab{2} ") +-- (text . "\newline First dimension of A, {\it nra}: ") +-- (text . "\tab{32} \menuitemstyle{} \tab{34} ") + (text . "Tolerance, {\it tol}: ") + (text . "\newline \tab{2} ") +-- (bcStrings (6 8 nra PI)) +-- (text . "\tab{34} ") + (bcStrings (8 "5.0e-4" tol F)) +-- (text . "\blankline ") +-- (text . "\newline ") +-- (text . "\menuitemstyle{}\tab{2}") +-- (text . "\newline Dimension of workspace array {\it lwork}: ") +-- (text . "\newline \tab{2} ") +-- (bcStrings (6 32 lwork 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", 'f04jgfSolve) + htShowPage() + +f04jgfSolve htPage == + m := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) + objValUnwrap htpLabelSpadValue(htPage, 'm) + n := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) + objValUnwrap htpLabelSpadValue(htPage, 'n) + nra := m +-- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nra) +-- objValUnwrap htpLabelSpadValue(htPage, 'nra) + lwork := 4*n +-- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'lwork) +-- objValUnwrap htpLabelSpadValue(htPage, 'lwork) + tol := htpLabelInputString(htPage,'tol) + error := htpButtonValue(htPage,'ifail) + ifail := + error = 'one => '1 + '-1 + (m = '6 and n = '4) => f04jgfDefaultSolve(htPage,nra,lwork,tol,ifail) + matList := + "append"/[f(i,n) for i in 1..m] where f(i,n) == + labelList := + "append"/[g(i,j) for j in 1..n] where g(i,j) == + anam := INTERN STRCONC ('"a",STRINGIMAGE i, STRINGIMAGE j) + [['bcStrings,[6, "0.0", anam, 'F]]] + prefix := ('"\newline \tab{2} ") + labelList := [['text,:prefix],:labelList] + bmatList := + "append"/[h(k) for k in 1..m] where h(k) == + prefix := ('"\newline \tab{2} ") + bnam := INTERN STRCONC ('"b",STRINGIMAGE k) + [['text,:prefix],['bcStrings,[6, "0.0", bnam, 'F]]] + start := ('"\blankline \menuitemstyle{} \tab{2} Enter values of {\it b}:") + bmatList := [['text,:start],:bmatList] + equationPart := [ + '(domainConditions + (isDomain P (Polynomial $EmptyMode)) + (isDomain S (String)) + (isDomain F (Float)) + (isDomain PI (PositiveInteger))), + :matList,:bmatList] + page := htInitPage("F04JGF - Least-squares (if rank = {\it n}) or minimal least-squares (if rank < {\it n}) solution of {\it m} real equations in {\it n} unknowns, rank \inputbitmap{\htbmdir{}/less=.bitmap} {\it n}, {\it m} \inputbitmap{\htbmdir{}/great=.bitmap} {\it n}",nil) + htSay '"\newline \menuitemstyle{}\tab{2} Enter values of {\it A}: " + htSay '"\newline \tab{2} " + htMakePage equationPart + htSay '"\blankline " + htMakeDoneButton('"Continue",'f04jgfGen) + htpSetProperty(page,'n,n) + htpSetProperty(page,'m,m) +-- htpSetProperty(page,'nra,nra) +-- htpSetProperty(page,'lwork,lwork) + htpSetProperty(page,'tol,tol) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + + +f04jgfDefaultSolve (htPage,nra,lwork,tol,ifail) == + n := '4 + m := '6 + page := htInitPage('"F04JGF - Least-squares (if rank = n) or minimal least-squares (if rank < n) solution of m real equations in n unknowns, rank \inputbitmap{\htbmdir{}/less=.bitmap} n, m \inputbitmap{\htbmdir{}/great=.bitmap} n",nil) + htMakePage '( + (domainConditions + (isDomain F (Float)) + (isDomain I (Integer))) + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} Enter values of {\it A}: ") + (text . "\newline \tab{2} ") + (bcStrings (6 "0.05" a11 F)) + (bcStrings (6 "0.05" a12 F)) + (bcStrings (6 "0.25" a13 F)) + (bcStrings (6 "-0.25" a14 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.25" a21 F)) + (bcStrings (6 "0.25" a22 F)) + (bcStrings (6 "0.05" a23 F)) + (bcStrings (6 "-0.05" a24 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.35" a31 F)) + (bcStrings (6 "0.35" a32 F)) + (bcStrings (6 "1.75" a33 F)) + (bcStrings (6 "-1.75" a34 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "1.75" a41 F)) + (bcStrings (6 "1.75" a42 F)) + (bcStrings (6 "0.35" a43 F)) + (bcStrings (6 "-0.35" a44 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.30" a51 F)) + (bcStrings (6 "-0.30" a52 F)) + (bcStrings (6 "0.30" a53 F)) + (bcStrings (6 "0.30" a54 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.40" a61 F)) + (bcStrings (6 "-0.40" a62 F)) + (bcStrings (6 "0.40" a63 F)) + (bcStrings (6 "0.40" a64 F)) + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} Enter values of {\it b}: ") + (text . "\newline \tab{2} ") + (bcStrings (6 1 b1 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 2 b2 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 3 b3 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 4 b4 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 5 b5 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 6 b6 F))) + htMakeDoneButton('"Continue",'f04jgfGen) + htpSetProperty(page,'n,n) + htpSetProperty(page,'m,m) +-- htpSetProperty(page,'nra,nra) +-- htpSetProperty(page,'lwork,lwork) + htpSetProperty(page,'tol,tol) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + +f04jgfGen htPage == + n := htpProperty(htPage,'n) + m := htpProperty(htPage,'m) +-- nra := htpProperty(htPage,'nra) +-- lwork := htpProperty(htPage,'lwork) + nra := m + lwork := 4*n + tol := htpProperty(htPage,'tol) + ifail := htpProperty(htPage,'ifail) + alist := htpInputAreaAlist htPage + y := alist + for i in 1..m repeat + b := STRCONC((first y).1," ") + bList := [b,:bList] + y := rest y + bstring := bcwords2liststring bList + y := REVERSE y + for i in 1..m repeat + for j in 1..n repeat + elm := STRCONC((first y).1," ") + rowList := [:rowList,elm] + y := rest y + matform := [:matform,rowList] + rowList := [] + for i in 1..n repeat + null := STRCONC('"0.0"," ") + nullList := [:nullList,null] + for i in m..(nra-1) repeat + matform := [:matform,nullList] + matstring := bcwords2liststring [bcwords2liststring x for x in matform] + prefix := STRCONC('"f04jgf(",STRINGIMAGE m,", ",STRINGIMAGE n,", ") + prefix := STRCONC(prefix,STRINGIMAGE nra,", ",tol,", ",STRINGIMAGE lwork) + prefix := STRCONC(prefix,", ",matstring,", [",bstring,"], ") + prefix := STRCONC(prefix,STRINGIMAGE ifail,")") + bcGen prefix + +f04mcf() == + htInitPage("F04MCF - Approximate solution of real symmetric positive-definite variable-bandwidth simultaneous linear equations (coefficient matrix already factorized)",nil) + htMakePage '( + (domainConditions + (isDomain F (Float))) + (text . "\windowlink{Manual Page}{manpageXXf04mcf} for this routine ") + (text . "\newline ") + (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|f04mcf| '|NagLinearEquationSolvingPackage|)} for this routine") + (text . "\newline \horizontalline ") + (text . "Computes the approximate solution of a system of real linear ") + (text . "equations AX = B, where the n by n symmetric positive-definite ") + (text . "variable-bandwidth matrix A has previously been factorized as ") + (text . "\htbitmap{ldlt} by F01MCF, X is an n by r matrix of unknowns ") + (text . "and B is an n by r matrix of right-hand sides. Related systems ") + (text . "may also be solved. ") + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2}") + (text . "Enter the order of the matrix A, {\it n} ") + (text ."\htbitmap{great=} 1:") + (text . "\newline\tab{2} ") + (bcStrings (9 6 n PI)) + (text . "\blankline") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2}") + (text . "\newline Enter the dimension of AL, {\it lal}: ") + (text . "\newline\tab{2} ") + (bcStrings (9 14 lal PI)) + (text . "\blankline") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2}") + (text . "\newline Enter the number of right-hand sides, {\it ir}: ") + (text . "\newline\tab{2} ") + (bcStrings (9 2 ir PI)) +-- (text . "\blankline") +-- (text . "\newline ") +-- (text . "\menuitemstyle{}\tab{2}") +-- (text . "\newline Enter the first dimension of B, {\it nrb}: ") +-- (text . "\newline\tab{2} ") +-- (bcStrings (9 6 nrb PI)) +-- (text . "\blankline") +-- (text . "\newline ") +-- (text . "\menuitemstyle{}\tab{2}") +-- (text . "\newline Enter the first dimension of X, {\it nrx}: ") +-- (text . "\newline\tab{2} ") +-- (bcStrings (9 6 nrx PI)) + (text . "\blankline ") + (text . "\newline \menuitemstyle{}\tab{2} ") + (text . "Type of system to be solved, {\it iselct}:") + (radioButtons iselct + ("" " {\em \htbitmap{ldlt}X = B} is solved" selone) + ("" " {\em LDX = B} is solved" seltwo) + ("" " {\em D\htbitmap{lt}X = B} is solved" selthree) + ("" " {\em L\htbitmap{lt}X = B} is solved" selfour) + ("" " {\em LX = B} is solved" selfive) + ("" " {\em \htbitmap{lt}X = B} is solved" selsix)) + (text . "\blankline ") + (text . "\newline \menuitemstyle{}\tab{2} Ifail value:") + (radioButtons ifail + ("" " -1, Print error messages" minusOne) + ("" " 1, Suppress error messages" one))) + htMakeDoneButton('"Continue", 'f04mcfSolve) + htShowPage() + +f04mcfSolve htPage == + n := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) + objValUnwrap htpLabelSpadValue(htPage, 'n) + lal := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'lal) + objValUnwrap htpLabelSpadValue(htPage, 'lal) + ir := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'ir) + objValUnwrap htpLabelSpadValue(htPage, 'ir) + nrb := n +-- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nrb) +-- objValUnwrap htpLabelSpadValue(htPage, 'nrb) + nrx := n +-- $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'nrx) +-- objValUnwrap htpLabelSpadValue(htPage, 'nrx) + select := htpButtonValue(htPage,'iselct) + iselct := + select = 'selone => '1 + select = 'seltwo => '2 + select = 'selthree => '3 + select = 'selfour => '4 + select = 'selfive => '5 + '6 + error := htpButtonValue(htPage,'ifail) + ifail := + error = 'one => '1 + '-1 + (n = '6 and lal = '14 and ir = '2) => f04mcfDefaultSolve(htPage,iselct,ifail) + labelList := + "append"/[fal(i) for i in 1..lal] where fal(i) == + xnam := INTERN STRCONC ('"x",STRINGIMAGE i) + [['bcStrings,[6, "0.0", xnam, 'F]]] + dList := + "append"/[fd(i) for i in 1..n] where fd(i) == + dnam := INTERN STRCONC ('"d",STRINGIMAGE i) + [['bcStrings,[6, "0.0", dnam, 'F]]] + prefix := ('"\blankline \menuitemstyle{}\tab{2} Diagonal elements of diagon") + prefix := STRCONC(prefix,"al matrix D as returned by F01MCF: \newline") + dList := [['text,:prefix],:dList] + nrowList := + "append"/[gj(j) for j in 1..n] where gj(j) == + nam := INTERN STRCONC ('"n",STRINGIMAGE j) + [['bcStrings,[6, 0, nam, 'PI]]] + prefix := ('"\blankline \menuitemstyle{}\tab{2} {\it NROW(n)} the width ") + prefix := STRCONC(prefix,"of the ith row of A: \newline ") + nrowList := [['text,:prefix],:nrowList] + bList := + "append"/[f(i,ir) for i in 1..nrb] where f(i,ir) == + labelList := + "append"/[g(i,j) for j in 1..ir] where g(i,j) == + bnam := INTERN STRCONC ('"b",STRINGIMAGE i, STRINGIMAGE j) + [['bcStrings,[6, "0.0", bnam, 'F]]] + prefix := ('"\newline ") + labelList := [['text,:prefix],:labelList] + prefix := ('"\blankline \menuitemstyle{}\tab{2} The n by r right-hand side ") + prefix := STRCONC(prefix,"matrix B: \newline ") + bList := [['text,:prefix],:bList] + equationPart := [ + '(domainConditions + (isDomain P (Polynomial $EmptyMode)) + (isDomain S (String)) + (isDomain F (Float)) + (isDomain PI (PositiveInteger))), + :labelList,:dList,:nrowList,:bList] + page := htInitPage("F04MCF - Approximate solution of real symmetric positive-definite variable-bandwidth simultaneous linear equations (coefficient matrix already factorized)",nil) + htSay '"\menuitemstyle{}\tab{2} Elements of matrix {\it AL} in row by row " + htSay '"order as returned by F01MCF: \newline " + htMakePage equationPart + htSay '"\blankline " + htMakeDoneButton('"Continue",'f04mcfGen) + htpSetProperty(page,'n,n) + htpSetProperty(page,'lal,lal) + htpSetProperty(page,'ir,ir) +-- htpSetProperty(page,'nrb,nrb) +-- htpSetProperty(page,'nrx,nrx) + htpSetProperty(page,'iselct,iselct) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + + +f04mcfDefaultSolve (htPage,iselct,ifail) == + n := '6 + lal := '14 + ir := '2 + nrb := '6 + nrx := '6 + page := htInitPage("F04MCF - Approximate solution of real symmetric positive-definite variable-bandwidth simultaneous linear equations (coefficient matrix already factorized)",nil) + htMakePage '( + (domainConditions + (isDomain PI (Positive Integer)) + (isDomain F (Float))) + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} Elements of matrix {\it AL} in row by ") + (text . "row order as returned by F01MCF: ") + (text . "\newline ") + (bcStrings (6 "1.0" x1 F)) + (bcStrings (6 "2.0" x2 F)) + (bcStrings (6 "1.0" x3 F)) + (bcStrings (6 "3.0" x4 F)) + (bcStrings (6 "1.0" x5 F)) + (bcStrings (6 "1.0" x6 F)) + (bcStrings (6 "5.0" x7 F)) + (bcStrings (6 "4.0" x8 F)) + (bcStrings (6 "1.5" x9 F)) + (bcStrings (6 "0.5" x10 F)) + (bcStrings (6 "1.0" x11 F)) + (bcStrings (6 "1.5" x12 F)) + (bcStrings (6 "5.0" x13 F)) + (bcStrings (6 "1.0" x14 F)) + (text . "\blankline ") + (text . "\menuitemstyle{}\tab{2} Diagonal elements of diagonal matrix ") + (text . "D as returned by F01MCF: ") + (text . "\newline ") + (bcStrings (6 "1.0" d1 F)) + (bcStrings (6 "1.0" d2 F)) + (bcStrings (6 "4.0" d3 F)) + (bcStrings (6 "16.0" d4 F)) + (bcStrings (6 "1.0" d5 F)) + (bcStrings (6 "16.0" d6 F)) + (text . "\blankline ") + (text . "\menuitemstyle{}\tab{2} {\it NROW(n)} the width of the ith row ") + (text . "of A: ") + (text . "\newline ") + (bcStrings (6 1 n1 PI)) + (bcStrings (6 2 n2 PI)) + (bcStrings (6 2 n3 PI)) + (bcStrings (6 1 n4 PI)) + (bcStrings (6 5 n5 PI)) + (bcStrings (6 3 n6 PI)) + (text . "\blankline ") + (text . "\menuitemstyle{}\tab{2} The n by r right-hand side matrix B:") + (text . "\newline ") + (bcStrings (6 "6" b11 F)) + (text . "\tab{10} ") + (bcStrings (6 "-10" b12 PI)) + (text . "\newline ") + (bcStrings (6 "15" b21 F)) + (text . "\tab{10} ") + (bcStrings (6 "-21" b22 PI)) + (text . "\newline ") + (bcStrings (6 "11" b31 F)) + (text . "\tab{10} ") + (bcStrings (6 "-3" b32 PI)) + (text . "\newline ") + (bcStrings (6 "0" b41 F)) + (text . "\tab{10} ") + (bcStrings (6 "24" b42 PI)) + (text . "\newline ") + (bcStrings (6 "51" b51 F)) + (text . "\tab{10} ") + (bcStrings (6 "-39" b52 PI)) + (text . "\newline ") + (bcStrings (6 "46" b61 F)) + (text . "\tab{10} ") + (bcStrings (6 "67" b62 PI)) + (text . "\blankline ")) + htMakeDoneButton('"Continue",'f04mcfGen) + htpSetProperty(page,'n,n) + htpSetProperty(page,'lal,lal) + htpSetProperty(page,'ir,ir) +-- htpSetProperty(page,'nrb,nrb) +-- htpSetProperty(page,'nrx,nrx) + htpSetProperty(page,'iselct,iselct) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + +f04mcfGen htPage == + n := htpProperty(htPage,'n) + lal := htpProperty(htPage,'lal) + ir := htpProperty(htPage,'ir) +-- nrb := htpProperty(htPage,'nrb) +-- nrx := htpProperty(htPage,'nrx) + nrb := n + nrx := n + iselct := htpProperty(htPage,'iselct) + ifail := htpProperty(htPage,'ifail) + alist := htpInputAreaAlist htPage + y := alist + for i in 1..nrb repeat + for j in 1..ir repeat + elm := STRCONC((first y).1," ") + rowList := [elm,:rowList] + y := rest y + matform := [rowList,:matform] + rowList := [] + matfrom := REVERSE matform + matstring := bcwords2liststring [bcwords2liststring x for x in matform] + for i in 1..n repeat + right := STRCONC ((first y).1," ") + y := rest y + nrowList := [right,:nrowList] + nrowstring := bcwords2liststring nrowList + for i in 1..n repeat + right := STRCONC ((first y).1," ") + y := rest y + dList := [right,:dList] + dstring := bcwords2liststring dList + while y repeat + right := STRCONC ((first y).1," ") + y := rest y + alList := [right,:alList] + alstring := bcwords2liststring alList + prefix := STRCONC('"f04mcf(",STRINGIMAGE n,", [",alstring,"], ") + prefix := STRCONC(prefix,STRINGIMAGE lal,", [",dstring,"],[",nrowstring) + prefix := STRCONC(prefix,"]::Matrix Integer,") + prefix := STRCONC(prefix,STRINGIMAGE ir,", ",matstring,", ",STRINGIMAGE nrb) + prefix := STRCONC(prefix,", ",STRINGIMAGE iselct,", ",STRINGIMAGE nrx,", ") + bcGen STRCONC(prefix,STRINGIMAGE ifail,")") + + +f04axf() == + htInitPage('"F04AXF - Approximate solution of a a set of real sparse linear equations after factorization by F01BRF or by F01BSF",nil) + htMakePage '( + (domainConditions + (isDomain EM $EmptyMode) + (isDomain F (Float))) + (text . "\windowlink{Manual Page}{manpageXXf04axf} for this routine ") + (text . "\newline ") + (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|f04axf| '|NagLinearEquationSolvingPackage|)} for this routine") + (text . "\newline \horizontalline ") + (text . "\newline ") + (text . "F04AXF calculates the approximate solution of a set of real ") + (text . "sparse linear equations {\it Ax=b} or ") + (text . "\htbitmap{aTx=b}, where the {\it n} by {\it n} matrix ") + (text . "{\it A} has been factorized by F01BRF or F01BSF, {\it x} ") + (text . "is an {\it n} element vector of unknowns and {\it b} is an ") + (text . "{\it n} element right-hand side vector. ") + (text . "\blankline") + (text . "\newline ") + (text . "Read the input file to see the example program. ") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} ") + (text . "\spadcommand{)read f04axf \bound{s0}} ")) + htShowPage() + +f04maf() == + htInitPage('"F04MAF - Solution of a real sparse symmetric positive-definite system of linear equations after factorization by F01MAF",nil) + htMakePage '( + (domainConditions + (isDomain EM $EmptyMode) + (isDomain F (Float))) + (text . "\windowlink{Manual Page}{manpageXXf04maf} for this routine ") + (text . "\newline ") + (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|f04maf| '|NagLinearEquationSolvingPackage|)} for this routine") + (text . "\newline \horizontalline ") + (text . "\newline ") + (text . "F04MAF solves a real sparse symmetric positive-definite system ") + (text . "of linear equations {\it Ax=b} using a pre-conditioned ") + (text . "conjugate gradient method, where the {\it n} by {\it n} ") + (text . "matrix {\it A} has been factorized by F01MAF, {\it x} is an ") + (text . "{\it n} element vector of unknowns and {\it b} is an {\it n} ") + (text . "element right-hand side vector. ") + (text . "\blankline") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} ") + (text . "\spadcommand{)read f04maf \bound{s0}} ")) + htShowPage() + +f04mbf() == + htInitPage('"F04MBF - Real sparse symmetric simultaneous linear equations",nil) + htMakePage '( + (domainConditions + (isDomain EM $EmptyMode) + (isDomain PI (PositiveInteger)) + (isDomain F (Float))) + (text . "\windowlink{Manual Page}{manpageXXf04mbf} for this routine ") + (text . "\newline ") + (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|f04mbf| '|NagLinearEquationSolvingPackage|)} for this routine") + (text . "\newline \horizontalline ") + (text . "\newline ") + (text . "F04MBF solve a system of real symmetric linear equations ") + (text . "({\it A} - \lambda {\it I}){\it x} = {\it b} using a Lanczos ") + (text . "algorithm, where {\it A} is an {\it n} by {\it n} sparse ") + (text . "symmetric matrix, {\it x} is an {\it n} vector of unknowns ") + (text . "and {\it b} is an {\it n} element right-hand side vector. ") + (text . "\blankline") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} ") + (text . "Enter the order {\it n} of matrix {\it A}: ") + (text . "\newline \tab{2} ") + (bcStrings (10 10 n PI)) + (text . "\blankline") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} ") + (text . "Is preconditioning required? ") + (radioButtons precon + ("" " Yes" true) + ("" " No" false)) + (text . "\blankline") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} ") + (text . "Enter the shift in the equations \lambda, {\it shift} : ") + (text . "\newline \tab{2} ") + (bcStrings (10 "0.0" shift F)) + (text . "\blankline") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} ") + (text . "Enter the tolerance for convergence, {\it rtol}: ") + (text . "\newline \tab{2} ") + (bcStrings (10 "0.00001" rtol F)) + (text . "\blankline") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} ") + (text . "Enter an upper limit for the number of iterations, {\it itnlim}: ") + (text . "\newline \tab{2} ") + (bcStrings (10 100 itnlim PI)) + (text . "\blankline") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} ") + (text . "Enter the printing level, {\it msglvl}: ") + (text . "\newline \tab{2} ") + (bcStrings (10 1 msglvl PI)) + (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", 'f04mbfSolve) + htShowPage() + +f04mbfSolve htPage == + n := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) + objValUnwrap htpLabelSpadValue(htPage, 'n) + msolve := htpButtonValue(htPage,'precon) + precon := + msolve = 'true => 'true + 'false + shift := htpLabelInputString(htPage,'shift) + rtol := htpLabelInputString(htPage,'rtol) + itnlim := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'itnlim) + objValUnwrap htpLabelSpadValue(htPage, 'itnlim) + msglvl := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'msglvl) + objValUnwrap htpLabelSpadValue(htPage, 'msglvl) + error := htpButtonValue(htPage,'ifail) + ifail := + error = 'one => '1 + '-1 + (n = '10 and precon ='true) => f04mbfDefaultSolve(htPage,shift,rtol,itnlim,msglvl,ifail) + bmatList := + "append"/[f(i) for i in 1..n] where f(i) == + bnam := INTERN STRCONC ('"b",STRINGIMAGE i) + [['bcStrings,[6, "0.0", bnam, 'F]]] + amatList := + "append"/[h(ia,n) for ia in 1..n] where h(ia,n) == + alabelList := + "append"/[k(ia,ja) for ja in 1..n] where k(ia,ja) == + anam := INTERN STRCONC ('"a",STRINGIMAGE ia,STRINGIMAGE ja) + [['bcStrings,[6, "0.0", anam, 'F]]] + prefix := ('"\newline \tab{2} ") + alabelList := [['text,:prefix],:alabelList] + start := ('"\blankline \menuitemstyle{}\tab{2} Enter the matrix {\it A}: ") + amatList := [['text,:start],:amatList] + mmatList:= + precon = 'true => + alabelList:= + "append"/[l(im,n) for im in 1..n] where l(im,n) == + mlabelList := + "append"/[o(im,jm) for jm in 1..n] where o(im,jm) == + mnam := INTERN STRCONC ('"m",STRINGIMAGE im,STRINGIMAGE jm) + [['bcStrings,[6, "0.0", mnam, 'F]]] + prefix := ('"\newline \tab{2} ") + mlabelList := [['text,:prefix],:mlabelList] + start := ('"\blankline \menuitemstyle{}\tab{2} Enter the matrix {\it m}: ") + [['text,:start],:alabelList] + [] + equationPart := [ + '(domainConditions + (isDomain P (Polynomial $EmptyMode)) + (isDomain F (Float))), + :bmatList,:amatList,:mmatList] + page := htInitPage('"F04MBF - Real sparse symmetric simultaneous linear equations",nil) + htSay '"\newline \menuitemstyle{}\tab{2} " + htSay '"Enter the right-hand side vector {\it b(n)}: " + htSay '"\newline \tab{2} " + htMakePage equationPart + htSay '"\blankline " + htMakeDoneButton('"Continue",'f04mbfGen) + htpSetProperty(page,'n,n) + htpSetProperty(page,'precon,precon) + htpSetProperty(page,'shift,shift) + htpSetProperty(page,'rtol,rtol) + htpSetProperty(page,'itnlim,itnlim) + htpSetProperty(page,'msglvl,msglvl) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + +f04mbfDefaultSolve (htPage,shift,rtol,itnlim,msglvl,ifail) == + n := '10 + precon := 'true + page := htInitPage('"F04MBF - Real sparse symmetric simultaneous linear equations",nil) + htMakePage '( + (domainConditions + (isDomain F (Float))) + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} ") + (text . "Enter the right-hand side vector {\it b(n)}: ") + (text . "\newline \tab{2} ") + (bcStrings (6 "6.0" b1 F)) + (bcStrings (6 "4.0" b2 F)) + (bcStrings (6 "4.0" b3 F)) + (bcStrings (6 "4.0" b4 F)) + (bcStrings (6 "4.0" b5 F)) + (bcStrings (6 "4.0" b6 F)) + (bcStrings (6 "4.0" b7 F)) + (bcStrings (6 "4.0" b8 F)) + (bcStrings (6 "4.0" b9 F)) + (bcStrings (6 "6.0" b10 F)) + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} ") + (text . "Enter the matrix {\it A}: ") + (text . "\newline \tab{2} ") + (bcStrings (6 "2.0" a11 F)) + (bcStrings (6 "1.0" a12 F)) + (bcStrings (6 "0.0" a13 F)) + (bcStrings (6 "0.0" a14 F)) + (bcStrings (6 "0.0" a15 F)) + (bcStrings (6 "0.0" a16 F)) + (bcStrings (6 "0.0" a17 F)) + (bcStrings (6 "0.0" a18 F)) + (bcStrings (6 "0.0" a19 F)) + (bcStrings (6 "3.0" a110 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "1.0" a21 F)) + (bcStrings (6 "2.0" a22 F)) + (bcStrings (6 "1.0" a23 F)) + (bcStrings (6 "0.0" a24 F)) + (bcStrings (6 "0.0" a25 F)) + (bcStrings (6 "0.0" a26 F)) + (bcStrings (6 "0.0" a27 F)) + (bcStrings (6 "0.0" a28 F)) + (bcStrings (6 "0.0" a29 F)) + (bcStrings (6 "0.0" a210 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a31 F)) + (bcStrings (6 "1.0" a32 F)) + (bcStrings (6 "2.0" a33 F)) + (bcStrings (6 "1.0" a34 F)) + (bcStrings (6 "0.0" a35 F)) + (bcStrings (6 "0.0" a36 F)) + (bcStrings (6 "0.0" a37 F)) + (bcStrings (6 "0.0" a38 F)) + (bcStrings (6 "0.0" a39 F)) + (bcStrings (6 "0.0" a310 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a41 F)) + (bcStrings (6 "0.0" a42 F)) + (bcStrings (6 "1.0" a43 F)) + (bcStrings (6 "2.0" a44 F)) + (bcStrings (6 "1.0" a45 F)) + (bcStrings (6 "0.0" a46 F)) + (bcStrings (6 "0.0" a47 F)) + (bcStrings (6 "0.0" a48 F)) + (bcStrings (6 "0.0" a49 F)) + (bcStrings (6 "0.0" a410 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a51 F)) + (bcStrings (6 "0.0" a52 F)) + (bcStrings (6 "0.0" a53 F)) + (bcStrings (6 "1.0" a54 F)) + (bcStrings (6 "2.0" a55 F)) + (bcStrings (6 "1.0" a56 F)) + (bcStrings (6 "0.0" a57 F)) + (bcStrings (6 "0.0" a58 F)) + (bcStrings (6 "0.0" a59 F)) + (bcStrings (6 "0.0" a510 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a61 F)) + (bcStrings (6 "0.0" a62 F)) + (bcStrings (6 "0.0" a63 F)) + (bcStrings (6 "0.0" a64 F)) + (bcStrings (6 "1.0" a65 F)) + (bcStrings (6 "2.0" a66 F)) + (bcStrings (6 "1.0" a67 F)) + (bcStrings (6 "0.0" a68 F)) + (bcStrings (6 "0.0" a69 F)) + (bcStrings (6 "0.0" a610 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a71 F)) + (bcStrings (6 "0.0" a72 F)) + (bcStrings (6 "0.0" a73 F)) + (bcStrings (6 "0.0" a74 F)) + (bcStrings (6 "0.0" a75 F)) + (bcStrings (6 "1.0" a76 F)) + (bcStrings (6 "2.0" a77 F)) + (bcStrings (6 "1.0" a78 F)) + (bcStrings (6 "0.0" a79 F)) + (bcStrings (6 "0.0" a710 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a81 F)) + (bcStrings (6 "0.0" a82 F)) + (bcStrings (6 "0.0" a83 F)) + (bcStrings (6 "0.0" a84 F)) + (bcStrings (6 "0.0" a85 F)) + (bcStrings (6 "0.0" a86 F)) + (bcStrings (6 "1.0" a87 F)) + (bcStrings (6 "2.0" a88 F)) + (bcStrings (6 "1.0" a89 F)) + (bcStrings (6 "0.0" a810 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a91 F)) + (bcStrings (6 "0.0" a92 F)) + (bcStrings (6 "0.0" a93 F)) + (bcStrings (6 "0.0" a94 F)) + (bcStrings (6 "0.0" a95 F)) + (bcStrings (6 "0.0" a96 F)) + (bcStrings (6 "0.0" a97 F)) + (bcStrings (6 "1.0" a98 F)) + (bcStrings (6 "2.0" a99 F)) + (bcStrings (6 "1.0" a910 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "3.0" a101 F)) + (bcStrings (6 "0.0" a102 F)) + (bcStrings (6 "0.0" a103 F)) + (bcStrings (6 "0.0" a104 F)) + (bcStrings (6 "0.0" a105 F)) + (bcStrings (6 "0.0" a106 F)) + (bcStrings (6 "0.0" a107 F)) + (bcStrings (6 "0.0" a108 F)) + (bcStrings (6 "1.0" a109 F)) + (bcStrings (6 "2.0" a1010 F)) + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} ") + (text . "Enter the matrix {\it m}: ") + (text . "\newline \tab{2} ") + (bcStrings (6 "2.0" m11 F)) + (bcStrings (6 "1.0" m12 F)) + (bcStrings (6 "0.0" m13 F)) + (bcStrings (6 "0.0" m14 F)) + (bcStrings (6 "0.0" m15 F)) + (bcStrings (6 "0.0" m16 F)) + (bcStrings (6 "0.0" m17 F)) + (bcStrings (6 "0.0" m18 F)) + (bcStrings (6 "0.0" m19 F)) + (bcStrings (6 "0.0" m110 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "1.0" m21 F)) + (bcStrings (6 "2.0" m22 F)) + (bcStrings (6 "1.0" m23 F)) + (bcStrings (6 "0.0" m24 F)) + (bcStrings (6 "0.0" m25 F)) + (bcStrings (6 "0.0" m26 F)) + (bcStrings (6 "0.0" m27 F)) + (bcStrings (6 "0.0" m28 F)) + (bcStrings (6 "0.0" m29 F)) + (bcStrings (6 "0.0" m210 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" m31 F)) + (bcStrings (6 "1.0" m32 F)) + (bcStrings (6 "2.0" m33 F)) + (bcStrings (6 "1.0" m34 F)) + (bcStrings (6 "0.0" m35 F)) + (bcStrings (6 "0.0" m36 F)) + (bcStrings (6 "0.0" m37 F)) + (bcStrings (6 "0.0" m38 F)) + (bcStrings (6 "0.0" m39 F)) + (bcStrings (6 "0.0" m310 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" m41 F)) + (bcStrings (6 "0.0" m42 F)) + (bcStrings (6 "1.0" m43 F)) + (bcStrings (6 "2.0" m44 F)) + (bcStrings (6 "1.0" m45 F)) + (bcStrings (6 "0.0" m46 F)) + (bcStrings (6 "0.0" m47 F)) + (bcStrings (6 "0.0" m48 F)) + (bcStrings (6 "0.0" m49 F)) + (bcStrings (6 "0.0" m410 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" m51 F)) + (bcStrings (6 "0.0" m52 F)) + (bcStrings (6 "0.0" m53 F)) + (bcStrings (6 "1.0" m54 F)) + (bcStrings (6 "2.0" m55 F)) + (bcStrings (6 "1.0" m56 F)) + (bcStrings (6 "0.0" m57 F)) + (bcStrings (6 "0.0" m58 F)) + (bcStrings (6 "0.0" m59 F)) + (bcStrings (6 "0.0" m510 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" m61 F)) + (bcStrings (6 "0.0" m62 F)) + (bcStrings (6 "0.0" m63 F)) + (bcStrings (6 "0.0" m64 F)) + (bcStrings (6 "1.0" m65 F)) + (bcStrings (6 "2.0" m66 F)) + (bcStrings (6 "1.0" m67 F)) + (bcStrings (6 "0.0" m68 F)) + (bcStrings (6 "0.0" m69 F)) + (bcStrings (6 "0.0" m610 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" m71 F)) + (bcStrings (6 "0.0" m72 F)) + (bcStrings (6 "0.0" m73 F)) + (bcStrings (6 "0.0" m74 F)) + (bcStrings (6 "0.0" m75 F)) + (bcStrings (6 "1.0" m76 F)) + (bcStrings (6 "2.0" m77 F)) + (bcStrings (6 "1.0" m78 F)) + (bcStrings (6 "0.0" m79 F)) + (bcStrings (6 "0.0" m710 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" m81 F)) + (bcStrings (6 "0.0" m82 F)) + (bcStrings (6 "0.0" m83 F)) + (bcStrings (6 "0.0" m84 F)) + (bcStrings (6 "0.0" m85 F)) + (bcStrings (6 "0.0" m86 F)) + (bcStrings (6 "1.0" m87 F)) + (bcStrings (6 "2.0" m88 F)) + (bcStrings (6 "1.0" m89 F)) + (bcStrings (6 "0.0" m810 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" m91 F)) + (bcStrings (6 "0.0" m92 F)) + (bcStrings (6 "0.0" m93 F)) + (bcStrings (6 "0.0" m94 F)) + (bcStrings (6 "0.0" m95 F)) + (bcStrings (6 "0.0" m96 F)) + (bcStrings (6 "0.0" m97 F)) + (bcStrings (6 "1.0" m98 F)) + (bcStrings (6 "2.0" m99 F)) + (bcStrings (6 "1.0" m910 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" m101 F)) + (bcStrings (6 "0.0" m102 F)) + (bcStrings (6 "0.0" m103 F)) + (bcStrings (6 "0.0" m104 F)) + (bcStrings (6 "0.0" m105 F)) + (bcStrings (6 "0.0" m106 F)) + (bcStrings (6 "0.0" m107 F)) + (bcStrings (6 "0.0" m108 F)) + (bcStrings (6 "1.0" m109 F)) + (bcStrings (6 "2.0" m1010 F)) + (text . "\blankline ")) + htMakeDoneButton('"Continue",'f04mbfGen) + htpSetProperty(page,'n,n) + htpSetProperty(page,'precon,precon) + htpSetProperty(page,'shift,shift) + htpSetProperty(page,'rtol,rtol) + htpSetProperty(page,'itnlim,itnlim) + htpSetProperty(page,'msglvl,msglvl) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + +f04mbfGen htPage == + n := htpProperty(htPage,'n) + precon := htpProperty(htPage,'precon) + shift := htpProperty(htPage,'shift) + rtol := htpProperty(htPage,'rtol) + itnlim := htpProperty(htPage,'itnlim) + msglvl := htpProperty(htPage,'msglvl) + ifail := htpProperty(htPage,'ifail) + lrwork := '1 + liwork := '1 + alist := htpInputAreaAlist htPage + y := alist + if (precon = 'true) then + for i in 1..n repeat + for j in 1..n repeat + melm := STRCONC((first y).1," ") + mrowlist := [melm,:mrowlist] + y := rest y + matm := [mrowlist,:matm] + mrowlist := [] + mstring := bcwords2liststring [bcwords2liststring x for x in matm] + for k in 1..n repeat + for l in 1..n repeat + aelm := STRCONC((first y).1," ") + arowlist := [aelm,:arowlist] + y := rest y + mata := [arowlist,:mata] + arowlist := [] + astring := bcwords2liststring [bcwords2liststring y for y in mata] + for z in 1..n repeat + belm := STRCONC((first y).1," ") + blist := [belm,:blist] + y := rest y + bstring := bcwords2liststring blist + if (precon = 'false) then + mstring := astring + prefix := STRCONC('"f04mbf(",STRINGIMAGE n,",[",bstring,"]::Matrix DoubleFloat,",precon,",") + prefix := STRCONC(prefix,STRINGIMAGE shift,",",STRINGIMAGE itnlim,",",STRINGIMAGE msglvl,",") + prefix := STRCONC(prefix,STRINGIMAGE lrwork,",",STRINGIMAGE liwork,",") + prefix := STRCONC(prefix,STRINGIMAGE rtol,",",STRINGIMAGE ifail,",((") + prefix := STRCONC(prefix,astring,"::Matrix MachineFloat)::ASP28(APROD)),((") + prefix := STRCONC(prefix,mstring,"::Matrix MachineFloat)::ASP34(MSOLVE)))") + linkGen prefix + + +-- f04qaf() == +-- htInitPage('"F04QAF - Solution of sparse unsymmetric equations, linear and damped least-squares problems using a Lanczos algorithm",nil) +-- htMakePage '( +-- (domainConditions +-- (isDomain EM $EmptyMode) +-- (isDomain F (Float))) +-- (text . "\windowlink{Manual Page}{manpageXXf04qaf} for this routine ") +-- (text . "\newline ") +-- (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|f04qaf| '|NagLinearEquationSolvingPackage|)} for this routine") +-- (text . "\newline \horizontalline ") +-- (text . "\newline ") +-- (text . "F04QAF solves sparse unsymmetric equations, sparse linear ") +-- (text . "least-squares problems and sparse damped least-squares ") +-- (text . "problems, using a Lanczos algorithm. Specifically, the ") +-- (text . "routine can be used to solve a system of linear equations ") +-- (text . "{\it Ax=b}, where {\it A} is an {\it n} by {\it n} real ") +-- (text . "sparse unsymmetric matrix, or can be used to solve linear ") +-- (text . "least-squares problems, so that it minimizes the the value ") +-- (text . "{\htbitmap{newrho}} given by {\htbitmap{rho=r}}, ") +-- (text . "{\it r=b-AX} where {\it A} is an {\it m} by {\it n} real ") +-- (text . "sparse matrix. A damping parameter \lambda may ") +-- (text . "be included in the least squares problem in which case the ") +-- (text . "routine minimizes the value {\htbitmap{newrho}} given by ") +-- (text . "{\htbitmap{rhosq=}}. \newline ") +-- (text . "\blankline ") +-- (text . "\menuitemstyle{}\tab{2}") +-- (text . "\spadcommand{)read f04qaf \bound{s0}} ")) +-- htShowPage() + +-- f04mbf() == +-- htInitPage('"F04MBF - Real sparse symmetric simultaneous linear equations",nil) +-- htMakePage '( +-- (domainConditions +-- (isDomain EM $EmptyMode) +-- (isDomain F (Float))) +-- (text . "\windowlink{Manual Page}{manpageXXf04mbf} for this routine ") +-- (text . "\newline ") +-- (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|f04mbf| '|NagLinearEquationSolvingPackage|)} for this routine") +-- (text . "\newline \horizontalline ") +-- (text . "\newline ") +-- (text . "\newline ") +-- (text . "F04MBF solve a system of real symmetric linear equations ") +-- (text . "({\it A} - \lambda {\it I}){\it x} = {\it b} using a Lanczos ") +-- (text . "algorithm, where {\it A} is an {\it n} by {\it n} sparse ") +-- (text . "symmetric matrix, {\it x} is an {\it n} vector of unknowns ") +-- (text . "and {\it b} is an {\it n} element right-hand side vector. ") +-- (text . "\blankline") +-- (text . "\newline ") +-- (text . "\menuitemstyle{}\tab{2} ") +-- (text . "\spadcommand{)read f04mbf \bound{s0}} ")) +-- htShowPage() + +f04qaf() == + htInitPage('"F04QAF - Solution of sparse unsymmetric equations, linear and damped least-squares problems using a Lanczos algorithm",nil) + htMakePage '( + (domainConditions + (isDomain EM $EmptyMode) + (isDomain PI (PositiveInteger)) + (isDomain F (Float))) + (text . "\windowlink{Manual Page}{manpageXXf04qaf} for this routine ") + (text . "\newline ") + (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|f04qaf| '|NagLinearEquationSolvingPackage|)} for this routine") + (text . "\newline \horizontalline ") + (text . "\newline ") + (text . "F04QAF solves sparse unsymmetric equations, sparse linear ") + (text . "least-squares problems and sparse damped least-squares ") + (text . "problems, using a Lanczos algorithm. Specifically, the ") + (text . "routine can be used to solve a system of linear equations ") + (text . "{\it Ax=b}, where {\it A} is an {\it n} by {\it n} real ") + (text . "sparse unsymmetric matrix, or can be used to solve linear ") + (text . "least-squares problems, so that it minimizes the the value ") + (text . "{\htbitmap{newrho}} given by {\htbitmap{rho=r}}, ") + (text . "{\it r=b-AX} where {\it A} is an {\it m} by {\it n} real ") + (text . "sparse matrix. A damping parameter \lambda may ") + (text . "be included in the least squares problem in which case the ") + (text . "routine minimizes the value {\htbitmap{newrho}} given by ") + (text . "{\htbitmap{rhosq=}}. \newline ") + (text . "\blankline ") + (text . "\menuitemstyle{}\tab{2}") + (text . "Enter the number of rows of the matrix {\it A}, {\it m}:") + (text . "\newline \tab{2}") + (bcStrings (10 13 m PI)) + (text . "\blankline ") + (text . "\menuitemstyle{}\tab{2}") + (text . "Enter the number of columns of the matrix {\it A}, {\it n}:") + (text . "\newline \tab{2}") + (bcStrings (10 12 n PI)) + (text . "\blankline ") + (text . "\menuitemstyle{}\tab{2}") + (text . "Enter the damping parameter \lambda, {\it damp}:") + (text . "\newline \tab{2}") + (bcStrings (10 "0.0" damp F)) + (text . "\blankline ") + (text . "\menuitemstyle{}\tab{2}") + (text . "Enter the tolerance for elements of {\it A}, {\it atol}:") + (text . "\newline \tab{2}") + (bcStrings (10 "0.00001" atol F)) + (text . "\blankline ") + (text . "\menuitemstyle{}\tab{2}") + (text . "Enter the tolerance for elements of {\it b}, {\it btol}:") + (text . "\newline \tab{2}") + (bcStrings (10 "0.0001" btol F)) + (text . "\blankline ") + (text . "\menuitemstyle{}\tab{2}") + (text . "Enter the maximum number of iterations {\it itnlim}:") + (text . "\newline \tab{2}") + (bcStrings (10 100 itnlim PI)) + (text . "\blankline ") + (text . "\menuitemstyle{}\tab{2}") + (text . "Enter the printing level {\it msglvl}:") + (text . "\newline \tab{2}") + (bcStrings (10 1 msglvl PI)) + (text . "\blankline ") + (text . "\menuitemstyle{}\tab{2}") + (text . "Ifail value: ") + (radioButtons ifail + ("" " -1, Print error messages" minusOne) + ("" " 1, Suppress error messages" one))) + htMakeDoneButton('"Continue", 'f04qafSolve) + htShowPage() + +f04qafSolve htPage == + m := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) + objValUnwrap htpLabelSpadValue(htPage, 'm) + n := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) + objValUnwrap htpLabelSpadValue(htPage, 'n) + damp := htpLabelInputString(htPage,'damp) + atol := htpLabelInputString(htPage,'atol) + btol := htpLabelInputString(htPage,'btol) + itnlim := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'itnlim) + objValUnwrap htpLabelSpadValue(htPage, 'itnlim) + msglvl := + $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'msglvl) + objValUnwrap htpLabelSpadValue(htPage, 'msglvl) + error := htpButtonValue(htPage,'ifail) + ifail := + error = 'one => '1 + '-1 + (m = '13 and n = '12) => f04qafDefaultSolve(htPage,damp,atol,btol,itnlim,msglvl,ifail) + bmatList := + "append"/[f(i) for i in 1..m] where f(i) == + bnam := INTERN STRCONC ('"b",STRINGIMAGE i) + [['bcStrings,[6, "0.0", bnam, 'F]]] + amatList := + "append"/[h(ia,n) for ia in 1..m] where h(ia,n) == + alabelList := + "append"/[k(ia,ja) for ja in 1..n] where k(ia,ja) == + anam := INTERN STRCONC ('"a",STRINGIMAGE ia,STRINGIMAGE ja) + [['bcStrings,[6, "0.0", anam, 'F]]] + prefix := ('"\newline \tab{2} ") + alabelList := [['text,:prefix],:alabelList] + start := ('"\blankline \menuitemstyle{}\tab{2} Enter the matrix {\it A}: ") + amatList := [['text,:start],:amatList] + equationPart := [ + '(domainConditions + (isDomain P (Polynomial $EmptyMode)) + (isDomain F (Float))), + :bmatList,:amatList] + page := htInitPage('"F04QAF - Solution of sparse unsymmetric equations, linear and damped least-squares problems using a Lanczos algorithm",nil) + htSay '"\newline \menuitemstyle{}\tab{2} " + htSay '"Enter the right-hand side vector {\it b(m)}: " + htSay '"\newline \tab{2} " + htMakePage equationPart + htSay '"\blankline " + htMakeDoneButton('"Continue",'f04qafGen) + htpSetProperty(page,'m,m) + htpSetProperty(page,'n,n) + htpSetProperty(page,'damp,damp) + htpSetProperty(page,'atol,atol) + htpSetProperty(page,'btol,btol) + htpSetProperty(page,'itnlim,itnlim) + htpSetProperty(page,'msglvl,msglvl) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + + + +f04qafDefaultSolve (htPage,damp,atol,btol,itnlim,msglvl,ifail) == + m := '13 + n := '12 + page := htInitPage('"F04QAF - Solution of sparse unsymmetric equations, linear and damped least-squares problems using a Lanczos algorithm",nil) + htMakePage '( + (domainConditions + (isDomain F (Float))) + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} ") + (text . "Enter the right-hand side vector {\it b(n)}: ") + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" b1 F)) + (bcStrings (6 "0.0" b2 F)) + (bcStrings (6 "0.0" b3 F)) + (bcStrings (6 "-0.01" b4 F)) + (bcStrings (6 "-0.01" b5 F)) + (bcStrings (6 "0.0" b6 F)) + (bcStrings (6 "0.0" b7 F)) + (bcStrings (6 "-0.01" b8 F)) + (bcStrings (6 "-0.01" b9 F)) + (bcStrings (6 "0.0" b10 F)) + (bcStrings (6 "0.0" b11 F)) + (bcStrings (6 "0.0" b12 F)) + (bcStrings (6 "10.0" b13 F)) + (text . "\blankline ") + (text . "\newline ") + (text . "\menuitemstyle{}\tab{2} ") + (text . "Enter the matrix {\it A}: ") + (text . "\newline \tab{2} ") + (bcStrings (6 "1.0" a0101 F)) + (bcStrings (6 "0.0" a0102 F)) + (bcStrings (6 "0.0" a0103 F)) + (bcStrings (6 "-1.0" a0104 F)) + (bcStrings (6 "0.0" a0105 F)) + (bcStrings (6 "0.0" a0106 F)) + (bcStrings (6 "0.0" a0107 F)) + (bcStrings (6 "0.0" a0108 F)) + (bcStrings (6 "0.0" a0109 F)) + (bcStrings (6 "0.0" a0110 F)) + (bcStrings (6 "0.0" a0111 F)) + (bcStrings (6 "0.0" a0112 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a0201 F)) + (bcStrings (6 "1.0" a0202 F)) + (bcStrings (6 "0.0" a0203 F)) + (bcStrings (6 "0.0" a0204 F)) + (bcStrings (6 "-1.0" a0205 F)) + (bcStrings (6 "0.0" a0206 F)) + (bcStrings (6 "0.0" a0207 F)) + (bcStrings (6 "0.0" a0208 F)) + (bcStrings (6 "0.0" a0209 F)) + (bcStrings (6 "0.0" a0210 F)) + (bcStrings (6 "0.0" a0211 F)) + (bcStrings (6 "0.0" a0212 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a0301 F)) + (bcStrings (6 "0.0" a0302 F)) + (bcStrings (6 "1.0" a0303 F)) + (bcStrings (6 "-1.0" a0304 F)) + (bcStrings (6 "0.0" a0305 F)) + (bcStrings (6 "0.0" a0306 F)) + (bcStrings (6 "0.0" a0307 F)) + (bcStrings (6 "0.0" a0308 F)) + (bcStrings (6 "0.0" a0309 F)) + (bcStrings (6 "0.0" a0310 F)) + (bcStrings (6 "0.0" a0311 F)) + (bcStrings (6 "0.0" a0312 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "-1.0" a0401 F)) + (bcStrings (6 "0.0" a0402 F)) + (bcStrings (6 "-1.0" a0403 F)) + (bcStrings (6 "4.0" a0404 F)) + (bcStrings (6 "-1.0" a0405 F)) + (bcStrings (6 "0.0" a0406 F)) + (bcStrings (6 "0.0" a0407 F)) + (bcStrings (6 "-1.0" a0408 F)) + (bcStrings (6 "0.0" a0409 F)) + (bcStrings (6 "0.0" a0410 F)) + (bcStrings (6 "0.0" a0411 F)) + (bcStrings (6 "0.0" a0412 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a0501 F)) + (bcStrings (6 "-1.0" a0502 F)) + (bcStrings (6 "0.0" a0503 F)) + (bcStrings (6 "-1.0" a0504 F)) + (bcStrings (6 "4.0" a0505 F)) + (bcStrings (6 "-1.0" a0506 F)) + (bcStrings (6 "0.0" a0507 F)) + (bcStrings (6 "0.0" a0508 F)) + (bcStrings (6 "-1.0" a0509 F)) + (bcStrings (6 "0.0" a0510 F)) + (bcStrings (6 "0.0" a0511 F)) + (bcStrings (6 "0.0" a0512 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a0601 F)) + (bcStrings (6 "0.0" a0602 F)) + (bcStrings (6 "0.0" a0603 F)) + (bcStrings (6 "0.0" a0604 F)) + (bcStrings (6 "-1.0" a0605 F)) + (bcStrings (6 "1.0" a0606 F)) + (bcStrings (6 "0.0" a0607 F)) + (bcStrings (6 "0.0" a0608 F)) + (bcStrings (6 "0.0" a0609 F)) + (bcStrings (6 "0.0" a0610 F)) + (bcStrings (6 "0.0" a0611 F)) + (bcStrings (6 "0.0" a0612 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a0701 F)) + (bcStrings (6 "0.0" a0702 F)) + (bcStrings (6 "0.0" a0703 F)) + (bcStrings (6 "0.0" a0704 F)) + (bcStrings (6 "0.0" a0705 F)) + (bcStrings (6 "0.0" a0706 F)) + (bcStrings (6 "1.0" a0707 F)) + (bcStrings (6 "-1.0" a0708 F)) + (bcStrings (6 "0.0" a0709 F)) + (bcStrings (6 "0.0" a0710 F)) + (bcStrings (6 "0.0" a0711 F)) + (bcStrings (6 "0.0" a0712 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a0801 F)) + (bcStrings (6 "0.0" a0802 F)) + (bcStrings (6 "0.0" a0803 F)) + (bcStrings (6 "-1.0" a0804 F)) + (bcStrings (6 "0.0" a0805 F)) + (bcStrings (6 "0.0" a0806 F)) + (bcStrings (6 "-1.0" a0807 F)) + (bcStrings (6 "4.0" a0808 F)) + (bcStrings (6 "-1.0" a0809 F)) + (bcStrings (6 "0.0" a0810 F)) + (bcStrings (6 "-1.0" a0811 F)) + (bcStrings (6 "0.0" a0812 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a0901 F)) + (bcStrings (6 "0.0" a0902 F)) + (bcStrings (6 "0.0" a0903 F)) + (bcStrings (6 "0.0" a0904 F)) + (bcStrings (6 "-1.0" a0905 F)) + (bcStrings (6 "0.0" a0906 F)) + (bcStrings (6 "0.0" a0907 F)) + (bcStrings (6 "-1.0" a0908 F)) + (bcStrings (6 "4.0" a0909 F)) + (bcStrings (6 "-1.0" a0910 F)) + (bcStrings (6 "0.0" a0911 F)) + (bcStrings (6 "-1.0" a0912 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a1001 F)) + (bcStrings (6 "0.0" a1002 F)) + (bcStrings (6 "0.0" a1003 F)) + (bcStrings (6 "0.0" a1004 F)) + (bcStrings (6 "0.0" a1005 F)) + (bcStrings (6 "0.0" a1006 F)) + (bcStrings (6 "0.0" a1007 F)) + (bcStrings (6 "0.0" a1008 F)) + (bcStrings (6 "-1.0" a1009 F)) + (bcStrings (6 "1.0" a1010 F)) + (bcStrings (6 "0.0" a1011 F)) + (bcStrings (6 "0.0" a1012 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a1101 F)) + (bcStrings (6 "0.0" a1102 F)) + (bcStrings (6 "0.0" a1103 F)) + (bcStrings (6 "0.0" a1104 F)) + (bcStrings (6 "0.0" a1105 F)) + (bcStrings (6 "0.0" a1106 F)) + (bcStrings (6 "0.0" a1107 F)) + (bcStrings (6 "-1.0" a1108 F)) + (bcStrings (6 "0.0" a1109 F)) + (bcStrings (6 "0.0" a1110 F)) + (bcStrings (6 "1.0" a1111 F)) + (bcStrings (6 "0.0" a1112 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "0.0" a1201 F)) + (bcStrings (6 "0.0" a1202 F)) + (bcStrings (6 "0.0" a1203 F)) + (bcStrings (6 "0.0" a1204 F)) + (bcStrings (6 "0.0" a1205 F)) + (bcStrings (6 "0.0" a1206 F)) + (bcStrings (6 "0.0" a1207 F)) + (bcStrings (6 "0.0" a1208 F)) + (bcStrings (6 "-1.0" a1209 F)) + (bcStrings (6 "0.0" a1210 F)) + (bcStrings (6 "0.0" a1211 F)) + (bcStrings (6 "1.0" a1212 F)) + (text . "\newline \tab{2} ") + (bcStrings (6 "1.0" a1301 F)) + (bcStrings (6 "1.0" a1302 F)) + (bcStrings (6 "1.0" a1303 F)) + (bcStrings (6 "0.0" a1304 F)) + (bcStrings (6 "0.0" a1305 F)) + (bcStrings (6 "1.0" a1306 F)) + (bcStrings (6 "1.0" a1307 F)) + (bcStrings (6 "0.0" a1308 F)) + (bcStrings (6 "0.0" a1309 F)) + (bcStrings (6 "1.0" a1310 F)) + (bcStrings (6 "1.0" a1311 F)) + (bcStrings (6 "1.0" a1312 F)) + (text . "\blankline ")) + htMakeDoneButton('"Continue",'f04qafGen) + htpSetProperty(page,'m,m) + htpSetProperty(page,'n,n) + htpSetProperty(page,'damp,damp) + htpSetProperty(page,'atol,atol) + htpSetProperty(page,'btol,btol) + htpSetProperty(page,'itnlim,itnlim) + htpSetProperty(page,'msglvl,msglvl) + htpSetProperty(page,'ifail,ifail) + htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) + htShowPage() + +f04qafGen htPage == + m := htpProperty(htPage,'m) + n := htpProperty(htPage,'n) + damp := htpProperty(htPage,'damp) + atol := htpProperty(htPage,'atol) + btol := htpProperty(htPage,'btol) + divisor := READ_-FROM_-STRING(atol) + if (divisor < 1.0e-7) then divisor:=1.0e-7 + conlim := 1.0/divisor + itnlim := htpProperty(htPage,'itnlim) + msglvl := htpProperty(htPage,'msglvl) + ifail := htpProperty(htPage,'ifail) + lrwork := 1 + liwork := 1 + alist := htpInputAreaAlist htPage + y := alist + for k in 1..m repeat + for l in 1..n repeat + aelm := STRCONC((first y).1," ") + arowlist := [aelm,:arowlist] + y := rest y + mata := [arowlist,:mata] + arowlist := [] + astring := bcwords2liststring [bcwords2liststring y for y in mata] + for z in 1..m repeat + belm := STRCONC((first y).1," ") + blist := [belm,:blist] + y := rest y + bstring := bcwords2liststring blist + prefix := STRCONC('"f04qaf(",STRINGIMAGE m,",",STRINGIMAGE n,",") + prefix := STRCONC(prefix,STRINGIMAGE damp,",") + prefix := STRCONC(prefix,STRINGIMAGE atol,",",STRINGIMAGE btol,",") + prefix := STRCONC(prefix,STRINGIMAGE conlim,",",STRINGIMAGE itnlim,",",STRINGIMAGE msglvl,",") + prefix := STRCONC(prefix,STRINGIMAGE lrwork,",",STRINGIMAGE liwork,",") + prefix := STRCONC(prefix,"[",bstring,"]::Matrix DoubleFloat,") + prefix := STRCONC(prefix,STRINGIMAGE ifail,",((",astring,"::Matrix MachineFloat)::ASP30(APROD)))") + linkGen prefix + + + + + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} |