diff --git a/changelog b/changelog index 26a3038..88d932a 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,7 @@ +20090831 tpd src/axiom-website/patches.html 20090831.01.tpd.patch +20090831 tpd src/interp/Makefile move nag-c06.boot to nag-c06.lisp +20090831 tpd src/interp/nag-c06.lisp added, rewritten from nag-c06.boot +20090831 tpd src/interp/nag-c06.boot removed, rewritten to nag-c06.lisp 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 diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index e891ce4..e51492c 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -1950,5 +1950,7 @@ src/interp/as.lisp rewrite from boot to lisp
src/interp/nag-c02.lisp rewrite from boot to lisp
20090830.06.tpd.patch src/interp/nag-c05.lisp rewrite from boot to lisp
+20090831.01.tpd.patch +src/interp/nag-c06.lisp rewrite from boot to lisp
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet index d7e8e8d..321783a 100644 --- a/src/interp/Makefile.pamphlet +++ b/src/interp/Makefile.pamphlet @@ -1410,41 +1410,32 @@ ${MID}/nag-c05.lisp: ${IN}/nag-c05.lisp.pamphlet @ -\subsection{nag-c06.boot \cite{45}} +\subsection{nag-c06.lisp} <>= ${AUTO}/nag-c06.${O}: ${OUT}/nag-c06.${O} - @ echo 158 making${AUTO}/nag-c06.${O} from ${OUT}/nag-c06.${O} + @ echo 154 making ${AUTO}/nag-c06.${O} from ${OUT}/nag-c06.${O} @ cp ${OUT}/nag-c06.${O} ${AUTO} @ <>= -${OUT}/nag-c06.${O}: ${MID}/nag-c06.clisp - @ echo 159 making ${OUT}/nag-c06.${O} from ${MID}/nag-c06.clisp - @ (cd ${MID} ; \ +${OUT}/nag-c06.${O}: ${MID}/nag-c06.lisp + @ echo 136 making ${OUT}/nag-c06.${O} from ${MID}/nag-c06.lisp + @ ( cd ${MID} ; \ if [ -z "${NOISE}" ] ; then \ - echo '(progn (compile-file "${MID}/nag-c06.clisp"' \ + echo '(progn (compile-file "${MID}/nag-c06.lisp"' \ ':output-file "${OUT}/nag-c06.${O}") (${BYE}))' | ${DEPSYS} ; \ else \ - echo '(progn (compile-file "${MID}/nag-c06.clisp"' \ + echo '(progn (compile-file "${MID}/nag-c06.lisp"' \ ':output-file "${OUT}/nag-c06.${O}") (${BYE}))' | ${DEPSYS} \ >${TMP}/trace ; \ fi ) @ -<>= -${MID}/nag-c06.clisp: ${IN}/nag-c06.boot.pamphlet - @ echo 160 making ${MID}/nag-c06.clisp from ${IN}/nag-c06.boot.pamphlet +<>= +${MID}/nag-c06.lisp: ${IN}/nag-c06.lisp.pamphlet + @ echo 137 making ${MID}/nag-c06.lisp from ${IN}/nag-c06.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/nag-c06.boot.pamphlet >nag-c06.boot ; \ - if [ -z "${NOISE}" ] ; then \ - echo '(progn (boot::reroot "${SPAD}")' \ - '(boottran::boottocl "nag-c06.boot") (${BYE}))' | ${DEPSYS} ; \ - else \ - echo '(progn (boot::reroot "${SPAD}")' \ - '(boottran::boottocl "nag-c06.boot") (${BYE}))' | ${DEPSYS} \ - >${TMP}/trace ; \ - fi ; \ - rm nag-c06.boot ) + ${TANGLE} ${IN}/nag-c06.lisp.pamphlet >nag-c06.lisp ) @ @@ -4708,7 +4699,7 @@ clean: <> <> -<> +<> <> <> diff --git a/src/interp/nag-c06.boot.pamphlet b/src/interp/nag-c06.boot.pamphlet deleted file mode 100644 index 6bf1b75..0000000 --- a/src/interp/nag-c06.boot.pamphlet +++ /dev/null @@ -1,1854 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp nag-c06.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. - -@ -<<*>>= -<> - -c06eaf() == - htInitPage('"C06EAF - Single 1-D real discrete Fourier transform ",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc06eaf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06eaf| '|NagSeriesSummationPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "Calculates the discrete Fourier transform of the sequence ") - (text . "of real data values \space{1} \inputbitmap{\htbmdir{}/xj.bitmap}, for ") - (text . "j = 0,1,...,n-1. ") - (text . "\newline ") - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of data values: ") - (text . "\newline\tab{2} ") - (bcStrings (5 7 n PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c06eafSolve) - htShowPage() - -c06eafSolve htPage == - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - n = '7 => c06eafDefaultSolve(htPage,ifail) - labelList := - "append"/[f(i) for i in 1..n] where f(i) == - prefix := ('"\newline \tab{15} ") - rnam := INTERN STRCONC ('"r",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[10, 0.0, rnam, 'F]]] - equationPart := [ - '(domainConditions - (isDomain F (Float))), - :labelList] - page := htInitPage("C06EAF - Single 1-D real discrete Fourier transform ", htpPropertyList htPage) - htSay '"\menuitemstyle{} \tab{2} " - htSay '"Enter the sequence to be transformed: " - htMakePage equationPart - htSay '"\blankline " - htSay '"Note : On exit, the transformed sequence is stored " - htSay '"in Hermitian form " - htSay '"\blankline " - htMakeDoneButton('"Continue",'c06eafGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06eafDefaultSolve (htPage, ifail) == - n := '7 - page := htInitPage('"C06EAF - Single 1-D real discrete Fourier transform ",nil) - htMakePage '( - (domainConditions - (isDomain F (Float))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Enter the sequence to be transformed: ") - (text . "\newline \tab{15} ") - (bcStrings (10 "0.34907" r1 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "0.54890" r2 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "0.74776" r3 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "0.94459" r4 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "1.13850" r5 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "1.32850" r6 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "1.51370" r7 F)) - (text . "\blankline ") - (text . "Note : On exit, the transformed sequence is stored ") - (text . "in Hermitian form ") - (text . "\blankline ")) - htMakeDoneButton('"Continue",'c06eafGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06eafGen htPage == - n := htpProperty(htPage,'n) - ifail := htpProperty(htPage,'ifail) - alist := htpInputAreaAlist htPage - y := alist - while y repeat - left := STRCONC((first y).1," ") - y := rest y - reallist := [left,:reallist] - realstring := bcwords2liststring reallist - linkGen STRCONC ('"c06eaf(",STRINGIMAGE n,",[",realstring,"],",STRINGIMAGE ifail,")") - -c06ebf() == - htInitPage('"C06EBF - Single 1-D Hermitian discrete Fourier transform ",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc06ebf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06ebf| '|NagSeriesSummationPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "Calculates the discrete Fourier transform of a Hermitian ") - (text . "sequence of complex data values. ") - (text . "\newline ") - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of data values: ") - (text . "\newline \tab{2}") - (bcStrings (5 7 n PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Ifail value: ") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c06ebfSolve) - htShowPage() - -c06ebfSolve htPage == - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - n = '7 => c06ebfDefaultSolve(htPage,ifail) - labelList := - "append"/[f(i) for i in 1..n] where f(i) == - prefix := ('"\newline \tab{15} ") - rnam := INTERN STRCONC ('"r",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[10, 0.0, rnam, 'F]]] - equationPart := [ - '(domainConditions - (isDomain F (Float))), - :labelList] - page := htInitPage("C06EBF - Single 1-D real discrete Fourier transform ", htpPropertyList htPage) - htSay '"\menuitemstyle{} \tab{2} " - htSay '"Enter the sequence to be transformed, stored in Hermitian form: " - htMakePage equationPart - htSay '"\blankline " - htSay '"Note : On exit, the components of the discrete Fourier transform " - htSay '"\blankline " - htMakeDoneButton('"Continue",'c06ebfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06ebfDefaultSolve (htPage, ifail) == - n := '7 - page := htInitPage('"C06EBF - Single 1-D Hermitian discrete Fourier transform ",nil) - htMakePage '( - (domainConditions - (isDomain F (Float))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Enter the sequence to be transformed, stored in Hermitian form: ") - (text . "\newline \tab{15} ") - (bcStrings (10 "0.34907" r1 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "0.54890" r2 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "0.74776" r3 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "0.94459" r4 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "1.13850" r5 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "1.32850" r6 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "1.51370" r7 F)) - (text . "\blankline ") - (text . "Note : On exit, the components of the discrete Fourier transform") - (text . "\blankline ")) - htMakeDoneButton('"Continue",'c06ebfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06ebfGen htPage == - n := htpProperty(htPage,'n) - ifail := htpProperty(htPage,'ifail) - alist := htpInputAreaAlist htPage - y := alist - while y repeat - left := STRCONC((first y).1," ") - y := rest y - reallist := [left,:reallist] - realstring := bcwords2liststring reallist - linkGen STRCONC ('"c06ebf(",STRINGIMAGE n,",[",realstring,"],",STRINGIMAGE ifail,")") - - -c06ecf() == - htInitPage('"C06ECF - Single 1-D complex discrete Fourier transform ",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc06ecf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06ecf| '|NagSeriesSummationPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "Calculates the discrete Fourier transform of a complex sequence.") - (text . "\newline ") - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of data values: ") - (text . "\newline\tab{2} ") - (bcStrings (5 7 n PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c06ecfSolve) - htShowPage() - - -c06ecfSolve htPage == - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - n = '7 => c06ecfDefaultSolve(htPage,ifail) - labelList := - "append"/[f(i) for i in 1..n] where f(i) == - prefix := ('"\newline \tab{2} ") - post := ('"\tab{32} ") - xnam := INTERN STRCONC ('"x",STRINGIMAGE i) - ynam := INTERN STRCONC ('"y",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[10, 0.0, xnam, 'F]], - ['text,:post],['bcStrings,[10, 0.0, ynam, 'F]]] - equationPart := [ - '(domainConditions - (isDomain P (Polynomial $EmptyMode)) - (isDomain S (String)) - (isDomain F (Float)) - (isDomain PI (PositiveInteger))), - :labelList] - page := htInitPage("C06ECF - Single 1-D complex discrete Fourier transform ",htpPropertyList htPage) - htSay '"\menuitemstyle{}\tab{2} Real parts of sequence: \tab{30} " - htSay '"\menuitemstyle{}\tab{32} Imaginary parts: " - htMakePage equationPart - htSay '"\blankline " - htMakeDoneButton('"Continue",'c06ecfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -c06ecfDefaultSolve (htPage, ifail) == - n := '7 - page := htInitPage('"C06ECF - Single 1-D complex discrete Fourier transform ",htpPropertyList htPage) - htMakePage '( - (domainConditions - (isDomain F (Float))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} Real parts of sequence: \tab{30} ") - (text . "\menuitemstyle{}\tab{32} Imaginary parts: ") - (text . "\newline \tab{2}") - (bcStrings (10 "0.34907" x1 F)) - (text . "\tab{32} ") - (bcStrings (10 "-0.37168" y1 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "0.54890" x2 F)) - (text . "\tab{32} ") - (bcStrings (10 "-0.35669" y2 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "0.74776" x3 F)) - (text . "\tab{32} ") - (bcStrings (10 "-0.31175" y3 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "0.94459" x4 F)) - (text . "\tab{32} ") - (bcStrings (10 "-0.23702" y4 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "1.13850" x5 F)) - (text . "\tab{32} ") - (bcStrings (10 "-0.13274" y5 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "1.32850" x6 F)) - (text . "\tab{32} ") - (bcStrings (10 "0.00074" y6 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "1.51370" x7 F)) - (text . "\tab{32} ") - (bcStrings (10 "0.16298" y7 F)) - (text . "\blankline")) - htMakeDoneButton('"Continue",'c06ecfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06ecfGen htPage == - n := htpProperty(htPage,'n) - ifail := htpProperty(htPage,'ifail) - alist := htpInputAreaAlist htPage - y := alist - while y repeat - right := STRCONC ((first y).1," ") - y := rest y - left := STRCONC ((first y).1," ") - y := rest y - reallist := [left,:reallist] - imaglist := [right,:imaglist] - realstring := bcwords2liststring reallist - imagstring := bcwords2liststring imaglist - linkGen STRCONC ('"c06ecf(",STRINGIMAGE n,",[",realstring,"],[",imagstring,"],", STRINGIMAGE ifail,")") - - -c06ekf() == - htInitPage('"C06EKF - Circular convolution or correlation of two real vectors",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc06ekf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06ekf| '|NagSeriesSummationPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "Calculates the circular convolution or correlation of two real ") - (text . "vectors of period {\em n} ") - (text . "\newline ") - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of data values: ") - (text . "\newline\tab{2} ") - (bcStrings (5 9 n PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Choose the computation to be performed:") - (radioButtons job - ("" " Convolution" conv) - ("" " Correlation" corr)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c06ekfSolve) - htShowPage() - - -c06ekfSolve htPage == - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - type := htpButtonValue(htPage,'job) - job := - type = 'conv => '1 - '2 - n = '9 => c06ekfDefaultSolve(htPage,job,ifail) - labelList := - "append"/[f(i) for i in 1..n] where f(i) == - prefix := ('"\newline \tab{2} ") - post := ('"\tab{34} ") - xnam := INTERN STRCONC ('"x",STRINGIMAGE i) - ynam := INTERN STRCONC ('"y",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[10, 0.0, xnam, 'F]], - ['text,:post],['bcStrings,[10, 0.0, ynam, 'F]]] - equationPart := [ - '(domainConditions - (isDomain P (Polynomial $EmptyMode)) - (isDomain S (String)) - (isDomain F (Float)) - (isDomain PI (PositiveInteger))), - :labelList] - page := htInitPage("C06EKF - Single 1-D complex discrete Fourier transform ",htpPropertyList htPage) - htSay '"\menuitemstyle{}\tab{2} Elements of period of vector {\em x}: " - htSay '"\tab{31} " - htSay '"\menuitemstyle{}\tab{34} Elements of period of vector {\em y}:" - htMakePage equationPart - htSay '"\blankline " - htMakeDoneButton('"Continue",'c06ekfGen) - htpSetProperty(page,'job,job) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -c06ekfDefaultSolve (htPage, job, ifail) == - n := '9 - page := htInitPage('"C06EKF - Circular convolution or correlation of two real vectors ",htpPropertyList htPage) - htMakePage '( - (domainConditions - (isDomain F (Float))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} Elements of period of vector {\em x}: \tab{32} ") - (text . "\menuitemstyle{}\tab{34} Elements of period of vector {\em y}: ") - (text . "\newline \tab{2}") - (bcStrings (10 "1.00" x1 F)) - (text . "\tab{34} ") - (bcStrings (10 "0.50" y1 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "1.00" x2 F)) - (text . "\tab{34} ") - (bcStrings (10 "0.50" y2 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "1.00" x3 F)) - (text . "\tab{34} ") - (bcStrings (10 "0.50" y3 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "1.00" x4 F)) - (text . "\tab{34} ") - (bcStrings (10 "0.50" y4 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "1.00" x5 F)) - (text . "\tab{34} ") - (bcStrings (10 "0.00" y5 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "0.00" x6 F)) - (text . "\tab{34} ") - (bcStrings (10 "0.00" y6 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "0.00" x7 F)) - (text . "\tab{34} ") - (bcStrings (10 "0.00" y7 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "0.00" x8 F)) - (text . "\tab{34} ") - (bcStrings (10 "0.00" y8 F)) - (text . "\newline \tab{2} ") - (bcStrings (10 "0.00" x9 F)) - (text . "\tab{34} ") - (bcStrings (10 "0.00" y9 F)) - (text . "\blankline")) - htMakeDoneButton('"Continue",'c06ekfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'job,job) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06ekfGen htPage == - n := htpProperty(htPage,'n) - ifail := htpProperty(htPage,'ifail) - job := htpProperty(htPage,'job) - alist := htpInputAreaAlist htPage - y := alist - while y repeat - right := STRCONC ((first y).1," ") - y := rest y - left := STRCONC ((first y).1," ") - y := rest y - reallist := [left,:reallist] - imaglist := [right,:imaglist] - realstring := bcwords2liststring reallist - imagstring := bcwords2liststring imaglist - linkGen STRCONC ('"c06ekf(",STRINGIMAGE job,",",STRINGIMAGE n,",[",realstring,"],[",imagstring,"],", STRINGIMAGE ifail,")") - -c06fpf() == - htInitPage('"C06FPF - Multiple 1-D real discrete Fourier transform ",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc06fpf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06fpf| '|NagSeriesSummationPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "Computes the discrete Fourier transforms of {\it m} real ") - (text . "sequences, each containing {\it n} data values.") - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of sequences to be transformed {\it m}: ") - (text . "\newline \tab{2} ") - (bcStrings (5 3 m PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of data values {\it n}: ") - (text . "\newline\tab{2} ") - (bcStrings (5 6 n PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Type of call:") - (radioButtons init - ("" " Initial" i) - ("" " Subsequent" s) - ("" " Restart" r)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c06fpfSolve) - htShowPage() - -c06fpfSolve htPage == - m := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) - objValUnwrap htpLabelSpadValue(htPage, 'm) - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - call := htpButtonValue(htPage,'init) - init := - call = 'i => '"i" - call = 's => '"s" - '"r" - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - (n = '6 and m = '3) => c06fpfDefaultSolve(htPage,init,ifail) - matList := - "append"/[f(i,m) for i in 1..n] where f(i,n) == - labelList := - "append"/[g(i,j) for j in 1..n] where g(i,j) == - xnam := INTERN STRCONC ('"r",STRINGIMAGE i, STRINGIMAGE j) - [['bcStrings,[6, 0.0, xnam, 'F]]] - prefix := ('"\newline \tab{2} ") - labelList := [['text,:prefix],:labelList] - trigList := - "append"/[h(k) for k in 1..(2*n)] where h(k) == - prefix := ('"\newline \tab{2} ") - trignam := INTERN STRCONC ('"t",STRINGIMAGE k) - [['text,:prefix],['bcStrings,[6, "0.0", trignam, 'F]]] - prefix := ('"\blankline \menuitemstyle{} \tab{2} Trigonometric coefficients ") - prefix := STRCONC(prefix,"(not required if initial call) {\it TRIG}: ") - prefix := STRCONC(prefix,"\newline \tab{2} ") - trigList := [['text,:prefix],:trigList] - equationPart := [ - '(domainConditions - (isDomain F (Float))), - :matList,:trigList] - page := htInitPage("C06FPF - Multiple 1-D real discrete Fourier transform ", htpPropertyList htPage) - htSay '"\menuitemstyle{} \tab{2} " - htSay '"Enter each sequence to be transformed, {\it x}. " - htSay '"(Each column to contain a sequence.) " - htMakePage equationPart - htMakeDoneButton('"Continue",'c06fpfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'m,m) - htpSetProperty(page,'init,init) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06fpfDefaultSolve (htPage, init,ifail) == - n := '6 - m := '3 - page := htInitPage('"C06FPF - Multiple 1-D real discrete Fourier transform ",nil) - htMakePage '( - (domainConditions - (isDomain F (Float))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Enter each sequence to be transformed, {\it x}. ") - (text . "(Each column to contain a sequence.) ") - (text . "\newline \tab{2} ") - (bcStrings (6 "0.3854" x11 F)) - (bcStrings (6 "0.5417" x21 F)) - (bcStrings (6 "0.9172" x31 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6772" x12 F)) - (bcStrings (6 "0.2983" x22 F)) - (bcStrings (6 "0.0644" x32 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.1138" x13 F)) - (bcStrings (6 "0.1181" x23 F)) - (bcStrings (6 "0.6037" x33 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6751" x14 F)) - (bcStrings (6 "0.7255" x24 F)) - (bcStrings (6 "0.6430" x34 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6362" x15 F)) - (bcStrings (6 "0.8638" x25 F)) - (bcStrings (6 "0.0428" x35 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.1424" x16 F)) - (bcStrings (6 "0.8723" x26 F)) - (bcStrings (6 "0.4815" x36 F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Trignometric coefficients (not required if initial call) ") - (text . "{\it TRIG}: \newline \tab{2} ") - (bcStrings (6 "0.0" t1 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t2 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t3 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t4 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t5 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t6 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t7 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t8 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t9 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t10 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t11 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t12 F)) - (text . "\blankline ")) - htMakeDoneButton('"Continue",'c06fpfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'m,m) - htpSetProperty(page,'init,init) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06fpfGen htPage == - n := htpProperty(htPage,'n) - m := htpProperty(htPage,'m) - init := htpProperty(htPage,'init) - ifail := htpProperty(htPage,'ifail) - alist := htpInputAreaAlist htPage - y := alist - for i in 1..(2*n) repeat - left := STRCONC((first y).1," ") - y := rest y - triglist := [left,:triglist] - trigstring := bcwords2liststring triglist - while y repeat - left := STRCONC((first y).1," ") - y := rest y - xlist := [left,:xlist] - xstring := bcwords2liststring xlist - prefix := STRCONC ('"c06fpf(",STRINGIMAGE m,", ",STRINGIMAGE n,", _"") - prefix := STRCONC(prefix,init,"_",[",xstring,"],[",trigstring,"],") - linkGen STRCONC(prefix,STRINGIMAGE ifail,")") - - -c06fqf() == - htInitPage('"C06FQF - Multiple 1-D Hermitian discrete Fourier transform ",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc06fqf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06fqf| '|NagSeriesSummationPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "Computes the discrete Fourier transforms of {\it m} real ") - (text . "sequences, each containing {\it n} data values.") - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of sequences to be transformed {\it m}: ") - (text . "\newline \tab{2} ") - (bcStrings (5 3 m PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of data values {\it n}: ") - (text . "\newline\tab{2} ") - (bcStrings (5 6 n PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Type of call:") - (radioButtons init - ("" " Initial" i) - ("" " Subsequent" s) - ("" " Restart" r)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c06fqfSolve) - htShowPage() - -c06fqfSolve htPage == - m := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) - objValUnwrap htpLabelSpadValue(htPage, 'm) - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - call := htpButtonValue(htPage,'init) - init := - call = 'i => '"i" - call = 's => '"s" - '"r" - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - (n = '6 and m = '3) => c06fqfDefaultSolve(htPage,init,ifail) - matList := - "append"/[f(i,m) for i in 1..n] where f(i,n) == - labelList := - "append"/[g(i,j) for j in 1..n] where g(i,j) == - xnam := INTERN STRCONC ('"r",STRINGIMAGE i, STRINGIMAGE j) - [['bcStrings,[6, 0.0, xnam, 'F]]] - prefix := ('"\newline \tab{2} ") - labelList := [['text,:prefix],:labelList] - trigList := - "append"/[h(k) for k in 1..(2*n)] where h(k) == - prefix := ("\newline \tab{2} ") - trignam := INTERN STRCONC ('"t",STRINGIMAGE k) - [['text,:prefix],['bcStrings,[6, "0.0", trignam, 'F]]] - prefix := ('"\blankline \menuitemstyle{} \tab{2} Trignometric coefficients ") - prefix := STRCONC(prefix,"(not required if initial call) {\it TRIG}: ") - prefix := STRCONC(prefix,"\newline \tab{2} ") - trigList := [['text,:prefix],:trigList] - equationPart := [ - '(domainConditions - (isDomain F (Float))), - :matList,:trigList] - page := htInitPage("C06FQF - Multiple 1-D Hermitian discrete Fourier transform ", htpPropertyList htPage) - htSay '"\menuitemstyle{} \tab{2} " - htSay '"Enter each sequence to be transformed, {\it x}. " - htSay '"(Each column to contain a sequence.) " - htMakePage equationPart - htMakeDoneButton('"Continue",'c06fqfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'m,m) - htpSetProperty(page,'init,init) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06fqfDefaultSolve (htPage, init,ifail) == - n := '6 - m := '3 - page := htInitPage('"C06FQF - Multiple 1-D Hermitian discrete Fourier transform ",nil) - htMakePage '( - (domainConditions - (isDomain F (Float))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Enter each sequence to be transformed, {\it x}. ") - (text . "(Each column to contain a sequence.) ") - (text . "\newline \tab{2} ") - (bcStrings (6 "0.3854" x11 F)) - (bcStrings (6 "0.5417" x21 F)) - (bcStrings (6 "0.9172" x31 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6772" x12 F)) - (bcStrings (6 "0.2983" x22 F)) - (bcStrings (6 "0.0644" x32 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.1138" x13 F)) - (bcStrings (6 "0.1181" x23 F)) - (bcStrings (6 "0.6037" x33 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6751" x14 F)) - (bcStrings (6 "0.7255" x24 F)) - (bcStrings (6 "0.6430" x34 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6362" x15 F)) - (bcStrings (6 "0.8638" x25 F)) - (bcStrings (6 "0.0428" x35 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.1424" x16 F)) - (bcStrings (6 "0.8723" x26 F)) - (bcStrings (6 "0.4815" x36 F)) - (text . "\blankline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Trignometric coefficients (not required if initial call) ") - (text . "{\it TRIG}: \newline \tab{2} ") - (bcStrings (6 "0.0" t1 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t2 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t3 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t4 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t5 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t6 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t7 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t8 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t9 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t10 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t11 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t12 F)) - (text . "\blankline ")) - htMakeDoneButton('"Continue",'c06fqfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'m,m) - htpSetProperty(page,'init,init) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06fqfGen htPage == - n := htpProperty(htPage,'n) - m := htpProperty(htPage,'m) - init := htpProperty(htPage,'init) - ifail := htpProperty(htPage,'ifail) - alist := htpInputAreaAlist htPage - y := alist - for i in 1..(2*n) repeat - left := STRCONC((first y).1," ") - y := rest y - triglist := [left,:triglist] - trigstring := bcwords2liststring triglist - while y repeat - left := STRCONC((first y).1," ") - y := rest y - xlist := [left,:xlist] - xstring := bcwords2liststring xlist - prefix := STRCONC ('"c06fqf(",STRINGIMAGE m,", ",STRINGIMAGE n,", _"") - prefix := STRCONC(prefix,init,"_",[",xstring,"],[",trigstring,"],") - linkGen STRCONC(prefix,STRINGIMAGE ifail,")") - - -c06frf() == - htInitPage('"C06FRF - Multiple 1-D complex discrete Fourier transform ",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc06frf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06frf| '|NagSeriesSummationPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "Computes the discrete Fourier transforms of {\it m} complex ") - (text . "sequences, each containing {\it n} data values.") - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of sequences to be transformed {\it m}: ") - (text . "\newline \tab{2} ") - (bcStrings (5 3 m PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of data values {\it n}: ") - (text . "\newline\tab{2} ") - (bcStrings (5 6 n PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Type of call:") - (radioButtons init - ("" " Initial" i) - ("" " Subsequent" s) - ("" " Restart" r)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c06frfSolve) - htShowPage() - -c06frfSolve htPage == - m := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) - objValUnwrap htpLabelSpadValue(htPage, 'm) - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - call := htpButtonValue(htPage,'init) - init := - call = 'i => '"i" - call = 's => '"s" - '"r" - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - (n = '6 and m = '3) => c06frfDefaultSolve(htPage,init,ifail) - xList := - "append"/[fx(i,m) for i in 1..n] where fx(i,n) == - labelList := - "append"/[gx(i,j) for j in 1..n] where gx(i,j) == - xnam := INTERN STRCONC ('"x",STRINGIMAGE i, STRINGIMAGE j) - [['bcStrings,[6, 0.0, xnam, 'F]]] - prefix := ('"\newline \tab{2} ") - labelList := [['text,:prefix],:labelList] - yList := - "append"/[fy(i,m) for i in 1..n] where fy(i,n) == - labelList := - "append"/[gy(i,j) for j in 1..n] where gy(i,j) == - ynam := INTERN STRCONC ('"y",STRINGIMAGE i, STRINGIMAGE j) - [['bcStrings,[6, 0.0, ynam, 'F]]] - prefix := ('"\newline \tab{2} ") - labelList := [['text,:prefix],:labelList] - prefix := ('"\blankline \menuitemstyle{} \tab{2} Enter the imaginary parts ") - prefix := STRCONC(prefix,"of each sequence to be transformed, {\it y}. ") - prefix := STRCONC(prefix,"(Each column to contain the imaginary parts ") - prefix := STRCONC(prefix,"of a sequence.) \newline \tab{2} ") - yList := [['text,:prefix],:yList] - trigList := - "append"/[h(k) for k in 1..(2*n)] where h(k) == - prefix := ("\newline \tab{2} ") - trignam := INTERN STRCONC ('"t",STRINGIMAGE k) - [['text,:prefix],['bcStrings,[6, "0.0", trignam, 'F]]] - prefix := ('"\blankline \menuitemstyle{} \tab{2} Trignometric coefficients ") - prefix := STRCONC(prefix,"(not required if initial call) {\it TRIG}: ") - prefix := STRCONC(prefix,"\newline \tab{2} ") - trigList := [['text,:prefix],:trigList] - equationPart := [ - '(domainConditions - (isDomain F (Float))), - :xList,:yList,:trigList] - page := htInitPage("C06FRF - Multiple 1-D real discrete Fourier transform ", htpPropertyList htPage) - htSay '"\menuitemstyle{} \tab{2} " - htSay '"Enter the real parts of each sequence to be transformed, {\it x}. " - htSay '"(Each column to contain the real parts of a sequence.) " - htMakePage equationPart - htMakeDoneButton('"Continue",'c06frfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'m,m) - htpSetProperty(page,'init,init) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06frfDefaultSolve (htPage, init,ifail) == - n := '6 - m := '3 - page := htInitPage('"C06FRF - Multiple 1-D real discrete Fourier transform ",nil) - htMakePage '( - (domainConditions - (isDomain F (Float))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Enter the real parts of each sequence to be transformed, ") - (text . "{\it x}. (Each column to contain the real parts of a sequence.) ") - (text . "\newline \tab{2} ") - (bcStrings (6 "0.3854" x11 F)) - (bcStrings (6 "0.9172" x21 F)) - (bcStrings (6 "0.1156" x31 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6772" x12 F)) - (bcStrings (6 "0.0644" x22 F)) - (bcStrings (6 "0.0685" x32 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.1138" x13 F)) - (bcStrings (6 "0.6037" x23 F)) - (bcStrings (6 "0.2060" x33 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6751" x14 F)) - (bcStrings (6 "0.6430" x24 F)) - (bcStrings (6 "0.8630" x34 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6362" x15 F)) - (bcStrings (6 "0.0428" x25 F)) - (bcStrings (6 "0.6967" x35 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.1424" x16 F)) - (bcStrings (6 "0.4815" x26 F)) - (bcStrings (6 "0.2792" x36 F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} Enter the imaginary parts of each ") - (text . "sequence to be transformed, {\it y}. ") - (text . "(Each column to contain the imaginary parts of a sequence.) ") - (text . "\newline \tab{2} ") - (bcStrings (6 "0.5417" y11 F)) - (bcStrings (6 "0.9089" y21 F)) - (bcStrings (6 "0.6214" y31 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.2983" y12 F)) - (bcStrings (6 "0.3118" y22 F)) - (bcStrings (6 "0.8681" y32 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.1181" y13 F)) - (bcStrings (6 "0.3465" y23 F)) - (bcStrings (6 "0.7060" y33 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.7255" y14 F)) - (bcStrings (6 "0.6198" y24 F)) - (bcStrings (6 "0.8652" y34 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.8638" y15 F)) - (bcStrings (6 "0.2668" y25 F)) - (bcStrings (6 "0.9190" y35 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.8723" y16 F)) - (bcStrings (6 "0.1614" y26 F)) - (bcStrings (6 "0.3355" y36 F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Trignometric coefficients (not required if initial call) ") - (text . "{\it TRIG}: \newline \tab{2} ") - (bcStrings (6 "0.0" t1 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t2 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t3 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t4 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t5 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t6 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t7 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t8 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t9 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t10 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t11 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" t12 F)) - (text . "\blankline ")) - htMakeDoneButton('"Continue",'c06frfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'m,m) - htpSetProperty(page,'init,init) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06frfGen htPage == - n := htpProperty(htPage,'n) - m := htpProperty(htPage,'m) - init := htpProperty(htPage,'init) - ifail := htpProperty(htPage,'ifail) - alist := htpInputAreaAlist htPage - y := alist - for i in 1..(2*n) repeat - left := STRCONC((first y).1," ") - y := rest y - triglist := [left,:triglist] - trigstring := bcwords2liststring triglist - for i in 1..(m*n) repeat - left := STRCONC((first y).1," ") - y := rest y - ylist := [left,:ylist] - ystring := bcwords2liststring ylist - while y repeat - left := STRCONC((first y).1," ") - y := rest y - xlist := [left,:xlist] - xstring := bcwords2liststring xlist - prefix := STRCONC ('"c06frf(",STRINGIMAGE m,", ",STRINGIMAGE n,", _"") - prefix := STRCONC(prefix,init,"_",[",xstring,"],[",ystring,"],[") - linkGen STRCONC(prefix,trigstring,"],",STRINGIMAGE ifail,")") - - -c06fuf() == - htInitPage('"C06FUF - 2-D complex discrete Fourier transform ",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc06fuf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06fuf| '|NagSeriesSummationPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "Computes the two-dimensional discrete Fourier transform of ") - (text . "a bivaraite sequence of complex data values; likely to be ") - (text . "efficient on vector processors. ") - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of {\it m} of rows of X and Y; ") - (text . "\htbitmap{great=} 1 \newline \tab{2} ") - (bcStrings (5 3 m PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of {\it n} of columns of X and Y; ") - (text . "\htbitmap{great=} 1 \newline \tab{2} ") - (bcStrings (5 5 n PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Type of call:") - (radioButtons init - ("" " Initial" i) - ("" " Subsequent" s) - ("" " Restart" r)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c06fufSolve) - htShowPage() - -c06fufSolve htPage == - m := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) - objValUnwrap htpLabelSpadValue(htPage, 'm) - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - call := htpButtonValue(htPage,'init) - init := - call = 'i => '"i" - call = 's => '"s" - '"r" - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - (n = '5 and m = '3) => c06fufDefaultSolve(htPage,init,ifail) - xList := - "append"/[fx(i,m) for i in 1..n] where fx(i,n) == - labelList := - "append"/[gx(i,j) for j in 1..n] where gx(i,j) == - xnam := INTERN STRCONC ('"x",STRINGIMAGE i, STRINGIMAGE j) - [['bcStrings,[6, 0.0, xnam, 'F]]] - prefix := ('"\newline \tab{2} ") - labelList := [['text,:prefix],:labelList] - yList := - "append"/[fy(i,m) for i in 1..n] where fy(i,n) == - labelList := - "append"/[gy(i,j) for j in 1..n] where gy(i,j) == - ynam := INTERN STRCONC ('"y",STRINGIMAGE i, STRINGIMAGE j) - [['bcStrings,[6, 0.0, ynam, 'F]]] - prefix := ('"\newline \tab{2} ") - labelList := [['text,:prefix],:labelList] - prefix := ('"\blankline \menuitemstyle{} \tab{2} Enter the imaginary parts ") - prefix := STRCONC(prefix,"of each sequence to be transformed, {\it y}. ") - prefix := STRCONC(prefix,"(Each column to contain the imaginary parts ") - prefix := STRCONC(prefix,"of a sequence.) \newline \tab{2} ") - yList := [['text,:prefix],:yList] - trigmList := - "append"/[hm(k) for k in 1..(2*m)] where hm(k) == - prefix := ("\newline \tab{2} ") - trignam := INTERN STRCONC ('"tm",STRINGIMAGE k) - [['text,:prefix],['bcStrings,[6, "0.0", trignam, 'F]]] - prefix := ('"\blankline \menuitemstyle{} \tab{2} Trignometric coefficients ") - prefix := STRCONC(prefix,"(not required if initial call) {\it TRIGM}: ") - prefix := STRCONC(prefix,"\newline \tab{2} ") - trigmList := [['text,:prefix],:trigmList] - trignList := - "append"/[hn(k) for k in 1..(2*n)] where hn(k) == - prefix := ("\newline \tab{2} ") - trignam := INTERN STRCONC ('"tn",STRINGIMAGE k) - [['text,:prefix],['bcStrings,[6, "0.0", trignam, 'F]]] - prefix := ('"\blankline \menuitemstyle{} \tab{2} {\it TRIGN}: ") - prefix := STRCONC(prefix,"\newline \tab{2} ") - trignList := [['text,:prefix],:trignList] - equationPart := [ - '(domainConditions - (isDomain F (Float))), - :xList,:yList,:trigmList,:trignList] - page := htInitPage("C06FUF - 2-D complex discrete Fourier transform ", htpPropertyList htPage) - htSay '"\menuitemstyle{} \tab{2} " - htSay '"Enter the real part of each sequence to be transformed, {\it x}. " - htSay '"(Each column to contain the real parts of a sequence.) " - htMakePage equationPart - htMakeDoneButton('"Continue",'c06fufGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'m,m) - htpSetProperty(page,'init,init) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06fufDefaultSolve (htPage, init,ifail) == - n := '5 - m := '3 - page := htInitPage('"C06FUF - 2-D real discrete Fourier transform ",nil) - htMakePage '( - (domainConditions - (isDomain F (Float))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Enter the real parts of each sequence to be transformed, ") - (text . "{\it x}. (Each column to contain the real parts of a sequence.) ") - (text . "\newline \tab{2} ") - (bcStrings (6 "1.000" x11 F)) - (bcStrings (6 "0.994" x21 F)) - (bcStrings (6 "0.903" x31 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.999" x12 F)) - (bcStrings (6 "0.989" x22 F)) - (bcStrings (6 "0.885" x32 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.987" x13 F)) - (bcStrings (6 "0.963" x23 F)) - (bcStrings (6 "0.823" x33 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.936" x14 F)) - (bcStrings (6 "0.891" x24 F)) - (bcStrings (6 "0.694" x34 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.802" x15 F)) - (bcStrings (6 "0.731" x25 F)) - (bcStrings (6 "0.467" x35 F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} Enter the imaginary parts of each ") - (text . "sequence to be transformed, {\it y}. (Each column to contain ") - (text . "the imaginary parts of a sequence.) ") - (text . "\newline \tab{2} ") - (bcStrings (6 "0.000" y11 F)) - (bcStrings (6 "-0.111" y21 F)) - (bcStrings (6 "-0.430" y31 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "-0.040" y12 F)) - (bcStrings (6 "-0.151" y22 F)) - (bcStrings (6 "-0.466" y32 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "-0.159" y13 F)) - (bcStrings (6 "-0.268" y23 F)) - (bcStrings (6 "-0.568" y33 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "-0.352" y14 F)) - (bcStrings (6 "-0.454" y24 F)) - (bcStrings (6 "-0.720" y34 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "-0.597" y15 F)) - (bcStrings (6 "-0.682" y25 F)) - (bcStrings (6 "-0.884" y35 F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Trignometric coefficients (not required if initial call) ") - (text . "{\it TRIGM}: \newline \tab{2} ") - (bcStrings (6 "0.0" tm1 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tm2 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tm3 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tm4 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tm5 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tm6 F)) - (text . "\blankline ") - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "{\it TRIGN}: \newline \tab{2} ") - (bcStrings (6 "0.0" tn1 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tn2 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tn3 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tn4 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tn5 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tn6 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tn7 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tn8 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tn9 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.0" tn10 F)) - (text . "\blankline ")) - htMakeDoneButton('"Continue",'c06fufGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'m,m) - htpSetProperty(page,'init,init) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06fufGen htPage == - n := htpProperty(htPage,'n) - m := htpProperty(htPage,'m) - init := htpProperty(htPage,'init) - ifail := htpProperty(htPage,'ifail) - alist := htpInputAreaAlist htPage - y := alist - for i in 1..(2*n) repeat - left := STRCONC((first y).1," ") - y := rest y - trignlist := [left,:trignlist] - trignstring := bcwords2liststring trignlist - for i in 1..(2*m) repeat - left := STRCONC((first y).1," ") - y := rest y - trigmlist := [left,:trigmlist] - trigmstring := bcwords2liststring trigmlist - for i in 1..(m*n) repeat - left := STRCONC((first y).1," ") - y := rest y - ylist := [left,:ylist] - ystring := bcwords2liststring ylist - while y repeat - left := STRCONC((first y).1," ") - y := rest y - xlist := [left,:xlist] - xstring := bcwords2liststring xlist - prefix := STRCONC ('"c06fuf(",STRINGIMAGE m,", ",STRINGIMAGE n,", _"") - prefix := STRCONC(prefix,init,"_",[",xstring,"],[",ystring,"],[",trigmstring) - linkGen STRCONC(prefix,"],[",trignstring,"],",STRINGIMAGE ifail,")") - - - -c06gbf() == - htInitPage('"C06GBF - Complex conjugate of a Hermitian sequence ",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc06gbf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06gbf| '|NagSeriesSummationPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "Forms the complex conjugate of a Hermitian sequence of {\it n} data values") - (text . "\newline ") - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of data values {\it n} ") - (text . "\space{1} \inputbitmap{\htbmdir{}/great=.bitmap} 1 ") - (text . "\newline\tab{2} ") - (bcStrings (5 7 n PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c06gbfSolve) - htShowPage() - -c06gbfSolve htPage == - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - n = '7 => c06gbfDefaultSolve(htPage,ifail) - labelList := - "append"/[f(i) for i in 1..n] where f(i) == - prefix := ('"\newline \tab{15} ") - rnam := INTERN STRCONC ('"r",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[10, 0.0, rnam, 'F]]] - equationPart := [ - '(domainConditions - (isDomain F (Float))), - :labelList] - page := htInitPage("C06GBF - Complex conjugate of a Hermitian sequence ", htpPropertyList htPage) - htSay '"\menuitemstyle{} \tab{2} " - htSay '"Enter the Hermitian sequence to be transformed stored in Hermitian form: " - htMakePage equationPart - htSay '"\blankline " - htSay '"Note : On exit, the imaginary values are negated " - htSay '"\blankline " - htMakeDoneButton('"Continue",'c06gbfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06gbfDefaultSolve (htPage, ifail) == - n := '7 - page := htInitPage('"C06GBF - Complex conjugate of a Hermitian sequence ", nil) - htMakePage '( - (domainConditions - (isDomain F (Float))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Enter the Hermitian sequence to be transformed ") - (text . "stored in Hermitian form: ") - (text . "\newline \tab{15} ") - (bcStrings (10 "0.34907" r1 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "0.54890" r2 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "0.74776" r3 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "0.94459" r4 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "1.13850" r5 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "1.32850" r6 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "1.51370" r7 F)) - (text . "\blankline ") - (text . "Note : On exit, the imaginary values are negated ") - (text . "\blankline ")) - htMakeDoneButton('"Continue",'c06gbfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06gbfGen htPage == - n := htpProperty(htPage,'n) - ifail := htpProperty(htPage,'ifail) - alist := htpInputAreaAlist htPage - y := alist - while y repeat - left := STRCONC((first y).1," ") - y := rest y - reallist := [left,:reallist] - realstring := bcwords2liststring reallist - linkGen STRCONC ('"c06gbf(",STRINGIMAGE n,",[",realstring,"],",STRINGIMAGE ifail,")") - - -c06gcf() == - htInitPage('"C06GCF - Complex conjugate of complex sequence ",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc06gcf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06gcf| '|NagSeriesSummationPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "\newline ") - (text . "Forms the complex conjugate of a sequence of {\it n} data values") - (text . "\newline ") - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number of data values {\it n} ") - (text . "\space{1} \inputbitmap{\htbmdir{}/great=.bitmap} 1 ") - (text . "\newline\tab{2} ") - (bcStrings (5 7 n PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c06gcfSolve) - htShowPage() - -c06gcfSolve htPage == - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - n = '7 => c06gcfDefaultSolve(htPage,ifail) - labelList := - "append"/[f(i) for i in 1..n] where f(i) == - prefix := ('"\newline \tab{15} ") - rnam := INTERN STRCONC ('"r",STRINGIMAGE i) - [['text,:prefix],['bcStrings,[10, 0.0, rnam, 'F]]] - equationPart := [ - '(domainConditions - (isDomain F (Float))), - :labelList] - page := htInitPage("C06GCF - Complex conjugate of a Hermitian sequence ", htpPropertyList htPage) - htSay '"\menuitemstyle{} \tab{2} " - htSay '"Enter the imaginary parts of the sequence: " - htMakePage equationPart - htSay '"\blankline " - htSay '"Note : On exit, these values are negated " - htSay '"\blankline " - htMakeDoneButton('"Continue",'c06gcfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06gcfDefaultSolve (htPage, ifail) == - n := '7 - page := htInitPage('"C06GCF - Complex conjugate of complex sequence ", nil) - htMakePage '( - (domainConditions - (isDomain F (Float))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} ") - (text . "Enter the imaginary parts of the sequence: ") - (text . "\newline \tab{15} ") - (bcStrings (10 "-0.37168" r1 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "-0.35669" r2 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "-0.31175" r3 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "-0.23702" r4 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "0.00074" r5 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "0.16298" r6 F)) - (text . "\newline \tab{15} ") - (bcStrings (10 "1.51370" r7 F)) - (text . "\blankline ") - (text . "Note : On exit, these values are negated ") - (text . "\blankline ")) - htMakeDoneButton('"Continue",'c06gcfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06gcfGen htPage == - n := htpProperty(htPage,'n) - ifail := htpProperty(htPage,'ifail) - alist := htpInputAreaAlist htPage - y := alist - while y repeat - left := STRCONC((first y).1," ") - y := rest y - reallist := [left,:reallist] - realstring := bcwords2liststring reallist - linkGen STRCONC ('"c06gcf(",STRINGIMAGE n,",[",realstring,"],",STRINGIMAGE ifail,")") - -c06gqf() == - htInitPage('"C06GQF - Complex conjugate of multiple Hermitian sequences ",nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc06gqf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06gqf| '|NagSeriesSummationPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "Forms the complex conjugates of {\it m} Hermitian sequences, ") - (text . "each containing {\it n} data values. ") - (text . "\newline ") - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number {\it m} \inputbitmap{\htbmdir{}/great=.bitmap} 1 ") - (text . "of sequences to be tranformed: ") - (text . "\newline\tab{2} ") - (bcStrings (5 3 m PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number {\it n} \inputbitmap{\htbmdir{}/great=.bitmap} 1 ") - (text . "of data values in each sequence: ") - (text . "\newline\tab{2} ") - (bcStrings (5 6 n PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c06gqfSolve) - htShowPage() - - -c06gqfSolve htPage == - m := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) - objValUnwrap htpLabelSpadValue(htPage, 'm) - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - (m = '3 and n = '6) => c06gqfDefaultSolve(htPage,ifail) - newList:= - "append"/[g(i,m) for i in 1..n] where g(i,n) == - labelList := - "append"/[f(i,j) for j in 1..n] where f(i,j) == - rnam := INTERN STRCONC ('"r",STRINGIMAGE i,STRINGIMAGE j) - [['bcStrings,[6, 0.0, rnam, 'P]]] - prefix := ('"\newline \tab{2} ") - labelList := [['text,:prefix],:labelList] - equationPart := [ - '(domainConditions - (isDomain P (Polynomial $EmptyMode)) - (isDomain S (String)) - (isDomain F (Float)) - (isDomain PI (PositiveInteger))), - :newList] - page := htInitPage("C06GQF - Complex conjugate of multiple Hermitian sequences ",htpPropertyList htPage) - htSay '"\newline " - htSay '"\menuitemstyle{}\tab{2} Please enter each sequence to be " - htSay '"transformed in Hermitian format. (Each column to contain " - htSay '"a sequence.) " - htMakePage equationPart - htSay '"\blankline " - htMakeDoneButton('"Continue",'c06gqfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'m,m) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -c06gqfDefaultSolve (htPage, ifail) == - m := '3 - n := '6 - page := htInitPage('"C06GQF - Complex conjugate of multiple Hermitian sequences ",htpPropertyList htPage) - htMakePage '( - (domainConditions - (isDomain F (Float))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} Please enter each sequence to be ") - (text . "transformed in Hermitian format. ") - (text . "(Each column to contain a sequence.) ") - (text . "\newline \tab{2} ") - (bcStrings (6 "0.3854" x11 F)) - (bcStrings (6 "0.5417" x21 F)) - (bcStrings (6 "0.9172" x31 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6772" x12 F)) - (bcStrings (6 "0.2983" x22 F)) - (bcStrings (6 "0.0644" x32 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.1138" x13 F)) - (bcStrings (6 "0.1181" x23 F)) - (bcStrings (6 "0.6037" x33 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6751" x14 F)) - (bcStrings (6 "0.7255" x24 F)) - (bcStrings (6 "0.6430" x34 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6362" x15 F)) - (bcStrings (6 "0.8638" x25 F)) - (bcStrings (6 "0.0428" x35 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.1424" x16 F)) - (bcStrings (6 "0.8723" y26 F)) - (bcStrings (6 "0.4815" y36 F)) - (text . "\blankline")) - htMakeDoneButton('"Continue",'c06gqfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'m,m) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06gqfGen htPage == - n := htpProperty(htPage,'n) - m := htpProperty(htPage,'m) - ifail := htpProperty(htPage,'ifail) - alist := htpInputAreaAlist htPage - y := alist - while y repeat - right := STRCONC ((first y).1," ") - y := rest y - reallist := [right,:reallist] - realstring := bcwords2liststring reallist - linkGen STRCONC ('"c06gqf(",STRINGIMAGE m,",",STRINGIMAGE n,",[",realstring,"],", STRINGIMAGE ifail,")") - - - -c06gsf() == - htInitPage('"C06GSF - Convert Hermitian sequences to general complex sequences", nil) - htMakePage '( - (domainConditions - (isDomain PI (PositiveInteger))) - (text . "\windowlink{Manual Page}{manpageXXc06gsf} for this routine ") - (text . "\newline ") - (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06gsf| '|NagSeriesSummationPackage|)} for this routine") - (text . "\newline \horizontalline ") - (text . "Takes {\it m} Hermitian sequences, each containing {\it n} data values, ") - (text . "and forms the real and imaginary parts of the {\it m} ") - (text . "corresponding complex sequences. \newline ") - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number {\it m} \inputbitmap{\htbmdir{}/great=.bitmap} 1 ") - (text . "of sequences to be transformed: ") - (text . "\newline\tab{2} ") - (bcStrings (5 3 m PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Enter the number {\it n} \inputbitmap{\htbmdir{}/great=.bitmap} 1 ") - (text . "of data values in each sequence: ") - (text . "\newline\tab{2} ") - (bcStrings (5 6 n PI)) - (text . "\blankline ") - (text . "\menuitemstyle{} \tab{2} ") - (text . "Ifail value:") - (radioButtons ifail - ("" " -1, Print error messages" minusOne) - ("" " 1, Suppress error messages" one))) - htMakeDoneButton('"Continue", 'c06gsfSolve) - htShowPage() - - -c06gsfSolve htPage == - m := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) - objValUnwrap htpLabelSpadValue(htPage, 'm) - n := - $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) - objValUnwrap htpLabelSpadValue(htPage, 'n) - error := htpButtonValue(htPage,'ifail) - ifail := - error = 'one => '1 - '-1 - (m = '3 and n = '6) => c06gsfDefaultSolve(htPage,ifail) - newList:= - "append"/[g(i,m) for i in 1..n] where g(i,n) == - labelList := - "append"/[f(i,j) for j in 1..n] where f(i,j) == - rnam := INTERN STRCONC ('"r",STRINGIMAGE i,STRINGIMAGE j) - [['bcStrings,[6, 0.0, rnam, 'P]]] - prefix := ('"\newline \tab{2} ") - labelList := [['text,:prefix],:labelList] - equationPart := [ - '(domainConditions - (isDomain P (Polynomial $EmptyMode)) - (isDomain S (String)) - (isDomain F (Float)) - (isDomain PI (PositiveInteger))), - :newList] - page := htInitPage("C06GSF - Convert Hermitian sequences to general complex sequences ",htpPropertyList htPage) - htSay '"\newline " - htSay '"\menuitemstyle{}\tab{2} Please enter each sequence to be " - htSay '"transformed in Hermitian format. (Each column to contain a " - htSay '"sequence.) " - htMakePage equationPart - htSay '"\blankline " - htMakeDoneButton('"Continue",'c06gsfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'m,m) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - -c06gsfDefaultSolve (htPage, ifail) == - m := '3 - n := '6 - page := htInitPage('"C06GSF - Convert Hermitian sequences to general complex sequences ",htpPropertyList htPage) - htMakePage '( - (domainConditions - (isDomain F (Float))) - (text . "\newline ") - (text . "\menuitemstyle{}\tab{2} Please enter each sequence to be ") - (text . "transformed in Hermitian format. (Each column to contain a ") - (text . "sequence.) ") - (text . "\newline \tab{2} ") - (bcStrings (6 "0.3854" x11 F)) - (bcStrings (6 "0.5417" x21 F)) - (bcStrings (6 "0.9172" x31 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6772" x12 F)) - (bcStrings (6 "0.2983" x22 F)) - (bcStrings (6 "0.0644" x32 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.1138" x13 F)) - (bcStrings (6 "0.1181" x23 F)) - (bcStrings (6 "0.6037" x33 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6751" x14 F)) - (bcStrings (6 "0.7255" x24 F)) - (bcStrings (6 "0.6430" x34 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.6362" x15 F)) - (bcStrings (6 "0.8638" x25 F)) - (bcStrings (6 "0.0428" x35 F)) - (text . "\newline \tab{2} ") - (bcStrings (6 "0.1424" x16 F)) - (bcStrings (6 "0.8723" y26 F)) - (bcStrings (6 "0.4815" y36 F)) - (text . "\blankline")) - htMakeDoneButton('"Continue",'c06gsfGen) - htpSetProperty(page,'n,n) - htpSetProperty(page,'m,m) - htpSetProperty(page,'ifail,ifail) - htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) - htShowPage() - - -c06gsfGen htPage == - n := htpProperty(htPage,'n) - m := htpProperty(htPage,'m) - ifail := htpProperty(htPage,'ifail) - alist := htpInputAreaAlist htPage - y := alist - while y repeat - right := STRCONC ((first y).1," ") - y := rest y - reallist := [right,:reallist] - realstring := bcwords2liststring reallist - linkGen STRCONC ('"c06gsf(",STRINGIMAGE m,",",STRINGIMAGE n,",[",realstring,"],", STRINGIMAGE ifail,")") - - -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/nag-c06.lisp.pamphlet b/src/interp/nag-c06.lisp.pamphlet new file mode 100644 index 0000000..51b6a86 --- /dev/null +++ b/src/interp/nag-c06.lisp.pamphlet @@ -0,0 +1,4654 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/interp nag-c06.lisp} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= +(IN-PACKAGE "BOOT" ) + +;c06eaf() == +; htInitPage('"C06EAF - Single 1-D real discrete Fourier transform ",nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc06eaf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06eaf| '|NagSeriesSummationPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "Calculates the discrete Fourier transform of the sequence ") +; (text . "of real data values \space{1} \inputbitmap{\htbmdir{}/xj.bitmap}, for ") +; (text . "j = 0,1,...,n-1. ") +; (text . "\newline ") +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of data values: ") +; (text . "\newline\tab{2} ") +; (bcStrings (5 7 n PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c06eafSolve) +; htShowPage() + +(DEFUN |c06eaf| () + (PROGN + (|htInitPage| + (MAKESTRING + "C06EAF - Single 1-D real discrete Fourier transform ") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc06eaf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06eaf| '|NagSeriesSummationPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| + . "Calculates the discrete Fourier transform of the sequence ") + (|text| + . "of real data values \\space{1} \\inputbitmap{\\htbmdir{}/xj.bitmap}, for ") + (|text| . "j = 0,1,...,n-1. ") (|text| . "\\newline ") + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Enter the number of data values: ") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 7 |n| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06eafSolve|) + (|htShowPage|))) + +;c06eafSolve htPage == +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; n = '7 => c06eafDefaultSolve(htPage,ifail) +; labelList := +; "append"/[f(i) for i in 1..n] where f(i) == +; prefix := ('"\newline \tab{15} ") +; rnam := INTERN STRCONC ('"r",STRINGIMAGE i) +; [['text,:prefix],['bcStrings,[10, 0.0, rnam, 'F]]] +; equationPart := [ +; '(domainConditions +; (isDomain F (Float))), +; :labelList] +; page := htInitPage("C06EAF - Single 1-D real discrete Fourier transform ", htpPropertyList htPage) +; htSay '"\menuitemstyle{} \tab{2} " +; htSay '"Enter the sequence to be transformed: " +; htMakePage equationPart +; htSay '"\blankline " +; htSay '"Note : On exit, the transformed sequence is stored " +; htSay '"in Hermitian form " +; htSay '"\blankline " +; htMakeDoneButton('"Continue",'c06eafGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06eafSolve,f| (|i|) + (PROG (|prefix| |rnam|) + (RETURN + (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{15} ")) + (SPADLET |rnam| + (INTERN (STRCONC (MAKESTRING "r") + (STRINGIMAGE |i|)))) + (EXIT (CONS (CONS '|text| |prefix|) + (CONS (CONS '|bcStrings| + (CONS + (CONS 10 + (CONS 0.0 + (CONS |rnam| (CONS 'F NIL)))) + NIL)) + NIL))))))) + +(DEFUN |c06eafSolve| (|htPage|) + (PROG (|n| |error| |ifail| |labelList| |equationPart| |page|) + (declare (special |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (COND + ((BOOT-EQUAL |n| '7) + (|c06eafDefaultSolve| |htPage| |ifail|)) + ('T + (SPADLET |labelList| + (PROG (G166071) + (SPADLET G166071 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G166071) + (SEQ (EXIT + (SETQ G166071 + (APPEND G166071 + (|c06eafSolve,f| |i|))))))))) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| F (|Float|))) + |labelList|)) + (SPADLET |page| + (|htInitPage| + '|C06EAF - Single 1-D real discrete Fourier transform | + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING "\\menuitemstyle{} \\tab{2} ")) + (|htSay| (MAKESTRING + "Enter the sequence to be transformed: ")) + (|htMakePage| |equationPart|) + (|htSay| (MAKESTRING "\\blankline ")) + (|htSay| (MAKESTRING + "Note : On exit, the transformed sequence is stored ")) + (|htSay| (MAKESTRING "in Hermitian form ")) + (|htSay| (MAKESTRING "\\blankline ")) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c06eafGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c06eafDefaultSolve (htPage, ifail) == +; n := '7 +; page := htInitPage('"C06EAF - Single 1-D real discrete Fourier transform ",nil) +; htMakePage '( +; (domainConditions +; (isDomain F (Float))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "Enter the sequence to be transformed: ") +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.34907" r1 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.54890" r2 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.74776" r3 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.94459" r4 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "1.13850" r5 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "1.32850" r6 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "1.51370" r7 F)) +; (text . "\blankline ") +; (text . "Note : On exit, the transformed sequence is stored ") +; (text . "in Hermitian form ") +; (text . "\blankline ")) +; htMakeDoneButton('"Continue",'c06eafGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06eafDefaultSolve| (|htPage| |ifail|) + (PROG (|n| |page|) + (RETURN + (PROGN + (SPADLET |n| '7) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C06EAF - Single 1-D real discrete Fourier transform ") + NIL)) + (|htMakePage| + '((|domainConditions| (|isDomain| F (|Float|))) + (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| . "Enter the sequence to be transformed: ") + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.34907" |r1| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.54890" |r2| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.74776" |r3| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.94459" |r4| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "1.13850" |r5| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "1.32850" |r6| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "1.51370" |r7| F)) + (|text| . "\\blankline ") + (|text| + . "Note : On exit, the transformed sequence is stored ") + (|text| . "in Hermitian form ") + (|text| . "\\blankline "))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06eafGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c06eafGen htPage == +; n := htpProperty(htPage,'n) +; ifail := htpProperty(htPage,'ifail) +; alist := htpInputAreaAlist htPage +; y := alist +; while y repeat +; left := STRCONC((first y).1," ") +; y := rest y +; reallist := [left,:reallist] +; realstring := bcwords2liststring reallist +; linkGen STRCONC ('"c06eaf(",STRINGIMAGE n,",[",realstring,"],",STRINGIMAGE ifail,")") + +(DEFUN |c06eafGen| (|htPage|) + (PROG (|n| |ifail| |alist| |left| |y| |reallist| |realstring|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |reallist| + (CONS |left| |reallist|)))))) + (SPADLET |realstring| (|bcwords2liststring| |reallist|)) + (|linkGen| + (STRCONC (MAKESTRING "c06eaf(") (STRINGIMAGE |n|) + '|,[| |realstring| '|],| + (STRINGIMAGE |ifail|) '|)|))))))) + +;c06ebf() == +; htInitPage('"C06EBF - Single 1-D Hermitian discrete Fourier transform ",nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc06ebf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06ebf| '|NagSeriesSummationPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "Calculates the discrete Fourier transform of a Hermitian ") +; (text . "sequence of complex data values. ") +; (text . "\newline ") +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of data values: ") +; (text . "\newline \tab{2}") +; (bcStrings (5 7 n PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Ifail value: ") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c06ebfSolve) +; htShowPage() + +(DEFUN |c06ebf| () + (PROGN + (|htInitPage| + (MAKESTRING + "C06EBF - Single 1-D Hermitian discrete Fourier transform ") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc06ebf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06ebf| '|NagSeriesSummationPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| + . "Calculates the discrete Fourier transform of a Hermitian ") + (|text| . "sequence of complex data values. ") + (|text| . "\\newline ") (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Enter the number of data values: ") + (|text| . "\\newline \\tab{2}") (|bcStrings| (5 7 |n| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Ifail value: ") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06ebfSolve|) + (|htShowPage|))) + +;c06ebfSolve htPage == +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; n = '7 => c06ebfDefaultSolve(htPage,ifail) +; labelList := +; "append"/[f(i) for i in 1..n] where f(i) == +; prefix := ('"\newline \tab{15} ") +; rnam := INTERN STRCONC ('"r",STRINGIMAGE i) +; [['text,:prefix],['bcStrings,[10, 0.0, rnam, 'F]]] +; equationPart := [ +; '(domainConditions +; (isDomain F (Float))), +; :labelList] +; page := htInitPage("C06EBF - Single 1-D real discrete Fourier transform ", htpPropertyList htPage) +; htSay '"\menuitemstyle{} \tab{2} " +; htSay '"Enter the sequence to be transformed, stored in Hermitian form: " +; htMakePage equationPart +; htSay '"\blankline " +; htSay '"Note : On exit, the components of the discrete Fourier transform " +; htSay '"\blankline " +; htMakeDoneButton('"Continue",'c06ebfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06ebfSolve,f| (|i|) + (PROG (|prefix| |rnam|) + (RETURN + (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{15} ")) + (SPADLET |rnam| + (INTERN (STRCONC (MAKESTRING "r") + (STRINGIMAGE |i|)))) + (EXIT (CONS (CONS '|text| |prefix|) + (CONS (CONS '|bcStrings| + (CONS + (CONS 10 + (CONS 0.0 + (CONS |rnam| (CONS 'F NIL)))) + NIL)) + NIL))))))) + +(DEFUN |c06ebfSolve| (|htPage|) + (PROG (|n| |error| |ifail| |labelList| |equationPart| |page|) + (declare (special |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (COND + ((BOOT-EQUAL |n| '7) + (|c06ebfDefaultSolve| |htPage| |ifail|)) + ('T + (SPADLET |labelList| + (PROG (G166131) + (SPADLET G166131 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G166131) + (SEQ (EXIT + (SETQ G166131 + (APPEND G166131 + (|c06ebfSolve,f| |i|))))))))) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| F (|Float|))) + |labelList|)) + (SPADLET |page| + (|htInitPage| + '|C06EBF - Single 1-D real discrete Fourier transform | + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING "\\menuitemstyle{} \\tab{2} ")) + (|htSay| (MAKESTRING + "Enter the sequence to be transformed, stored in Hermitian form: ")) + (|htMakePage| |equationPart|) + (|htSay| (MAKESTRING "\\blankline ")) + (|htSay| (MAKESTRING + "Note : On exit, the components of the discrete Fourier transform ")) + (|htSay| (MAKESTRING "\\blankline ")) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c06ebfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c06ebfDefaultSolve (htPage, ifail) == +; n := '7 +; page := htInitPage('"C06EBF - Single 1-D Hermitian discrete Fourier transform ",nil) +; htMakePage '( +; (domainConditions +; (isDomain F (Float))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "Enter the sequence to be transformed, stored in Hermitian form: ") +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.34907" r1 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.54890" r2 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.74776" r3 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.94459" r4 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "1.13850" r5 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "1.32850" r6 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "1.51370" r7 F)) +; (text . "\blankline ") +; (text . "Note : On exit, the components of the discrete Fourier transform") +; (text . "\blankline ")) +; htMakeDoneButton('"Continue",'c06ebfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06ebfDefaultSolve| (|htPage| |ifail|) + (PROG (|n| |page|) + (RETURN + (PROGN + (SPADLET |n| '7) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C06EBF - Single 1-D Hermitian discrete Fourier transform ") + NIL)) + (|htMakePage| + '((|domainConditions| (|isDomain| F (|Float|))) + (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| + . "Enter the sequence to be transformed, stored in Hermitian form: ") + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.34907" |r1| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.54890" |r2| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.74776" |r3| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.94459" |r4| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "1.13850" |r5| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "1.32850" |r6| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "1.51370" |r7| F)) + (|text| . "\\blankline ") + (|text| + . "Note : On exit, the components of the discrete Fourier transform") + (|text| . "\\blankline "))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06ebfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c06ebfGen htPage == +; n := htpProperty(htPage,'n) +; ifail := htpProperty(htPage,'ifail) +; alist := htpInputAreaAlist htPage +; y := alist +; while y repeat +; left := STRCONC((first y).1," ") +; y := rest y +; reallist := [left,:reallist] +; realstring := bcwords2liststring reallist +; linkGen STRCONC ('"c06ebf(",STRINGIMAGE n,",[",realstring,"],",STRINGIMAGE ifail,")") + +(DEFUN |c06ebfGen| (|htPage|) + (PROG (|n| |ifail| |alist| |left| |y| |reallist| |realstring|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |reallist| + (CONS |left| |reallist|)))))) + (SPADLET |realstring| (|bcwords2liststring| |reallist|)) + (|linkGen| + (STRCONC (MAKESTRING "c06ebf(") (STRINGIMAGE |n|) + '|,[| |realstring| '|],| + (STRINGIMAGE |ifail|) '|)|))))))) + +;c06ecf() == +; htInitPage('"C06ECF - Single 1-D complex discrete Fourier transform ",nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc06ecf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06ecf| '|NagSeriesSummationPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "Calculates the discrete Fourier transform of a complex sequence.") +; (text . "\newline ") +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of data values: ") +; (text . "\newline\tab{2} ") +; (bcStrings (5 7 n PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c06ecfSolve) +; htShowPage() + +(DEFUN |c06ecf| () + (PROGN + (|htInitPage| + (MAKESTRING + "C06ECF - Single 1-D complex discrete Fourier transform ") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc06ecf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06ecf| '|NagSeriesSummationPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| + . "Calculates the discrete Fourier transform of a complex sequence.") + (|text| . "\\newline ") (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Enter the number of data values: ") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 7 |n| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06ecfSolve|) + (|htShowPage|))) + +;c06ecfSolve htPage == +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; n = '7 => c06ecfDefaultSolve(htPage,ifail) +; labelList := +; "append"/[f(i) for i in 1..n] where f(i) == +; prefix := ('"\newline \tab{2} ") +; post := ('"\tab{32} ") +; xnam := INTERN STRCONC ('"x",STRINGIMAGE i) +; ynam := INTERN STRCONC ('"y",STRINGIMAGE i) +; [['text,:prefix],['bcStrings,[10, 0.0, xnam, 'F]], +; ['text,:post],['bcStrings,[10, 0.0, ynam, 'F]]] +; equationPart := [ +; '(domainConditions +; (isDomain P (Polynomial $EmptyMode)) +; (isDomain S (String)) +; (isDomain F (Float)) +; (isDomain PI (PositiveInteger))), +; :labelList] +; page := htInitPage("C06ECF - Single 1-D complex discrete Fourier transform ",htpPropertyList htPage) +; htSay '"\menuitemstyle{}\tab{2} Real parts of sequence: \tab{30} " +; htSay '"\menuitemstyle{}\tab{32} Imaginary parts: " +; htMakePage equationPart +; htSay '"\blankline " +; htMakeDoneButton('"Continue",'c06ecfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06ecfSolve,f| (|i|) + (PROG (|prefix| |post| |xnam| |ynam|) + (RETURN + (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} ")) + (SPADLET |post| (MAKESTRING "\\tab{32} ")) + (SPADLET |xnam| + (INTERN (STRCONC (MAKESTRING "x") + (STRINGIMAGE |i|)))) + (SPADLET |ynam| + (INTERN (STRCONC (MAKESTRING "y") + (STRINGIMAGE |i|)))) + (EXIT (CONS (CONS '|text| |prefix|) + (CONS (CONS '|bcStrings| + (CONS + (CONS 10 + (CONS 0.0 + (CONS |xnam| (CONS 'F NIL)))) + NIL)) + (CONS (CONS '|text| |post|) + (CONS + (CONS '|bcStrings| + (CONS + (CONS 10 + (CONS 0.0 + (CONS |ynam| (CONS 'F NIL)))) + NIL)) + NIL))))))))) + +(DEFUN |c06ecfSolve| (|htPage|) + (PROG (|n| |error| |ifail| |labelList| |equationPart| |page|) + (declare (special |$EmptyMode| |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (COND + ((BOOT-EQUAL |n| '7) + (|c06ecfDefaultSolve| |htPage| |ifail|)) + ('T + (SPADLET |labelList| + (PROG (G166193) + (SPADLET G166193 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G166193) + (SEQ (EXIT + (SETQ G166193 + (APPEND G166193 + (|c06ecfSolve,f| |i|))))))))) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| P + (|Polynomial| |$EmptyMode|)) + (|isDomain| S (|String|)) + (|isDomain| F (|Float|)) + (|isDomain| PI (|PositiveInteger|))) + |labelList|)) + (SPADLET |page| + (|htInitPage| + '|C06ECF - Single 1-D complex discrete Fourier transform | + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING + "\\menuitemstyle{}\\tab{2} Real parts of sequence: \\tab{30} ")) + (|htSay| (MAKESTRING + "\\menuitemstyle{}\\tab{32} Imaginary parts: ")) + (|htMakePage| |equationPart|) + (|htSay| (MAKESTRING "\\blankline ")) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c06ecfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c06ecfDefaultSolve (htPage, ifail) == +; n := '7 +; page := htInitPage('"C06ECF - Single 1-D complex discrete Fourier transform ",htpPropertyList htPage) +; htMakePage '( +; (domainConditions +; (isDomain F (Float))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} Real parts of sequence: \tab{30} ") +; (text . "\menuitemstyle{}\tab{32} Imaginary parts: ") +; (text . "\newline \tab{2}") +; (bcStrings (10 "0.34907" x1 F)) +; (text . "\tab{32} ") +; (bcStrings (10 "-0.37168" y1 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "0.54890" x2 F)) +; (text . "\tab{32} ") +; (bcStrings (10 "-0.35669" y2 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "0.74776" x3 F)) +; (text . "\tab{32} ") +; (bcStrings (10 "-0.31175" y3 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "0.94459" x4 F)) +; (text . "\tab{32} ") +; (bcStrings (10 "-0.23702" y4 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "1.13850" x5 F)) +; (text . "\tab{32} ") +; (bcStrings (10 "-0.13274" y5 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "1.32850" x6 F)) +; (text . "\tab{32} ") +; (bcStrings (10 "0.00074" y6 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "1.51370" x7 F)) +; (text . "\tab{32} ") +; (bcStrings (10 "0.16298" y7 F)) +; (text . "\blankline")) +; htMakeDoneButton('"Continue",'c06ecfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06ecfDefaultSolve| (|htPage| |ifail|) + (PROG (|n| |page|) + (RETURN + (PROGN + (SPADLET |n| '7) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C06ECF - Single 1-D complex discrete Fourier transform ") + (|htpPropertyList| |htPage|))) + (|htMakePage| + '((|domainConditions| (|isDomain| F (|Float|))) + (|text| . "\\newline ") + (|text| + . "\\menuitemstyle{}\\tab{2} Real parts of sequence: \\tab{30} ") + (|text| . "\\menuitemstyle{}\\tab{32} Imaginary parts: ") + (|text| . "\\newline \\tab{2}") + (|bcStrings| (10 "0.34907" |x1| F)) + (|text| . "\\tab{32} ") + (|bcStrings| (10 "-0.37168" |y1| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "0.54890" |x2| F)) + (|text| . "\\tab{32} ") + (|bcStrings| (10 "-0.35669" |y2| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "0.74776" |x3| F)) + (|text| . "\\tab{32} ") + (|bcStrings| (10 "-0.31175" |y3| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "0.94459" |x4| F)) + (|text| . "\\tab{32} ") + (|bcStrings| (10 "-0.23702" |y4| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "1.13850" |x5| F)) + (|text| . "\\tab{32} ") + (|bcStrings| (10 "-0.13274" |y5| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "1.32850" |x6| F)) + (|text| . "\\tab{32} ") + (|bcStrings| (10 "0.00074" |y6| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "1.51370" |x7| F)) + (|text| . "\\tab{32} ") + (|bcStrings| (10 "0.16298" |y7| F)) + (|text| . "\\blankline"))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06ecfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c06ecfGen htPage == +; n := htpProperty(htPage,'n) +; ifail := htpProperty(htPage,'ifail) +; alist := htpInputAreaAlist htPage +; y := alist +; while y repeat +; right := STRCONC ((first y).1," ") +; y := rest y +; left := STRCONC ((first y).1," ") +; y := rest y +; reallist := [left,:reallist] +; imaglist := [right,:imaglist] +; realstring := bcwords2liststring reallist +; imagstring := bcwords2liststring imaglist +; linkGen STRCONC ('"c06ecf(",STRINGIMAGE n,",[",realstring,"],[",imagstring,"],", STRINGIMAGE ifail,")") + +(DEFUN |c06ecfGen| (|htPage|) + (PROG (|n| |ifail| |alist| |right| |left| |y| |reallist| |imaglist| + |realstring| |imagstring|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (SPADLET |right| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |reallist| + (CONS |left| |reallist|)) + (SPADLET |imaglist| + (CONS |right| |imaglist|)))))) + (SPADLET |realstring| (|bcwords2liststring| |reallist|)) + (SPADLET |imagstring| (|bcwords2liststring| |imaglist|)) + (|linkGen| + (STRCONC (MAKESTRING "c06ecf(") (STRINGIMAGE |n|) + '|,[| |realstring| '|],[| |imagstring| '|],| + (STRINGIMAGE |ifail|) '|)|))))))) + +;c06ekf() == +; htInitPage('"C06EKF - Circular convolution or correlation of two real vectors",nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc06ekf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06ekf| '|NagSeriesSummationPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "Calculates the circular convolution or correlation of two real ") +; (text . "vectors of period {\em n} ") +; (text . "\newline ") +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of data values: ") +; (text . "\newline\tab{2} ") +; (bcStrings (5 9 n PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Choose the computation to be performed:") +; (radioButtons job +; ("" " Convolution" conv) +; ("" " Correlation" corr)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c06ekfSolve) +; htShowPage() + +(DEFUN |c06ekf| () + (PROGN + (|htInitPage| + (MAKESTRING + "C06EKF - Circular convolution or correlation of two real vectors") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc06ekf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06ekf| '|NagSeriesSummationPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| + . "Calculates the circular convolution or correlation of two real ") + (|text| . "vectors of period {\\em n} ") + (|text| . "\\newline ") (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Enter the number of data values: ") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 9 |n| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Choose the computation to be performed:") + (|radioButtons| |job| ("" " Convolution" |conv|) + ("" " Correlation" |corr|)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06ekfSolve|) + (|htShowPage|))) + +;c06ekfSolve htPage == +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; type := htpButtonValue(htPage,'job) +; job := +; type = 'conv => '1 +; '2 +; n = '9 => c06ekfDefaultSolve(htPage,job,ifail) +; labelList := +; "append"/[f(i) for i in 1..n] where f(i) == +; prefix := ('"\newline \tab{2} ") +; post := ('"\tab{34} ") +; xnam := INTERN STRCONC ('"x",STRINGIMAGE i) +; ynam := INTERN STRCONC ('"y",STRINGIMAGE i) +; [['text,:prefix],['bcStrings,[10, 0.0, xnam, 'F]], +; ['text,:post],['bcStrings,[10, 0.0, ynam, 'F]]] +; equationPart := [ +; '(domainConditions +; (isDomain P (Polynomial $EmptyMode)) +; (isDomain S (String)) +; (isDomain F (Float)) +; (isDomain PI (PositiveInteger))), +; :labelList] +; page := htInitPage("C06EKF - Single 1-D complex discrete Fourier transform ",htpPropertyList htPage) +; htSay '"\menuitemstyle{}\tab{2} Elements of period of vector {\em x}: " +; htSay '"\tab{31} " +; htSay '"\menuitemstyle{}\tab{34} Elements of period of vector {\em y}:" +; htMakePage equationPart +; htSay '"\blankline " +; htMakeDoneButton('"Continue",'c06ekfGen) +; htpSetProperty(page,'job,job) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06ekfSolve,f| (|i|) + (PROG (|prefix| |post| |xnam| |ynam|) + (RETURN + (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} ")) + (SPADLET |post| (MAKESTRING "\\tab{34} ")) + (SPADLET |xnam| + (INTERN (STRCONC (MAKESTRING "x") + (STRINGIMAGE |i|)))) + (SPADLET |ynam| + (INTERN (STRCONC (MAKESTRING "y") + (STRINGIMAGE |i|)))) + (EXIT (CONS (CONS '|text| |prefix|) + (CONS (CONS '|bcStrings| + (CONS + (CONS 10 + (CONS 0.0 + (CONS |xnam| (CONS 'F NIL)))) + NIL)) + (CONS (CONS '|text| |post|) + (CONS + (CONS '|bcStrings| + (CONS + (CONS 10 + (CONS 0.0 + (CONS |ynam| (CONS 'F NIL)))) + NIL)) + NIL))))))))) + +(DEFUN |c06ekfSolve| (|htPage|) + (PROG (|n| |error| |ifail| |type| |job| |labelList| |equationPart| + |page|) + (declare (special |$EmptyMode| |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (SPADLET |type| (|htpButtonValue| |htPage| '|job|)) + (SPADLET |job| + (COND ((BOOT-EQUAL |type| '|conv|) '1) ('T '2))) + (COND + ((BOOT-EQUAL |n| '9) + (|c06ekfDefaultSolve| |htPage| |job| |ifail|)) + ('T + (SPADLET |labelList| + (PROG (G166263) + (SPADLET G166263 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G166263) + (SEQ (EXIT + (SETQ G166263 + (APPEND G166263 + (|c06ekfSolve,f| |i|))))))))) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| P + (|Polynomial| |$EmptyMode|)) + (|isDomain| S (|String|)) + (|isDomain| F (|Float|)) + (|isDomain| PI (|PositiveInteger|))) + |labelList|)) + (SPADLET |page| + (|htInitPage| + '|C06EKF - Single 1-D complex discrete Fourier transform | + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING + "\\menuitemstyle{}\\tab{2} Elements of period of vector {\\em x}: ")) + (|htSay| (MAKESTRING "\\tab{31} ")) + (|htSay| (MAKESTRING + "\\menuitemstyle{}\\tab{34} Elements of period of vector {\\em y}:")) + (|htMakePage| |equationPart|) + (|htSay| (MAKESTRING "\\blankline ")) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c06ekfGen|) + (|htpSetProperty| |page| '|job| |job|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c06ekfDefaultSolve (htPage, job, ifail) == +; n := '9 +; page := htInitPage('"C06EKF - Circular convolution or correlation of two real vectors ",htpPropertyList htPage) +; htMakePage '( +; (domainConditions +; (isDomain F (Float))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} Elements of period of vector {\em x}: \tab{32} ") +; (text . "\menuitemstyle{}\tab{34} Elements of period of vector {\em y}: ") +; (text . "\newline \tab{2}") +; (bcStrings (10 "1.00" x1 F)) +; (text . "\tab{34} ") +; (bcStrings (10 "0.50" y1 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "1.00" x2 F)) +; (text . "\tab{34} ") +; (bcStrings (10 "0.50" y2 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "1.00" x3 F)) +; (text . "\tab{34} ") +; (bcStrings (10 "0.50" y3 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "1.00" x4 F)) +; (text . "\tab{34} ") +; (bcStrings (10 "0.50" y4 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "1.00" x5 F)) +; (text . "\tab{34} ") +; (bcStrings (10 "0.00" y5 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "0.00" x6 F)) +; (text . "\tab{34} ") +; (bcStrings (10 "0.00" y6 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "0.00" x7 F)) +; (text . "\tab{34} ") +; (bcStrings (10 "0.00" y7 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "0.00" x8 F)) +; (text . "\tab{34} ") +; (bcStrings (10 "0.00" y8 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (10 "0.00" x9 F)) +; (text . "\tab{34} ") +; (bcStrings (10 "0.00" y9 F)) +; (text . "\blankline")) +; htMakeDoneButton('"Continue",'c06ekfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'job,job) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06ekfDefaultSolve| (|htPage| |job| |ifail|) + (PROG (|n| |page|) + (RETURN + (PROGN + (SPADLET |n| '9) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C06EKF - Circular convolution or correlation of two real vectors ") + (|htpPropertyList| |htPage|))) + (|htMakePage| + '((|domainConditions| (|isDomain| F (|Float|))) + (|text| . "\\newline ") + (|text| + . "\\menuitemstyle{}\\tab{2} Elements of period of vector {\\em x}: \\tab{32} ") + (|text| + . "\\menuitemstyle{}\\tab{34} Elements of period of vector {\\em y}: ") + (|text| . "\\newline \\tab{2}") + (|bcStrings| (10 "1.00" |x1| F)) (|text| . "\\tab{34} ") + (|bcStrings| (10 "0.50" |y1| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "1.00" |x2| F)) (|text| . "\\tab{34} ") + (|bcStrings| (10 "0.50" |y2| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "1.00" |x3| F)) (|text| . "\\tab{34} ") + (|bcStrings| (10 "0.50" |y3| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "1.00" |x4| F)) (|text| . "\\tab{34} ") + (|bcStrings| (10 "0.50" |y4| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "1.00" |x5| F)) (|text| . "\\tab{34} ") + (|bcStrings| (10 "0.00" |y5| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "0.00" |x6| F)) (|text| . "\\tab{34} ") + (|bcStrings| (10 "0.00" |y6| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "0.00" |x7| F)) (|text| . "\\tab{34} ") + (|bcStrings| (10 "0.00" |y7| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "0.00" |x8| F)) (|text| . "\\tab{34} ") + (|bcStrings| (10 "0.00" |y8| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (10 "0.00" |x9| F)) (|text| . "\\tab{34} ") + (|bcStrings| (10 "0.00" |y9| F)) + (|text| . "\\blankline"))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06ekfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|job| |job|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c06ekfGen htPage == +; n := htpProperty(htPage,'n) +; ifail := htpProperty(htPage,'ifail) +; job := htpProperty(htPage,'job) +; alist := htpInputAreaAlist htPage +; y := alist +; while y repeat +; right := STRCONC ((first y).1," ") +; y := rest y +; left := STRCONC ((first y).1," ") +; y := rest y +; reallist := [left,:reallist] +; imaglist := [right,:imaglist] +; realstring := bcwords2liststring reallist +; imagstring := bcwords2liststring imaglist +; linkGen STRCONC ('"c06ekf(",STRINGIMAGE job,",",STRINGIMAGE n,",[",realstring,"],[",imagstring,"],", STRINGIMAGE ifail,")") + +(DEFUN |c06ekfGen| (|htPage|) + (PROG (|n| |ifail| |job| |alist| |right| |left| |y| |reallist| + |imaglist| |realstring| |imagstring|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |job| (|htpProperty| |htPage| '|job|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (SPADLET |right| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |reallist| + (CONS |left| |reallist|)) + (SPADLET |imaglist| + (CONS |right| |imaglist|)))))) + (SPADLET |realstring| (|bcwords2liststring| |reallist|)) + (SPADLET |imagstring| (|bcwords2liststring| |imaglist|)) + (|linkGen| + (STRCONC (MAKESTRING "c06ekf(") (STRINGIMAGE |job|) + '|,| (STRINGIMAGE |n|) '|,[| |realstring| + '|],[| |imagstring| '|],| + (STRINGIMAGE |ifail|) '|)|))))))) + +;c06fpf() == +; htInitPage('"C06FPF - Multiple 1-D real discrete Fourier transform ",nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc06fpf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06fpf| '|NagSeriesSummationPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "Computes the discrete Fourier transforms of {\it m} real ") +; (text . "sequences, each containing {\it n} data values.") +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of sequences to be transformed {\it m}: ") +; (text . "\newline \tab{2} ") +; (bcStrings (5 3 m PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of data values {\it n}: ") +; (text . "\newline\tab{2} ") +; (bcStrings (5 6 n PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Type of call:") +; (radioButtons init +; ("" " Initial" i) +; ("" " Subsequent" s) +; ("" " Restart" r)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c06fpfSolve) +; htShowPage() + +(DEFUN |c06fpf| () + (PROGN + (|htInitPage| + (MAKESTRING + "C06FPF - Multiple 1-D real discrete Fourier transform ") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc06fpf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06fpf| '|NagSeriesSummationPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| + . "Computes the discrete Fourier transforms of {\\it m} real ") + (|text| . "sequences, each containing {\\it n} data values.") + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| + . "Enter the number of sequences to be transformed {\\it m}: ") + (|text| . "\\newline \\tab{2} ") (|bcStrings| (5 3 |m| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Enter the number of data values {\\it n}: ") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 6 |n| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Type of call:") + (|radioButtons| |init| ("" " Initial" |i|) + ("" " Subsequent" |s|) ("" " Restart" |r|)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06fpfSolve|) + (|htShowPage|))) + +;c06fpfSolve htPage == +; m := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) +; objValUnwrap htpLabelSpadValue(htPage, 'm) +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; call := htpButtonValue(htPage,'init) +; init := +; call = 'i => '"i" +; call = 's => '"s" +; '"r" +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; (n = '6 and m = '3) => c06fpfDefaultSolve(htPage,init,ifail) +; matList := +; "append"/[f(i,m) for i in 1..n] where f(i,n) == +; labelList := +; "append"/[g(i,j) for j in 1..n] where g(i,j) == +; xnam := INTERN STRCONC ('"r",STRINGIMAGE i, STRINGIMAGE j) +; [['bcStrings,[6, 0.0, xnam, 'F]]] +; prefix := ('"\newline \tab{2} ") +; labelList := [['text,:prefix],:labelList] +; trigList := +; "append"/[h(k) for k in 1..(2*n)] where h(k) == +; prefix := ('"\newline \tab{2} ") +; trignam := INTERN STRCONC ('"t",STRINGIMAGE k) +; [['text,:prefix],['bcStrings,[6, "0.0", trignam, 'F]]] +; prefix := ('"\blankline \menuitemstyle{} \tab{2} Trigonometric coefficients ") +; prefix := STRCONC(prefix,"(not required if initial call) {\it TRIG}: ") +; prefix := STRCONC(prefix,"\newline \tab{2} ") +; trigList := [['text,:prefix],:trigList] +; equationPart := [ +; '(domainConditions +; (isDomain F (Float))), +; :matList,:trigList] +; page := htInitPage("C06FPF - Multiple 1-D real discrete Fourier transform ", htpPropertyList htPage) +; htSay '"\menuitemstyle{} \tab{2} " +; htSay '"Enter each sequence to be transformed, {\it x}. " +; htSay '"(Each column to contain a sequence.) " +; htMakePage equationPart +; htMakeDoneButton('"Continue",'c06fpfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'m,m) +; htpSetProperty(page,'init,init) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06fpfSolve,g| (|i| |j|) + (PROG (|xnam|) + (RETURN + (SEQ (SPADLET |xnam| + (INTERN (STRCONC (MAKESTRING "r") (STRINGIMAGE |i|) + (STRINGIMAGE |j|)))) + (EXIT (CONS (CONS '|bcStrings| + (CONS (CONS 6 + (CONS 0.0 + (CONS |xnam| (CONS 'F NIL)))) + NIL)) + NIL)))))) + +(DEFUN |c06fpfSolve,f| (|i| |n|) + (PROG (|prefix| |labelList|) + (RETURN + (SEQ (SPADLET |labelList| + (PROG (G166334) + (SPADLET G166334 NIL) + (RETURN + (DO ((|j| 1 (QSADD1 |j|))) + ((QSGREATERP |j| |n|) G166334) + (SEQ (EXIT (SETQ G166334 + (APPEND G166334 + (|c06fpfSolve,g| |i| |j|))))))))) + (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} ")) + (EXIT (SPADLET |labelList| + (CONS (CONS '|text| |prefix|) |labelList|))))))) + +(DEFUN |c06fpfSolve,h| (|k|) + (PROG (|prefix| |trignam|) + (RETURN + (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} ")) + (SPADLET |trignam| + (INTERN (STRCONC (MAKESTRING "t") + (STRINGIMAGE |k|)))) + (EXIT (CONS (CONS '|text| |prefix|) + (CONS (CONS '|bcStrings| + (CONS + (CONS 6 + (CONS '|0.0| + (CONS |trignam| (CONS 'F NIL)))) + NIL)) + NIL))))))) + +(DEFUN |c06fpfSolve| (|htPage|) + (PROG (|m| |n| |call| |init| |error| |ifail| |matList| |prefix| + |trigList| |equationPart| |page|) + (declare (special |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |m| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|m|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|m|))))) + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |call| (|htpButtonValue| |htPage| '|init|)) + (SPADLET |init| + (COND + ((BOOT-EQUAL |call| '|i|) (MAKESTRING "i")) + ((BOOT-EQUAL |call| '|s|) (MAKESTRING "s")) + ('T (MAKESTRING "r")))) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (COND + ((AND (BOOT-EQUAL |n| '6) (BOOT-EQUAL |m| '3)) + (|c06fpfDefaultSolve| |htPage| |init| |ifail|)) + ('T + (SPADLET |matList| + (PROG (G166358) + (SPADLET G166358 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G166358) + (SEQ (EXIT + (SETQ G166358 + (APPEND G166358 + (|c06fpfSolve,f| |i| |m|))))))))) + (SPADLET |trigList| + (PROG (G166366) + (SPADLET G166366 NIL) + (RETURN + (DO ((G166371 (TIMES 2 |n|)) + (|k| 1 (QSADD1 |k|))) + ((QSGREATERP |k| G166371) G166366) + (SEQ (EXIT + (SETQ G166366 + (APPEND G166366 + (|c06fpfSolve,h| |k|))))))))) + (SPADLET |prefix| + (MAKESTRING + "\\blankline \\menuitemstyle{} \\tab{2} Trigonometric coefficients ")) + (SPADLET |prefix| + (STRCONC |prefix| + '|(not required if initial call) {\\it TRIG}: |)) + (SPADLET |prefix| + (STRCONC |prefix| '|\\newline \\tab{2} |)) + (SPADLET |trigList| + (CONS (CONS '|text| |prefix|) |trigList|)) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| F (|Float|))) + (APPEND |matList| |trigList|))) + (SPADLET |page| + (|htInitPage| + '|C06FPF - Multiple 1-D real discrete Fourier transform | + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING "\\menuitemstyle{} \\tab{2} ")) + (|htSay| (MAKESTRING + "Enter each sequence to be transformed, {\\it x}. ")) + (|htSay| (MAKESTRING + "(Each column to contain a sequence.) ")) + (|htMakePage| |equationPart|) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c06fpfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|m| |m|) + (|htpSetProperty| |page| '|init| |init|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c06fpfDefaultSolve (htPage, init,ifail) == +; n := '6 +; m := '3 +; page := htInitPage('"C06FPF - Multiple 1-D real discrete Fourier transform ",nil) +; htMakePage '( +; (domainConditions +; (isDomain F (Float))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "Enter each sequence to be transformed, {\it x}. ") +; (text . "(Each column to contain a sequence.) ") +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.3854" x11 F)) +; (bcStrings (6 "0.5417" x21 F)) +; (bcStrings (6 "0.9172" x31 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6772" x12 F)) +; (bcStrings (6 "0.2983" x22 F)) +; (bcStrings (6 "0.0644" x32 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.1138" x13 F)) +; (bcStrings (6 "0.1181" x23 F)) +; (bcStrings (6 "0.6037" x33 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6751" x14 F)) +; (bcStrings (6 "0.7255" x24 F)) +; (bcStrings (6 "0.6430" x34 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6362" x15 F)) +; (bcStrings (6 "0.8638" x25 F)) +; (bcStrings (6 "0.0428" x35 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.1424" x16 F)) +; (bcStrings (6 "0.8723" x26 F)) +; (bcStrings (6 "0.4815" x36 F)) +; (text . "\blankline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "Trignometric coefficients (not required if initial call) ") +; (text . "{\it TRIG}: \newline \tab{2} ") +; (bcStrings (6 "0.0" t1 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t2 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t3 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t4 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t5 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t6 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t7 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t8 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t9 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t10 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t11 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t12 F)) +; (text . "\blankline ")) +; htMakeDoneButton('"Continue",'c06fpfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'m,m) +; htpSetProperty(page,'init,init) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06fpfDefaultSolve| (|htPage| |init| |ifail|) + (PROG (|n| |m| |page|) + (RETURN + (PROGN + (SPADLET |n| '6) + (SPADLET |m| '3) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C06FPF - Multiple 1-D real discrete Fourier transform ") + NIL)) + (|htMakePage| + '((|domainConditions| (|isDomain| F (|Float|))) + (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| + . "Enter each sequence to be transformed, {\\it x}. ") + (|text| . "(Each column to contain a sequence.) ") + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.3854" |x11| F)) + (|bcStrings| (6 "0.5417" |x21| F)) + (|bcStrings| (6 "0.9172" |x31| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6772" |x12| F)) + (|bcStrings| (6 "0.2983" |x22| F)) + (|bcStrings| (6 "0.0644" |x32| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.1138" |x13| F)) + (|bcStrings| (6 "0.1181" |x23| F)) + (|bcStrings| (6 "0.6037" |x33| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6751" |x14| F)) + (|bcStrings| (6 "0.7255" |x24| F)) + (|bcStrings| (6 "0.6430" |x34| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6362" |x15| F)) + (|bcStrings| (6 "0.8638" |x25| F)) + (|bcStrings| (6 "0.0428" |x35| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.1424" |x16| F)) + (|bcStrings| (6 "0.8723" |x26| F)) + (|bcStrings| (6 "0.4815" |x36| F)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| + . "Trignometric coefficients (not required if initial call) ") + (|text| . "{\\it TRIG}: \\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t1| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t2| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t3| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t4| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t5| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t6| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t7| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t8| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t9| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t10| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t11| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t12| F)) + (|text| . "\\blankline "))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06fpfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|m| |m|) + (|htpSetProperty| |page| '|init| |init|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c06fpfGen htPage == +; n := htpProperty(htPage,'n) +; m := htpProperty(htPage,'m) +; init := htpProperty(htPage,'init) +; ifail := htpProperty(htPage,'ifail) +; alist := htpInputAreaAlist htPage +; y := alist +; for i in 1..(2*n) repeat +; left := STRCONC((first y).1," ") +; y := rest y +; triglist := [left,:triglist] +; trigstring := bcwords2liststring triglist +; while y repeat +; left := STRCONC((first y).1," ") +; y := rest y +; xlist := [left,:xlist] +; xstring := bcwords2liststring xlist +; prefix := STRCONC ('"c06fpf(",STRINGIMAGE m,", ",STRINGIMAGE n,", _"") +; prefix := STRCONC(prefix,init,"_",[",xstring,"],[",trigstring,"],") +; linkGen STRCONC(prefix,STRINGIMAGE ifail,")") + +(DEFUN |c06fpfGen| (|htPage|) + (PROG (|n| |m| |init| |ifail| |alist| |triglist| |trigstring| |left| + |y| |xlist| |xstring| |prefix|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |m| (|htpProperty| |htPage| '|m|)) + (SPADLET |init| (|htpProperty| |htPage| '|init|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (DO ((G166410 (TIMES 2 |n|)) (|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| G166410) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |triglist| + (CONS |left| |triglist|)))))) + (SPADLET |trigstring| (|bcwords2liststring| |triglist|)) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |xlist| (CONS |left| |xlist|)))))) + (SPADLET |xstring| (|bcwords2liststring| |xlist|)) + (SPADLET |prefix| + (STRCONC (MAKESTRING "c06fpf(") (STRINGIMAGE |m|) + '|, | (STRINGIMAGE |n|) '|, "|)) + (SPADLET |prefix| + (STRCONC |prefix| |init| '|",[| |xstring| '|],[| + |trigstring| '|],|)) + (|linkGen| (STRCONC |prefix| (STRINGIMAGE |ifail|) '|)|))))))) + +;c06fqf() == +; htInitPage('"C06FQF - Multiple 1-D Hermitian discrete Fourier transform ",nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc06fqf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06fqf| '|NagSeriesSummationPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "Computes the discrete Fourier transforms of {\it m} real ") +; (text . "sequences, each containing {\it n} data values.") +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of sequences to be transformed {\it m}: ") +; (text . "\newline \tab{2} ") +; (bcStrings (5 3 m PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of data values {\it n}: ") +; (text . "\newline\tab{2} ") +; (bcStrings (5 6 n PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Type of call:") +; (radioButtons init +; ("" " Initial" i) +; ("" " Subsequent" s) +; ("" " Restart" r)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c06fqfSolve) +; htShowPage() + +(DEFUN |c06fqf| () + (PROGN + (|htInitPage| + (MAKESTRING + "C06FQF - Multiple 1-D Hermitian discrete Fourier transform ") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc06fqf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06fqf| '|NagSeriesSummationPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| + . "Computes the discrete Fourier transforms of {\\it m} real ") + (|text| . "sequences, each containing {\\it n} data values.") + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| + . "Enter the number of sequences to be transformed {\\it m}: ") + (|text| . "\\newline \\tab{2} ") (|bcStrings| (5 3 |m| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Enter the number of data values {\\it n}: ") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 6 |n| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Type of call:") + (|radioButtons| |init| ("" " Initial" |i|) + ("" " Subsequent" |s|) ("" " Restart" |r|)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06fqfSolve|) + (|htShowPage|))) + +;c06fqfSolve htPage == +; m := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) +; objValUnwrap htpLabelSpadValue(htPage, 'm) +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; call := htpButtonValue(htPage,'init) +; init := +; call = 'i => '"i" +; call = 's => '"s" +; '"r" +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; (n = '6 and m = '3) => c06fqfDefaultSolve(htPage,init,ifail) +; matList := +; "append"/[f(i,m) for i in 1..n] where f(i,n) == +; labelList := +; "append"/[g(i,j) for j in 1..n] where g(i,j) == +; xnam := INTERN STRCONC ('"r",STRINGIMAGE i, STRINGIMAGE j) +; [['bcStrings,[6, 0.0, xnam, 'F]]] +; prefix := ('"\newline \tab{2} ") +; labelList := [['text,:prefix],:labelList] +; trigList := +; "append"/[h(k) for k in 1..(2*n)] where h(k) == +; prefix := ("\newline \tab{2} ") +; trignam := INTERN STRCONC ('"t",STRINGIMAGE k) +; [['text,:prefix],['bcStrings,[6, "0.0", trignam, 'F]]] +; prefix := ('"\blankline \menuitemstyle{} \tab{2} Trignometric coefficients ") +; prefix := STRCONC(prefix,"(not required if initial call) {\it TRIG}: ") +; prefix := STRCONC(prefix,"\newline \tab{2} ") +; trigList := [['text,:prefix],:trigList] +; equationPart := [ +; '(domainConditions +; (isDomain F (Float))), +; :matList,:trigList] +; page := htInitPage("C06FQF - Multiple 1-D Hermitian discrete Fourier transform ", htpPropertyList htPage) +; htSay '"\menuitemstyle{} \tab{2} " +; htSay '"Enter each sequence to be transformed, {\it x}. " +; htSay '"(Each column to contain a sequence.) " +; htMakePage equationPart +; htMakeDoneButton('"Continue",'c06fqfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'m,m) +; htpSetProperty(page,'init,init) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06fqfSolve,g| (|i| |j|) + (PROG (|xnam|) + (RETURN + (SEQ (SPADLET |xnam| + (INTERN (STRCONC (MAKESTRING "r") (STRINGIMAGE |i|) + (STRINGIMAGE |j|)))) + (EXIT (CONS (CONS '|bcStrings| + (CONS (CONS 6 + (CONS 0.0 + (CONS |xnam| (CONS 'F NIL)))) + NIL)) + NIL)))))) + +(DEFUN |c06fqfSolve,f| (|i| |n|) + (PROG (|prefix| |labelList|) + (RETURN + (SEQ (SPADLET |labelList| + (PROG (G166457) + (SPADLET G166457 NIL) + (RETURN + (DO ((|j| 1 (QSADD1 |j|))) + ((QSGREATERP |j| |n|) G166457) + (SEQ (EXIT (SETQ G166457 + (APPEND G166457 + (|c06fqfSolve,g| |i| |j|))))))))) + (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} ")) + (EXIT (SPADLET |labelList| + (CONS (CONS '|text| |prefix|) |labelList|))))))) + +(DEFUN |c06fqfSolve,h| (|k|) + (PROG (|prefix| |trignam|) + (RETURN + (SEQ (SPADLET |prefix| '|\\newline \\tab{2} |) + (SPADLET |trignam| + (INTERN (STRCONC (MAKESTRING "t") + (STRINGIMAGE |k|)))) + (EXIT (CONS (CONS '|text| |prefix|) + (CONS (CONS '|bcStrings| + (CONS + (CONS 6 + (CONS '|0.0| + (CONS |trignam| (CONS 'F NIL)))) + NIL)) + NIL))))))) + +(DEFUN |c06fqfSolve| (|htPage|) + (PROG (|m| |n| |call| |init| |error| |ifail| |matList| |prefix| + |trigList| |equationPart| |page|) + (declare (special |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |m| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|m|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|m|))))) + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |call| (|htpButtonValue| |htPage| '|init|)) + (SPADLET |init| + (COND + ((BOOT-EQUAL |call| '|i|) (MAKESTRING "i")) + ((BOOT-EQUAL |call| '|s|) (MAKESTRING "s")) + ('T (MAKESTRING "r")))) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (COND + ((AND (BOOT-EQUAL |n| '6) (BOOT-EQUAL |m| '3)) + (|c06fqfDefaultSolve| |htPage| |init| |ifail|)) + ('T + (SPADLET |matList| + (PROG (G166481) + (SPADLET G166481 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G166481) + (SEQ (EXIT + (SETQ G166481 + (APPEND G166481 + (|c06fqfSolve,f| |i| |m|))))))))) + (SPADLET |trigList| + (PROG (G166489) + (SPADLET G166489 NIL) + (RETURN + (DO ((G166494 (TIMES 2 |n|)) + (|k| 1 (QSADD1 |k|))) + ((QSGREATERP |k| G166494) G166489) + (SEQ (EXIT + (SETQ G166489 + (APPEND G166489 + (|c06fqfSolve,h| |k|))))))))) + (SPADLET |prefix| + (MAKESTRING + "\\blankline \\menuitemstyle{} \\tab{2} Trignometric coefficients ")) + (SPADLET |prefix| + (STRCONC |prefix| + '|(not required if initial call) {\\it TRIG}: |)) + (SPADLET |prefix| + (STRCONC |prefix| '|\\newline \\tab{2} |)) + (SPADLET |trigList| + (CONS (CONS '|text| |prefix|) |trigList|)) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| F (|Float|))) + (APPEND |matList| |trigList|))) + (SPADLET |page| + (|htInitPage| + '|C06FQF - Multiple 1-D Hermitian discrete Fourier transform | + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING "\\menuitemstyle{} \\tab{2} ")) + (|htSay| (MAKESTRING + "Enter each sequence to be transformed, {\\it x}. ")) + (|htSay| (MAKESTRING + "(Each column to contain a sequence.) ")) + (|htMakePage| |equationPart|) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c06fqfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|m| |m|) + (|htpSetProperty| |page| '|init| |init|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c06fqfDefaultSolve (htPage, init,ifail) == +; n := '6 +; m := '3 +; page := htInitPage('"C06FQF - Multiple 1-D Hermitian discrete Fourier transform ",nil) +; htMakePage '( +; (domainConditions +; (isDomain F (Float))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "Enter each sequence to be transformed, {\it x}. ") +; (text . "(Each column to contain a sequence.) ") +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.3854" x11 F)) +; (bcStrings (6 "0.5417" x21 F)) +; (bcStrings (6 "0.9172" x31 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6772" x12 F)) +; (bcStrings (6 "0.2983" x22 F)) +; (bcStrings (6 "0.0644" x32 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.1138" x13 F)) +; (bcStrings (6 "0.1181" x23 F)) +; (bcStrings (6 "0.6037" x33 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6751" x14 F)) +; (bcStrings (6 "0.7255" x24 F)) +; (bcStrings (6 "0.6430" x34 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6362" x15 F)) +; (bcStrings (6 "0.8638" x25 F)) +; (bcStrings (6 "0.0428" x35 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.1424" x16 F)) +; (bcStrings (6 "0.8723" x26 F)) +; (bcStrings (6 "0.4815" x36 F)) +; (text . "\blankline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "Trignometric coefficients (not required if initial call) ") +; (text . "{\it TRIG}: \newline \tab{2} ") +; (bcStrings (6 "0.0" t1 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t2 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t3 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t4 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t5 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t6 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t7 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t8 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t9 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t10 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t11 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t12 F)) +; (text . "\blankline ")) +; htMakeDoneButton('"Continue",'c06fqfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'m,m) +; htpSetProperty(page,'init,init) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06fqfDefaultSolve| (|htPage| |init| |ifail|) + (PROG (|n| |m| |page|) + (RETURN + (PROGN + (SPADLET |n| '6) + (SPADLET |m| '3) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C06FQF - Multiple 1-D Hermitian discrete Fourier transform ") + NIL)) + (|htMakePage| + '((|domainConditions| (|isDomain| F (|Float|))) + (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| + . "Enter each sequence to be transformed, {\\it x}. ") + (|text| . "(Each column to contain a sequence.) ") + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.3854" |x11| F)) + (|bcStrings| (6 "0.5417" |x21| F)) + (|bcStrings| (6 "0.9172" |x31| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6772" |x12| F)) + (|bcStrings| (6 "0.2983" |x22| F)) + (|bcStrings| (6 "0.0644" |x32| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.1138" |x13| F)) + (|bcStrings| (6 "0.1181" |x23| F)) + (|bcStrings| (6 "0.6037" |x33| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6751" |x14| F)) + (|bcStrings| (6 "0.7255" |x24| F)) + (|bcStrings| (6 "0.6430" |x34| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6362" |x15| F)) + (|bcStrings| (6 "0.8638" |x25| F)) + (|bcStrings| (6 "0.0428" |x35| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.1424" |x16| F)) + (|bcStrings| (6 "0.8723" |x26| F)) + (|bcStrings| (6 "0.4815" |x36| F)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| + . "Trignometric coefficients (not required if initial call) ") + (|text| . "{\\it TRIG}: \\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t1| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t2| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t3| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t4| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t5| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t6| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t7| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t8| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t9| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t10| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t11| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t12| F)) + (|text| . "\\blankline "))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06fqfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|m| |m|) + (|htpSetProperty| |page| '|init| |init|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c06fqfGen htPage == +; n := htpProperty(htPage,'n) +; m := htpProperty(htPage,'m) +; init := htpProperty(htPage,'init) +; ifail := htpProperty(htPage,'ifail) +; alist := htpInputAreaAlist htPage +; y := alist +; for i in 1..(2*n) repeat +; left := STRCONC((first y).1," ") +; y := rest y +; triglist := [left,:triglist] +; trigstring := bcwords2liststring triglist +; while y repeat +; left := STRCONC((first y).1," ") +; y := rest y +; xlist := [left,:xlist] +; xstring := bcwords2liststring xlist +; prefix := STRCONC ('"c06fqf(",STRINGIMAGE m,", ",STRINGIMAGE n,", _"") +; prefix := STRCONC(prefix,init,"_",[",xstring,"],[",trigstring,"],") +; linkGen STRCONC(prefix,STRINGIMAGE ifail,")") + +(DEFUN |c06fqfGen| (|htPage|) + (PROG (|n| |m| |init| |ifail| |alist| |triglist| |trigstring| |left| + |y| |xlist| |xstring| |prefix|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |m| (|htpProperty| |htPage| '|m|)) + (SPADLET |init| (|htpProperty| |htPage| '|init|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (DO ((G166533 (TIMES 2 |n|)) (|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| G166533) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |triglist| + (CONS |left| |triglist|)))))) + (SPADLET |trigstring| (|bcwords2liststring| |triglist|)) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |xlist| (CONS |left| |xlist|)))))) + (SPADLET |xstring| (|bcwords2liststring| |xlist|)) + (SPADLET |prefix| + (STRCONC (MAKESTRING "c06fqf(") (STRINGIMAGE |m|) + '|, | (STRINGIMAGE |n|) '|, "|)) + (SPADLET |prefix| + (STRCONC |prefix| |init| '|",[| |xstring| '|],[| + |trigstring| '|],|)) + (|linkGen| (STRCONC |prefix| (STRINGIMAGE |ifail|) '|)|))))))) + +;c06frf() == +; htInitPage('"C06FRF - Multiple 1-D complex discrete Fourier transform ",nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc06frf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06frf| '|NagSeriesSummationPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "Computes the discrete Fourier transforms of {\it m} complex ") +; (text . "sequences, each containing {\it n} data values.") +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of sequences to be transformed {\it m}: ") +; (text . "\newline \tab{2} ") +; (bcStrings (5 3 m PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of data values {\it n}: ") +; (text . "\newline\tab{2} ") +; (bcStrings (5 6 n PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Type of call:") +; (radioButtons init +; ("" " Initial" i) +; ("" " Subsequent" s) +; ("" " Restart" r)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c06frfSolve) +; htShowPage() + +(DEFUN |c06frf| () + (PROGN + (|htInitPage| + (MAKESTRING + "C06FRF - Multiple 1-D complex discrete Fourier transform ") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc06frf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06frf| '|NagSeriesSummationPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| + . "Computes the discrete Fourier transforms of {\\it m} complex ") + (|text| . "sequences, each containing {\\it n} data values.") + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| + . "Enter the number of sequences to be transformed {\\it m}: ") + (|text| . "\\newline \\tab{2} ") (|bcStrings| (5 3 |m| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Enter the number of data values {\\it n}: ") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 6 |n| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Type of call:") + (|radioButtons| |init| ("" " Initial" |i|) + ("" " Subsequent" |s|) ("" " Restart" |r|)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06frfSolve|) + (|htShowPage|))) + +;c06frfSolve htPage == +; m := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) +; objValUnwrap htpLabelSpadValue(htPage, 'm) +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; call := htpButtonValue(htPage,'init) +; init := +; call = 'i => '"i" +; call = 's => '"s" +; '"r" +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; (n = '6 and m = '3) => c06frfDefaultSolve(htPage,init,ifail) +; xList := +; "append"/[fx(i,m) for i in 1..n] where fx(i,n) == +; labelList := +; "append"/[gx(i,j) for j in 1..n] where gx(i,j) == +; xnam := INTERN STRCONC ('"x",STRINGIMAGE i, STRINGIMAGE j) +; [['bcStrings,[6, 0.0, xnam, 'F]]] +; prefix := ('"\newline \tab{2} ") +; labelList := [['text,:prefix],:labelList] +; yList := +; "append"/[fy(i,m) for i in 1..n] where fy(i,n) == +; labelList := +; "append"/[gy(i,j) for j in 1..n] where gy(i,j) == +; ynam := INTERN STRCONC ('"y",STRINGIMAGE i, STRINGIMAGE j) +; [['bcStrings,[6, 0.0, ynam, 'F]]] +; prefix := ('"\newline \tab{2} ") +; labelList := [['text,:prefix],:labelList] +; prefix := ('"\blankline \menuitemstyle{} \tab{2} Enter the imaginary parts ") +; prefix := STRCONC(prefix,"of each sequence to be transformed, {\it y}. ") +; prefix := STRCONC(prefix,"(Each column to contain the imaginary parts ") +; prefix := STRCONC(prefix,"of a sequence.) \newline \tab{2} ") +; yList := [['text,:prefix],:yList] +; trigList := +; "append"/[h(k) for k in 1..(2*n)] where h(k) == +; prefix := ("\newline \tab{2} ") +; trignam := INTERN STRCONC ('"t",STRINGIMAGE k) +; [['text,:prefix],['bcStrings,[6, "0.0", trignam, 'F]]] +; prefix := ('"\blankline \menuitemstyle{} \tab{2} Trignometric coefficients ") +; prefix := STRCONC(prefix,"(not required if initial call) {\it TRIG}: ") +; prefix := STRCONC(prefix,"\newline \tab{2} ") +; trigList := [['text,:prefix],:trigList] +; equationPart := [ +; '(domainConditions +; (isDomain F (Float))), +; :xList,:yList,:trigList] +; page := htInitPage("C06FRF - Multiple 1-D real discrete Fourier transform ", htpPropertyList htPage) +; htSay '"\menuitemstyle{} \tab{2} " +; htSay '"Enter the real parts of each sequence to be transformed, {\it x}. " +; htSay '"(Each column to contain the real parts of a sequence.) " +; htMakePage equationPart +; htMakeDoneButton('"Continue",'c06frfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'m,m) +; htpSetProperty(page,'init,init) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06frfSolve,gx| (|i| |j|) + (PROG (|xnam|) + (RETURN + (SEQ (SPADLET |xnam| + (INTERN (STRCONC (MAKESTRING "x") (STRINGIMAGE |i|) + (STRINGIMAGE |j|)))) + (EXIT (CONS (CONS '|bcStrings| + (CONS (CONS 6 + (CONS 0.0 + (CONS |xnam| (CONS 'F NIL)))) + NIL)) + NIL)))))) + +(DEFUN |c06frfSolve,fx| (|i| |n|) + (PROG (|prefix| |labelList|) + (RETURN + (SEQ (SPADLET |labelList| + (PROG (G166580) + (SPADLET G166580 NIL) + (RETURN + (DO ((|j| 1 (QSADD1 |j|))) + ((QSGREATERP |j| |n|) G166580) + (SEQ (EXIT (SETQ G166580 + (APPEND G166580 + (|c06frfSolve,gx| |i| |j|))))))))) + (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} ")) + (EXIT (SPADLET |labelList| + (CONS (CONS '|text| |prefix|) |labelList|))))))) + +(DEFUN |c06frfSolve,gy| (|i| |j|) + (PROG (|ynam|) + (RETURN + (SEQ (SPADLET |ynam| + (INTERN (STRCONC (MAKESTRING "y") (STRINGIMAGE |i|) + (STRINGIMAGE |j|)))) + (EXIT (CONS (CONS '|bcStrings| + (CONS (CONS 6 + (CONS 0.0 + (CONS |ynam| (CONS 'F NIL)))) + NIL)) + NIL)))))) + +(DEFUN |c06frfSolve,fy| (|i| |n|) + (PROG (|prefix| |labelList|) + (RETURN + (SEQ (SPADLET |labelList| + (PROG (G166603) + (SPADLET G166603 NIL) + (RETURN + (DO ((|j| 1 (QSADD1 |j|))) + ((QSGREATERP |j| |n|) G166603) + (SEQ (EXIT (SETQ G166603 + (APPEND G166603 + (|c06frfSolve,gy| |i| |j|))))))))) + (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} ")) + (EXIT (SPADLET |labelList| + (CONS (CONS '|text| |prefix|) |labelList|))))))) + +(DEFUN |c06frfSolve,h| (|k|) + (PROG (|prefix| |trignam|) + (RETURN + (SEQ (SPADLET |prefix| '|\\newline \\tab{2} |) + (SPADLET |trignam| + (INTERN (STRCONC (MAKESTRING "t") + (STRINGIMAGE |k|)))) + (EXIT (CONS (CONS '|text| |prefix|) + (CONS (CONS '|bcStrings| + (CONS + (CONS 6 + (CONS '|0.0| + (CONS |trignam| (CONS 'F NIL)))) + NIL)) + NIL))))))) + +(DEFUN |c06frfSolve| (|htPage|) + (PROG (|m| |n| |call| |init| |error| |ifail| |xList| |yList| |prefix| + |trigList| |equationPart| |page|) + (declare (special |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |m| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|m|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|m|))))) + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |call| (|htpButtonValue| |htPage| '|init|)) + (SPADLET |init| + (COND + ((BOOT-EQUAL |call| '|i|) (MAKESTRING "i")) + ((BOOT-EQUAL |call| '|s|) (MAKESTRING "s")) + ('T (MAKESTRING "r")))) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (COND + ((AND (BOOT-EQUAL |n| '6) (BOOT-EQUAL |m| '3)) + (|c06frfDefaultSolve| |htPage| |init| |ifail|)) + ('T + (SPADLET |xList| + (PROG (G166627) + (SPADLET G166627 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G166627) + (SEQ (EXIT + (SETQ G166627 + (APPEND G166627 + (|c06frfSolve,fx| |i| |m|))))))))) + (SPADLET |yList| + (PROG (G166635) + (SPADLET G166635 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G166635) + (SEQ (EXIT + (SETQ G166635 + (APPEND G166635 + (|c06frfSolve,fy| |i| |m|))))))))) + (SPADLET |prefix| + (MAKESTRING + "\\blankline \\menuitemstyle{} \\tab{2} Enter the imaginary parts ")) + (SPADLET |prefix| + (STRCONC |prefix| + '|of each sequence to be transformed, {\\it y}. |)) + (SPADLET |prefix| + (STRCONC |prefix| + '|(Each column to contain the imaginary parts |)) + (SPADLET |prefix| + (STRCONC |prefix| + '|of a sequence.) \\newline \\tab{2} |)) + (SPADLET |yList| + (CONS (CONS '|text| |prefix|) |yList|)) + (SPADLET |trigList| + (PROG (G166643) + (SPADLET G166643 NIL) + (RETURN + (DO ((G166648 (TIMES 2 |n|)) + (|k| 1 (QSADD1 |k|))) + ((QSGREATERP |k| G166648) G166643) + (SEQ (EXIT + (SETQ G166643 + (APPEND G166643 + (|c06frfSolve,h| |k|))))))))) + (SPADLET |prefix| + (MAKESTRING + "\\blankline \\menuitemstyle{} \\tab{2} Trignometric coefficients ")) + (SPADLET |prefix| + (STRCONC |prefix| + '|(not required if initial call) {\\it TRIG}: |)) + (SPADLET |prefix| + (STRCONC |prefix| '|\\newline \\tab{2} |)) + (SPADLET |trigList| + (CONS (CONS '|text| |prefix|) |trigList|)) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| F (|Float|))) + (APPEND |xList| + (APPEND |yList| |trigList|)))) + (SPADLET |page| + (|htInitPage| + '|C06FRF - Multiple 1-D real discrete Fourier transform | + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING "\\menuitemstyle{} \\tab{2} ")) + (|htSay| (MAKESTRING + "Enter the real parts of each sequence to be transformed, {\\it x}. ")) + (|htSay| (MAKESTRING + "(Each column to contain the real parts of a sequence.) ")) + (|htMakePage| |equationPart|) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c06frfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|m| |m|) + (|htpSetProperty| |page| '|init| |init|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c06frfDefaultSolve (htPage, init,ifail) == +; n := '6 +; m := '3 +; page := htInitPage('"C06FRF - Multiple 1-D real discrete Fourier transform ",nil) +; htMakePage '( +; (domainConditions +; (isDomain F (Float))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "Enter the real parts of each sequence to be transformed, ") +; (text . "{\it x}. (Each column to contain the real parts of a sequence.) ") +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.3854" x11 F)) +; (bcStrings (6 "0.9172" x21 F)) +; (bcStrings (6 "0.1156" x31 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6772" x12 F)) +; (bcStrings (6 "0.0644" x22 F)) +; (bcStrings (6 "0.0685" x32 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.1138" x13 F)) +; (bcStrings (6 "0.6037" x23 F)) +; (bcStrings (6 "0.2060" x33 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6751" x14 F)) +; (bcStrings (6 "0.6430" x24 F)) +; (bcStrings (6 "0.8630" x34 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6362" x15 F)) +; (bcStrings (6 "0.0428" x25 F)) +; (bcStrings (6 "0.6967" x35 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.1424" x16 F)) +; (bcStrings (6 "0.4815" x26 F)) +; (bcStrings (6 "0.2792" x36 F)) +; (text . "\blankline ") +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} Enter the imaginary parts of each ") +; (text . "sequence to be transformed, {\it y}. ") +; (text . "(Each column to contain the imaginary parts of a sequence.) ") +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.5417" y11 F)) +; (bcStrings (6 "0.9089" y21 F)) +; (bcStrings (6 "0.6214" y31 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.2983" y12 F)) +; (bcStrings (6 "0.3118" y22 F)) +; (bcStrings (6 "0.8681" y32 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.1181" y13 F)) +; (bcStrings (6 "0.3465" y23 F)) +; (bcStrings (6 "0.7060" y33 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.7255" y14 F)) +; (bcStrings (6 "0.6198" y24 F)) +; (bcStrings (6 "0.8652" y34 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.8638" y15 F)) +; (bcStrings (6 "0.2668" y25 F)) +; (bcStrings (6 "0.9190" y35 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.8723" y16 F)) +; (bcStrings (6 "0.1614" y26 F)) +; (bcStrings (6 "0.3355" y36 F)) +; (text . "\blankline ") +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "Trignometric coefficients (not required if initial call) ") +; (text . "{\it TRIG}: \newline \tab{2} ") +; (bcStrings (6 "0.0" t1 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t2 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t3 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t4 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t5 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t6 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t7 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t8 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t9 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t10 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t11 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" t12 F)) +; (text . "\blankline ")) +; htMakeDoneButton('"Continue",'c06frfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'m,m) +; htpSetProperty(page,'init,init) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06frfDefaultSolve| (|htPage| |init| |ifail|) + (PROG (|n| |m| |page|) + (RETURN + (PROGN + (SPADLET |n| '6) + (SPADLET |m| '3) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C06FRF - Multiple 1-D real discrete Fourier transform ") + NIL)) + (|htMakePage| + '((|domainConditions| (|isDomain| F (|Float|))) + (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| + . "Enter the real parts of each sequence to be transformed, ") + (|text| + . "{\\it x}. (Each column to contain the real parts of a sequence.) ") + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.3854" |x11| F)) + (|bcStrings| (6 "0.9172" |x21| F)) + (|bcStrings| (6 "0.1156" |x31| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6772" |x12| F)) + (|bcStrings| (6 "0.0644" |x22| F)) + (|bcStrings| (6 "0.0685" |x32| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.1138" |x13| F)) + (|bcStrings| (6 "0.6037" |x23| F)) + (|bcStrings| (6 "0.2060" |x33| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6751" |x14| F)) + (|bcStrings| (6 "0.6430" |x24| F)) + (|bcStrings| (6 "0.8630" |x34| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6362" |x15| F)) + (|bcStrings| (6 "0.0428" |x25| F)) + (|bcStrings| (6 "0.6967" |x35| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.1424" |x16| F)) + (|bcStrings| (6 "0.4815" |x26| F)) + (|bcStrings| (6 "0.2792" |x36| F)) + (|text| . "\\blankline ") (|text| . "\\newline ") + (|text| + . "\\menuitemstyle{}\\tab{2} Enter the imaginary parts of each ") + (|text| . "sequence to be transformed, {\\it y}. ") + (|text| + . "(Each column to contain the imaginary parts of a sequence.) ") + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.5417" |y11| F)) + (|bcStrings| (6 "0.9089" |y21| F)) + (|bcStrings| (6 "0.6214" |y31| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.2983" |y12| F)) + (|bcStrings| (6 "0.3118" |y22| F)) + (|bcStrings| (6 "0.8681" |y32| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.1181" |y13| F)) + (|bcStrings| (6 "0.3465" |y23| F)) + (|bcStrings| (6 "0.7060" |y33| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.7255" |y14| F)) + (|bcStrings| (6 "0.6198" |y24| F)) + (|bcStrings| (6 "0.8652" |y34| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.8638" |y15| F)) + (|bcStrings| (6 "0.2668" |y25| F)) + (|bcStrings| (6 "0.9190" |y35| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.8723" |y16| F)) + (|bcStrings| (6 "0.1614" |y26| F)) + (|bcStrings| (6 "0.3355" |y36| F)) + (|text| . "\\blankline ") (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| + . "Trignometric coefficients (not required if initial call) ") + (|text| . "{\\it TRIG}: \\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t1| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t2| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t3| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t4| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t5| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t6| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t7| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t8| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t9| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t10| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t11| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |t12| F)) + (|text| . "\\blankline "))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06frfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|m| |m|) + (|htpSetProperty| |page| '|init| |init|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c06frfGen htPage == +; n := htpProperty(htPage,'n) +; m := htpProperty(htPage,'m) +; init := htpProperty(htPage,'init) +; ifail := htpProperty(htPage,'ifail) +; alist := htpInputAreaAlist htPage +; y := alist +; for i in 1..(2*n) repeat +; left := STRCONC((first y).1," ") +; y := rest y +; triglist := [left,:triglist] +; trigstring := bcwords2liststring triglist +; for i in 1..(m*n) repeat +; left := STRCONC((first y).1," ") +; y := rest y +; ylist := [left,:ylist] +; ystring := bcwords2liststring ylist +; while y repeat +; left := STRCONC((first y).1," ") +; y := rest y +; xlist := [left,:xlist] +; xstring := bcwords2liststring xlist +; prefix := STRCONC ('"c06frf(",STRINGIMAGE m,", ",STRINGIMAGE n,", _"") +; prefix := STRCONC(prefix,init,"_",[",xstring,"],[",ystring,"],[") +; linkGen STRCONC(prefix,trigstring,"],",STRINGIMAGE ifail,")") + +(DEFUN |c06frfGen| (|htPage|) + (PROG (|n| |m| |init| |ifail| |alist| |triglist| |trigstring| |ylist| + |ystring| |left| |y| |xlist| |xstring| |prefix|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |m| (|htpProperty| |htPage| '|m|)) + (SPADLET |init| (|htpProperty| |htPage| '|init|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (DO ((G166695 (TIMES 2 |n|)) (|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| G166695) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |triglist| + (CONS |left| |triglist|)))))) + (SPADLET |trigstring| (|bcwords2liststring| |triglist|)) + (DO ((G166705 (TIMES |m| |n|)) (|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| G166705) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |ylist| (CONS |left| |ylist|)))))) + (SPADLET |ystring| (|bcwords2liststring| |ylist|)) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |xlist| (CONS |left| |xlist|)))))) + (SPADLET |xstring| (|bcwords2liststring| |xlist|)) + (SPADLET |prefix| + (STRCONC (MAKESTRING "c06frf(") (STRINGIMAGE |m|) + '|, | (STRINGIMAGE |n|) '|, "|)) + (SPADLET |prefix| + (STRCONC |prefix| |init| '|",[| |xstring| '|],[| + |ystring| '|],[|)) + (|linkGen| + (STRCONC |prefix| |trigstring| '|],| + (STRINGIMAGE |ifail|) '|)|))))))) + +;c06fuf() == +; htInitPage('"C06FUF - 2-D complex discrete Fourier transform ",nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc06fuf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06fuf| '|NagSeriesSummationPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "Computes the two-dimensional discrete Fourier transform of ") +; (text . "a bivaraite sequence of complex data values; likely to be ") +; (text . "efficient on vector processors. ") +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of {\it m} of rows of X and Y; ") +; (text . "\htbitmap{great=} 1 \newline \tab{2} ") +; (bcStrings (5 3 m PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of {\it n} of columns of X and Y; ") +; (text . "\htbitmap{great=} 1 \newline \tab{2} ") +; (bcStrings (5 5 n PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Type of call:") +; (radioButtons init +; ("" " Initial" i) +; ("" " Subsequent" s) +; ("" " Restart" r)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c06fufSolve) +; htShowPage() + +(DEFUN |c06fuf| () + (PROGN + (|htInitPage| + (MAKESTRING "C06FUF - 2-D complex discrete Fourier transform ") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc06fuf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06fuf| '|NagSeriesSummationPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| + . "Computes the two-dimensional discrete Fourier transform of ") + (|text| + . "a bivaraite sequence of complex data values; likely to be ") + (|text| . "efficient on vector processors. ") + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| + . "Enter the number of {\\it m} of rows of X and Y; ") + (|text| . "\\htbitmap{great=} 1 \\newline \\tab{2} ") + (|bcStrings| (5 3 |m| PI)) (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| + . "Enter the number of {\\it n} of columns of X and Y; ") + (|text| . "\\htbitmap{great=} 1 \\newline \\tab{2} ") + (|bcStrings| (5 5 |n| PI)) (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Type of call:") + (|radioButtons| |init| ("" " Initial" |i|) + ("" " Subsequent" |s|) ("" " Restart" |r|)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06fufSolve|) + (|htShowPage|))) + +;c06fufSolve htPage == +; m := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) +; objValUnwrap htpLabelSpadValue(htPage, 'm) +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; call := htpButtonValue(htPage,'init) +; init := +; call = 'i => '"i" +; call = 's => '"s" +; '"r" +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; (n = '5 and m = '3) => c06fufDefaultSolve(htPage,init,ifail) +; xList := +; "append"/[fx(i,m) for i in 1..n] where fx(i,n) == +; labelList := +; "append"/[gx(i,j) for j in 1..n] where gx(i,j) == +; xnam := INTERN STRCONC ('"x",STRINGIMAGE i, STRINGIMAGE j) +; [['bcStrings,[6, 0.0, xnam, 'F]]] +; prefix := ('"\newline \tab{2} ") +; labelList := [['text,:prefix],:labelList] +; yList := +; "append"/[fy(i,m) for i in 1..n] where fy(i,n) == +; labelList := +; "append"/[gy(i,j) for j in 1..n] where gy(i,j) == +; ynam := INTERN STRCONC ('"y",STRINGIMAGE i, STRINGIMAGE j) +; [['bcStrings,[6, 0.0, ynam, 'F]]] +; prefix := ('"\newline \tab{2} ") +; labelList := [['text,:prefix],:labelList] +; prefix := ('"\blankline \menuitemstyle{} \tab{2} Enter the imaginary parts ") +; prefix := STRCONC(prefix,"of each sequence to be transformed, {\it y}. ") +; prefix := STRCONC(prefix,"(Each column to contain the imaginary parts ") +; prefix := STRCONC(prefix,"of a sequence.) \newline \tab{2} ") +; yList := [['text,:prefix],:yList] +; trigmList := +; "append"/[hm(k) for k in 1..(2*m)] where hm(k) == +; prefix := ("\newline \tab{2} ") +; trignam := INTERN STRCONC ('"tm",STRINGIMAGE k) +; [['text,:prefix],['bcStrings,[6, "0.0", trignam, 'F]]] +; prefix := ('"\blankline \menuitemstyle{} \tab{2} Trignometric coefficients ") +; prefix := STRCONC(prefix,"(not required if initial call) {\it TRIGM}: ") +; prefix := STRCONC(prefix,"\newline \tab{2} ") +; trigmList := [['text,:prefix],:trigmList] +; trignList := +; "append"/[hn(k) for k in 1..(2*n)] where hn(k) == +; prefix := ("\newline \tab{2} ") +; trignam := INTERN STRCONC ('"tn",STRINGIMAGE k) +; [['text,:prefix],['bcStrings,[6, "0.0", trignam, 'F]]] +; prefix := ('"\blankline \menuitemstyle{} \tab{2} {\it TRIGN}: ") +; prefix := STRCONC(prefix,"\newline \tab{2} ") +; trignList := [['text,:prefix],:trignList] +; equationPart := [ +; '(domainConditions +; (isDomain F (Float))), +; :xList,:yList,:trigmList,:trignList] +; page := htInitPage("C06FUF - 2-D complex discrete Fourier transform ", htpPropertyList htPage) +; htSay '"\menuitemstyle{} \tab{2} " +; htSay '"Enter the real part of each sequence to be transformed, {\it x}. " +; htSay '"(Each column to contain the real parts of a sequence.) " +; htMakePage equationPart +; htMakeDoneButton('"Continue",'c06fufGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'m,m) +; htpSetProperty(page,'init,init) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06fufSolve,gx| (|i| |j|) + (PROG (|xnam|) + (RETURN + (SEQ (SPADLET |xnam| + (INTERN (STRCONC (MAKESTRING "x") (STRINGIMAGE |i|) + (STRINGIMAGE |j|)))) + (EXIT (CONS (CONS '|bcStrings| + (CONS (CONS 6 + (CONS 0.0 + (CONS |xnam| (CONS 'F NIL)))) + NIL)) + NIL)))))) + +(DEFUN |c06fufSolve,fx| (|i| |n|) + (PROG (|prefix| |labelList|) + (RETURN + (SEQ (SPADLET |labelList| + (PROG (G166756) + (SPADLET G166756 NIL) + (RETURN + (DO ((|j| 1 (QSADD1 |j|))) + ((QSGREATERP |j| |n|) G166756) + (SEQ (EXIT (SETQ G166756 + (APPEND G166756 + (|c06fufSolve,gx| |i| |j|))))))))) + (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} ")) + (EXIT (SPADLET |labelList| + (CONS (CONS '|text| |prefix|) |labelList|))))))) + +(DEFUN |c06fufSolve,gy| (|i| |j|) + (PROG (|ynam|) + (RETURN + (SEQ (SPADLET |ynam| + (INTERN (STRCONC (MAKESTRING "y") (STRINGIMAGE |i|) + (STRINGIMAGE |j|)))) + (EXIT (CONS (CONS '|bcStrings| + (CONS (CONS 6 + (CONS 0.0 + (CONS |ynam| (CONS 'F NIL)))) + NIL)) + NIL)))))) + +(DEFUN |c06fufSolve,fy| (|i| |n|) + (PROG (|prefix| |labelList|) + (RETURN + (SEQ (SPADLET |labelList| + (PROG (G166779) + (SPADLET G166779 NIL) + (RETURN + (DO ((|j| 1 (QSADD1 |j|))) + ((QSGREATERP |j| |n|) G166779) + (SEQ (EXIT (SETQ G166779 + (APPEND G166779 + (|c06fufSolve,gy| |i| |j|))))))))) + (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} ")) + (EXIT (SPADLET |labelList| + (CONS (CONS '|text| |prefix|) |labelList|))))))) + +(DEFUN |c06fufSolve,hm| (|k|) + (PROG (|prefix| |trignam|) + (RETURN + (SEQ (SPADLET |prefix| '|\\newline \\tab{2} |) + (SPADLET |trignam| + (INTERN (STRCONC (MAKESTRING "tm") + (STRINGIMAGE |k|)))) + (EXIT (CONS (CONS '|text| |prefix|) + (CONS (CONS '|bcStrings| + (CONS + (CONS 6 + (CONS '|0.0| + (CONS |trignam| (CONS 'F NIL)))) + NIL)) + NIL))))))) + +(DEFUN |c06fufSolve,hn| (|k|) + (PROG (|prefix| |trignam|) + (RETURN + (SEQ (SPADLET |prefix| '|\\newline \\tab{2} |) + (SPADLET |trignam| + (INTERN (STRCONC (MAKESTRING "tn") + (STRINGIMAGE |k|)))) + (EXIT (CONS (CONS '|text| |prefix|) + (CONS (CONS '|bcStrings| + (CONS + (CONS 6 + (CONS '|0.0| + (CONS |trignam| (CONS 'F NIL)))) + NIL)) + NIL))))))) + +(DEFUN |c06fufSolve| (|htPage|) + (PROG (|m| |n| |call| |init| |error| |ifail| |xList| |yList| + |trigmList| |prefix| |trignList| |equationPart| |page|) + (declare (special |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |m| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|m|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|m|))))) + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |call| (|htpButtonValue| |htPage| '|init|)) + (SPADLET |init| + (COND + ((BOOT-EQUAL |call| '|i|) (MAKESTRING "i")) + ((BOOT-EQUAL |call| '|s|) (MAKESTRING "s")) + ('T (MAKESTRING "r")))) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (COND + ((AND (BOOT-EQUAL |n| '5) (BOOT-EQUAL |m| '3)) + (|c06fufDefaultSolve| |htPage| |init| |ifail|)) + ('T + (SPADLET |xList| + (PROG (G166810) + (SPADLET G166810 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G166810) + (SEQ (EXIT + (SETQ G166810 + (APPEND G166810 + (|c06fufSolve,fx| |i| |m|))))))))) + (SPADLET |yList| + (PROG (G166818) + (SPADLET G166818 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G166818) + (SEQ (EXIT + (SETQ G166818 + (APPEND G166818 + (|c06fufSolve,fy| |i| |m|))))))))) + (SPADLET |prefix| + (MAKESTRING + "\\blankline \\menuitemstyle{} \\tab{2} Enter the imaginary parts ")) + (SPADLET |prefix| + (STRCONC |prefix| + '|of each sequence to be transformed, {\\it y}. |)) + (SPADLET |prefix| + (STRCONC |prefix| + '|(Each column to contain the imaginary parts |)) + (SPADLET |prefix| + (STRCONC |prefix| + '|of a sequence.) \\newline \\tab{2} |)) + (SPADLET |yList| + (CONS (CONS '|text| |prefix|) |yList|)) + (SPADLET |trigmList| + (PROG (G166826) + (SPADLET G166826 NIL) + (RETURN + (DO ((G166831 (TIMES 2 |m|)) + (|k| 1 (QSADD1 |k|))) + ((QSGREATERP |k| G166831) G166826) + (SEQ (EXIT + (SETQ G166826 + (APPEND G166826 + (|c06fufSolve,hm| |k|))))))))) + (SPADLET |prefix| + (MAKESTRING + "\\blankline \\menuitemstyle{} \\tab{2} Trignometric coefficients ")) + (SPADLET |prefix| + (STRCONC |prefix| + '|(not required if initial call) {\\it TRIGM}: |)) + (SPADLET |prefix| + (STRCONC |prefix| '|\\newline \\tab{2} |)) + (SPADLET |trigmList| + (CONS (CONS '|text| |prefix|) |trigmList|)) + (SPADLET |trignList| + (PROG (G166835) + (SPADLET G166835 NIL) + (RETURN + (DO ((G166840 (TIMES 2 |n|)) + (|k| 1 (QSADD1 |k|))) + ((QSGREATERP |k| G166840) G166835) + (SEQ (EXIT + (SETQ G166835 + (APPEND G166835 + (|c06fufSolve,hn| |k|))))))))) + (SPADLET |prefix| + (MAKESTRING + "\\blankline \\menuitemstyle{} \\tab{2} {\\it TRIGN}: ")) + (SPADLET |prefix| + (STRCONC |prefix| '|\\newline \\tab{2} |)) + (SPADLET |trignList| + (CONS (CONS '|text| |prefix|) |trignList|)) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| F (|Float|))) + (APPEND |xList| + (APPEND |yList| + (APPEND |trigmList| + |trignList|))))) + (SPADLET |page| + (|htInitPage| + '|C06FUF - 2-D complex discrete Fourier transform | + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING "\\menuitemstyle{} \\tab{2} ")) + (|htSay| (MAKESTRING + "Enter the real part of each sequence to be transformed, {\\it x}. ")) + (|htSay| (MAKESTRING + "(Each column to contain the real parts of a sequence.) ")) + (|htMakePage| |equationPart|) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c06fufGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|m| |m|) + (|htpSetProperty| |page| '|init| |init|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c06fufDefaultSolve (htPage, init,ifail) == +; n := '5 +; m := '3 +; page := htInitPage('"C06FUF - 2-D real discrete Fourier transform ",nil) +; htMakePage '( +; (domainConditions +; (isDomain F (Float))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "Enter the real parts of each sequence to be transformed, ") +; (text . "{\it x}. (Each column to contain the real parts of a sequence.) ") +; (text . "\newline \tab{2} ") +; (bcStrings (6 "1.000" x11 F)) +; (bcStrings (6 "0.994" x21 F)) +; (bcStrings (6 "0.903" x31 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.999" x12 F)) +; (bcStrings (6 "0.989" x22 F)) +; (bcStrings (6 "0.885" x32 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.987" x13 F)) +; (bcStrings (6 "0.963" x23 F)) +; (bcStrings (6 "0.823" x33 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.936" x14 F)) +; (bcStrings (6 "0.891" x24 F)) +; (bcStrings (6 "0.694" x34 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.802" x15 F)) +; (bcStrings (6 "0.731" x25 F)) +; (bcStrings (6 "0.467" x35 F)) +; (text . "\blankline ") +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} Enter the imaginary parts of each ") +; (text . "sequence to be transformed, {\it y}. (Each column to contain ") +; (text . "the imaginary parts of a sequence.) ") +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.000" y11 F)) +; (bcStrings (6 "-0.111" y21 F)) +; (bcStrings (6 "-0.430" y31 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "-0.040" y12 F)) +; (bcStrings (6 "-0.151" y22 F)) +; (bcStrings (6 "-0.466" y32 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "-0.159" y13 F)) +; (bcStrings (6 "-0.268" y23 F)) +; (bcStrings (6 "-0.568" y33 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "-0.352" y14 F)) +; (bcStrings (6 "-0.454" y24 F)) +; (bcStrings (6 "-0.720" y34 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "-0.597" y15 F)) +; (bcStrings (6 "-0.682" y25 F)) +; (bcStrings (6 "-0.884" y35 F)) +; (text . "\blankline ") +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "Trignometric coefficients (not required if initial call) ") +; (text . "{\it TRIGM}: \newline \tab{2} ") +; (bcStrings (6 "0.0" tm1 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tm2 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tm3 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tm4 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tm5 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tm6 F)) +; (text . "\blankline ") +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "{\it TRIGN}: \newline \tab{2} ") +; (bcStrings (6 "0.0" tn1 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tn2 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tn3 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tn4 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tn5 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tn6 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tn7 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tn8 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tn9 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.0" tn10 F)) +; (text . "\blankline ")) +; htMakeDoneButton('"Continue",'c06fufGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'m,m) +; htpSetProperty(page,'init,init) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06fufDefaultSolve| (|htPage| |init| |ifail|) + (PROG (|n| |m| |page|) + (RETURN + (PROGN + (SPADLET |n| '5) + (SPADLET |m| '3) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C06FUF - 2-D real discrete Fourier transform ") + NIL)) + (|htMakePage| + '((|domainConditions| (|isDomain| F (|Float|))) + (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| + . "Enter the real parts of each sequence to be transformed, ") + (|text| + . "{\\it x}. (Each column to contain the real parts of a sequence.) ") + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "1.000" |x11| F)) + (|bcStrings| (6 "0.994" |x21| F)) + (|bcStrings| (6 "0.903" |x31| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.999" |x12| F)) + (|bcStrings| (6 "0.989" |x22| F)) + (|bcStrings| (6 "0.885" |x32| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.987" |x13| F)) + (|bcStrings| (6 "0.963" |x23| F)) + (|bcStrings| (6 "0.823" |x33| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.936" |x14| F)) + (|bcStrings| (6 "0.891" |x24| F)) + (|bcStrings| (6 "0.694" |x34| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.802" |x15| F)) + (|bcStrings| (6 "0.731" |x25| F)) + (|bcStrings| (6 "0.467" |x35| F)) + (|text| . "\\blankline ") (|text| . "\\newline ") + (|text| + . "\\menuitemstyle{}\\tab{2} Enter the imaginary parts of each ") + (|text| + . "sequence to be transformed, {\\it y}. (Each column to contain ") + (|text| . "the imaginary parts of a sequence.) ") + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.000" |y11| F)) + (|bcStrings| (6 "-0.111" |y21| F)) + (|bcStrings| (6 "-0.430" |y31| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "-0.040" |y12| F)) + (|bcStrings| (6 "-0.151" |y22| F)) + (|bcStrings| (6 "-0.466" |y32| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "-0.159" |y13| F)) + (|bcStrings| (6 "-0.268" |y23| F)) + (|bcStrings| (6 "-0.568" |y33| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "-0.352" |y14| F)) + (|bcStrings| (6 "-0.454" |y24| F)) + (|bcStrings| (6 "-0.720" |y34| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "-0.597" |y15| F)) + (|bcStrings| (6 "-0.682" |y25| F)) + (|bcStrings| (6 "-0.884" |y35| F)) + (|text| . "\\blankline ") (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| + . "Trignometric coefficients (not required if initial call) ") + (|text| . "{\\it TRIGM}: \\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tm1| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tm2| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tm3| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tm4| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tm5| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tm6| F)) (|text| . "\\blankline ") + (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| . "{\\it TRIGN}: \\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tn1| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tn2| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tn3| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tn4| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tn5| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tn6| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tn7| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tn8| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tn9| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.0" |tn10| F)) + (|text| . "\\blankline "))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06fufGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|m| |m|) + (|htpSetProperty| |page| '|init| |init|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c06fufGen htPage == +; n := htpProperty(htPage,'n) +; m := htpProperty(htPage,'m) +; init := htpProperty(htPage,'init) +; ifail := htpProperty(htPage,'ifail) +; alist := htpInputAreaAlist htPage +; y := alist +; for i in 1..(2*n) repeat +; left := STRCONC((first y).1," ") +; y := rest y +; trignlist := [left,:trignlist] +; trignstring := bcwords2liststring trignlist +; for i in 1..(2*m) repeat +; left := STRCONC((first y).1," ") +; y := rest y +; trigmlist := [left,:trigmlist] +; trigmstring := bcwords2liststring trigmlist +; for i in 1..(m*n) repeat +; left := STRCONC((first y).1," ") +; y := rest y +; ylist := [left,:ylist] +; ystring := bcwords2liststring ylist +; while y repeat +; left := STRCONC((first y).1," ") +; y := rest y +; xlist := [left,:xlist] +; xstring := bcwords2liststring xlist +; prefix := STRCONC ('"c06fuf(",STRINGIMAGE m,", ",STRINGIMAGE n,", _"") +; prefix := STRCONC(prefix,init,"_",[",xstring,"],[",ystring,"],[",trigmstring) +; linkGen STRCONC(prefix,"],[",trignstring,"],",STRINGIMAGE ifail,")") + +(DEFUN |c06fufGen| (|htPage|) + (PROG (|n| |m| |init| |ifail| |alist| |trignlist| |trignstring| + |trigmlist| |trigmstring| |ylist| |ystring| |left| |y| + |xlist| |xstring| |prefix|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |m| (|htpProperty| |htPage| '|m|)) + (SPADLET |init| (|htpProperty| |htPage| '|init|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (DO ((G166893 (TIMES 2 |n|)) (|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| G166893) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |trignlist| + (CONS |left| |trignlist|)))))) + (SPADLET |trignstring| (|bcwords2liststring| |trignlist|)) + (DO ((G166903 (TIMES 2 |m|)) (|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| G166903) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |trigmlist| + (CONS |left| |trigmlist|)))))) + (SPADLET |trigmstring| (|bcwords2liststring| |trigmlist|)) + (DO ((G166913 (TIMES |m| |n|)) (|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| G166913) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |ylist| (CONS |left| |ylist|)))))) + (SPADLET |ystring| (|bcwords2liststring| |ylist|)) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |xlist| (CONS |left| |xlist|)))))) + (SPADLET |xstring| (|bcwords2liststring| |xlist|)) + (SPADLET |prefix| + (STRCONC (MAKESTRING "c06fuf(") (STRINGIMAGE |m|) + '|, | (STRINGIMAGE |n|) '|, "|)) + (SPADLET |prefix| + (STRCONC |prefix| |init| '|",[| |xstring| '|],[| + |ystring| '|],[| |trigmstring|)) + (|linkGen| + (STRCONC |prefix| '|],[| |trignstring| '|],| + (STRINGIMAGE |ifail|) '|)|))))))) + +;c06gbf() == +; htInitPage('"C06GBF - Complex conjugate of a Hermitian sequence ",nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc06gbf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06gbf| '|NagSeriesSummationPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "Forms the complex conjugate of a Hermitian sequence of {\it n} data values") +; (text . "\newline ") +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of data values {\it n} ") +; (text . "\space{1} \inputbitmap{\htbmdir{}/great=.bitmap} 1 ") +; (text . "\newline\tab{2} ") +; (bcStrings (5 7 n PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c06gbfSolve) +; htShowPage() + +(DEFUN |c06gbf| () + (PROGN + (|htInitPage| + (MAKESTRING + "C06GBF - Complex conjugate of a Hermitian sequence ") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc06gbf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06gbf| '|NagSeriesSummationPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| + . "Forms the complex conjugate of a Hermitian sequence of {\\it n} data values") + (|text| . "\\newline ") (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Enter the number of data values {\\it n} ") + (|text| + . "\\space{1} \\inputbitmap{\\htbmdir{}/great=.bitmap} 1 ") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 7 |n| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06gbfSolve|) + (|htShowPage|))) + +;c06gbfSolve htPage == +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; n = '7 => c06gbfDefaultSolve(htPage,ifail) +; labelList := +; "append"/[f(i) for i in 1..n] where f(i) == +; prefix := ('"\newline \tab{15} ") +; rnam := INTERN STRCONC ('"r",STRINGIMAGE i) +; [['text,:prefix],['bcStrings,[10, 0.0, rnam, 'F]]] +; equationPart := [ +; '(domainConditions +; (isDomain F (Float))), +; :labelList] +; page := htInitPage("C06GBF - Complex conjugate of a Hermitian sequence ", htpPropertyList htPage) +; htSay '"\menuitemstyle{} \tab{2} " +; htSay '"Enter the Hermitian sequence to be transformed stored in Hermitian form: " +; htMakePage equationPart +; htSay '"\blankline " +; htSay '"Note : On exit, the imaginary values are negated " +; htSay '"\blankline " +; htMakeDoneButton('"Continue",'c06gbfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06gbfSolve,f| (|i|) + (PROG (|prefix| |rnam|) + (RETURN + (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{15} ")) + (SPADLET |rnam| + (INTERN (STRCONC (MAKESTRING "r") + (STRINGIMAGE |i|)))) + (EXIT (CONS (CONS '|text| |prefix|) + (CONS (CONS '|bcStrings| + (CONS + (CONS 10 + (CONS 0.0 + (CONS |rnam| (CONS 'F NIL)))) + NIL)) + NIL))))))) + +(DEFUN |c06gbfSolve| (|htPage|) + (PROG (|n| |error| |ifail| |labelList| |equationPart| |page|) + (declare (special |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (COND + ((BOOT-EQUAL |n| '7) + (|c06gbfDefaultSolve| |htPage| |ifail|)) + ('T + (SPADLET |labelList| + (PROG (G166967) + (SPADLET G166967 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G166967) + (SEQ (EXIT + (SETQ G166967 + (APPEND G166967 + (|c06gbfSolve,f| |i|))))))))) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| F (|Float|))) + |labelList|)) + (SPADLET |page| + (|htInitPage| + '|C06GBF - Complex conjugate of a Hermitian sequence | + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING "\\menuitemstyle{} \\tab{2} ")) + (|htSay| (MAKESTRING + "Enter the Hermitian sequence to be transformed stored in Hermitian form: ")) + (|htMakePage| |equationPart|) + (|htSay| (MAKESTRING "\\blankline ")) + (|htSay| (MAKESTRING + "Note : On exit, the imaginary values are negated ")) + (|htSay| (MAKESTRING "\\blankline ")) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c06gbfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c06gbfDefaultSolve (htPage, ifail) == +; n := '7 +; page := htInitPage('"C06GBF - Complex conjugate of a Hermitian sequence ", nil) +; htMakePage '( +; (domainConditions +; (isDomain F (Float))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "Enter the Hermitian sequence to be transformed ") +; (text . "stored in Hermitian form: ") +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.34907" r1 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.54890" r2 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.74776" r3 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.94459" r4 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "1.13850" r5 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "1.32850" r6 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "1.51370" r7 F)) +; (text . "\blankline ") +; (text . "Note : On exit, the imaginary values are negated ") +; (text . "\blankline ")) +; htMakeDoneButton('"Continue",'c06gbfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06gbfDefaultSolve| (|htPage| |ifail|) + (PROG (|n| |page|) + (RETURN + (PROGN + (SPADLET |n| '7) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C06GBF - Complex conjugate of a Hermitian sequence ") + NIL)) + (|htMakePage| + '((|domainConditions| (|isDomain| F (|Float|))) + (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| + . "Enter the Hermitian sequence to be transformed ") + (|text| . "stored in Hermitian form: ") + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.34907" |r1| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.54890" |r2| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.74776" |r3| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.94459" |r4| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "1.13850" |r5| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "1.32850" |r6| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "1.51370" |r7| F)) + (|text| . "\\blankline ") + (|text| + . "Note : On exit, the imaginary values are negated ") + (|text| . "\\blankline "))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06gbfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c06gbfGen htPage == +; n := htpProperty(htPage,'n) +; ifail := htpProperty(htPage,'ifail) +; alist := htpInputAreaAlist htPage +; y := alist +; while y repeat +; left := STRCONC((first y).1," ") +; y := rest y +; reallist := [left,:reallist] +; realstring := bcwords2liststring reallist +; linkGen STRCONC ('"c06gbf(",STRINGIMAGE n,",[",realstring,"],",STRINGIMAGE ifail,")") + +(DEFUN |c06gbfGen| (|htPage|) + (PROG (|n| |ifail| |alist| |left| |y| |reallist| |realstring|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |reallist| + (CONS |left| |reallist|)))))) + (SPADLET |realstring| (|bcwords2liststring| |reallist|)) + (|linkGen| + (STRCONC (MAKESTRING "c06gbf(") (STRINGIMAGE |n|) + '|,[| |realstring| '|],| + (STRINGIMAGE |ifail|) '|)|))))))) + +;c06gcf() == +; htInitPage('"C06GCF - Complex conjugate of complex sequence ",nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc06gcf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06gcf| '|NagSeriesSummationPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "\newline ") +; (text . "Forms the complex conjugate of a sequence of {\it n} data values") +; (text . "\newline ") +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number of data values {\it n} ") +; (text . "\space{1} \inputbitmap{\htbmdir{}/great=.bitmap} 1 ") +; (text . "\newline\tab{2} ") +; (bcStrings (5 7 n PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c06gcfSolve) +; htShowPage() + +(DEFUN |c06gcf| () + (PROGN + (|htInitPage| + (MAKESTRING "C06GCF - Complex conjugate of complex sequence ") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc06gcf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06gcf| '|NagSeriesSummationPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| . "\\newline ") + (|text| + . "Forms the complex conjugate of a sequence of {\\it n} data values") + (|text| . "\\newline ") (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Enter the number of data values {\\it n} ") + (|text| + . "\\space{1} \\inputbitmap{\\htbmdir{}/great=.bitmap} 1 ") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 7 |n| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06gcfSolve|) + (|htShowPage|))) + +;c06gcfSolve htPage == +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; n = '7 => c06gcfDefaultSolve(htPage,ifail) +; labelList := +; "append"/[f(i) for i in 1..n] where f(i) == +; prefix := ('"\newline \tab{15} ") +; rnam := INTERN STRCONC ('"r",STRINGIMAGE i) +; [['text,:prefix],['bcStrings,[10, 0.0, rnam, 'F]]] +; equationPart := [ +; '(domainConditions +; (isDomain F (Float))), +; :labelList] +; page := htInitPage("C06GCF - Complex conjugate of a Hermitian sequence ", htpPropertyList htPage) +; htSay '"\menuitemstyle{} \tab{2} " +; htSay '"Enter the imaginary parts of the sequence: " +; htMakePage equationPart +; htSay '"\blankline " +; htSay '"Note : On exit, these values are negated " +; htSay '"\blankline " +; htMakeDoneButton('"Continue",'c06gcfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06gcfSolve,f| (|i|) + (PROG (|prefix| |rnam|) + (RETURN + (SEQ (SPADLET |prefix| (MAKESTRING "\\newline \\tab{15} ")) + (SPADLET |rnam| + (INTERN (STRCONC (MAKESTRING "r") + (STRINGIMAGE |i|)))) + (EXIT (CONS (CONS '|text| |prefix|) + (CONS (CONS '|bcStrings| + (CONS + (CONS 10 + (CONS 0.0 + (CONS |rnam| (CONS 'F NIL)))) + NIL)) + NIL))))))) + +(DEFUN |c06gcfSolve| (|htPage|) + (PROG (|n| |error| |ifail| |labelList| |equationPart| |page|) + (declare (special |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (COND + ((BOOT-EQUAL |n| '7) + (|c06gcfDefaultSolve| |htPage| |ifail|)) + ('T + (SPADLET |labelList| + (PROG (G167027) + (SPADLET G167027 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G167027) + (SEQ (EXIT + (SETQ G167027 + (APPEND G167027 + (|c06gcfSolve,f| |i|))))))))) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| F (|Float|))) + |labelList|)) + (SPADLET |page| + (|htInitPage| + '|C06GCF - Complex conjugate of a Hermitian sequence | + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING "\\menuitemstyle{} \\tab{2} ")) + (|htSay| (MAKESTRING + "Enter the imaginary parts of the sequence: ")) + (|htMakePage| |equationPart|) + (|htSay| (MAKESTRING "\\blankline ")) + (|htSay| (MAKESTRING + "Note : On exit, these values are negated ")) + (|htSay| (MAKESTRING "\\blankline ")) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c06gcfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c06gcfDefaultSolve (htPage, ifail) == +; n := '7 +; page := htInitPage('"C06GCF - Complex conjugate of complex sequence ", nil) +; htMakePage '( +; (domainConditions +; (isDomain F (Float))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} ") +; (text . "Enter the imaginary parts of the sequence: ") +; (text . "\newline \tab{15} ") +; (bcStrings (10 "-0.37168" r1 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "-0.35669" r2 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "-0.31175" r3 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "-0.23702" r4 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.00074" r5 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "0.16298" r6 F)) +; (text . "\newline \tab{15} ") +; (bcStrings (10 "1.51370" r7 F)) +; (text . "\blankline ") +; (text . "Note : On exit, these values are negated ") +; (text . "\blankline ")) +; htMakeDoneButton('"Continue",'c06gcfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06gcfDefaultSolve| (|htPage| |ifail|) + (PROG (|n| |page|) + (RETURN + (PROGN + (SPADLET |n| '7) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C06GCF - Complex conjugate of complex sequence ") + NIL)) + (|htMakePage| + '((|domainConditions| (|isDomain| F (|Float|))) + (|text| . "\\newline ") + (|text| . "\\menuitemstyle{}\\tab{2} ") + (|text| . "Enter the imaginary parts of the sequence: ") + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "-0.37168" |r1| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "-0.35669" |r2| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "-0.31175" |r3| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "-0.23702" |r4| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.00074" |r5| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "0.16298" |r6| F)) + (|text| . "\\newline \\tab{15} ") + (|bcStrings| (10 "1.51370" |r7| F)) + (|text| . "\\blankline ") + (|text| . "Note : On exit, these values are negated ") + (|text| . "\\blankline "))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06gcfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c06gcfGen htPage == +; n := htpProperty(htPage,'n) +; ifail := htpProperty(htPage,'ifail) +; alist := htpInputAreaAlist htPage +; y := alist +; while y repeat +; left := STRCONC((first y).1," ") +; y := rest y +; reallist := [left,:reallist] +; realstring := bcwords2liststring reallist +; linkGen STRCONC ('"c06gcf(",STRINGIMAGE n,",[",realstring,"],",STRINGIMAGE ifail,")") + +(DEFUN |c06gcfGen| (|htPage|) + (PROG (|n| |ifail| |alist| |left| |y| |reallist| |realstring|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (SPADLET |left| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |reallist| + (CONS |left| |reallist|)))))) + (SPADLET |realstring| (|bcwords2liststring| |reallist|)) + (|linkGen| + (STRCONC (MAKESTRING "c06gcf(") (STRINGIMAGE |n|) + '|,[| |realstring| '|],| + (STRINGIMAGE |ifail|) '|)|))))))) + +;c06gqf() == +; htInitPage('"C06GQF - Complex conjugate of multiple Hermitian sequences ",nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc06gqf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06gqf| '|NagSeriesSummationPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "Forms the complex conjugates of {\it m} Hermitian sequences, ") +; (text . "each containing {\it n} data values. ") +; (text . "\newline ") +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number {\it m} \inputbitmap{\htbmdir{}/great=.bitmap} 1 ") +; (text . "of sequences to be tranformed: ") +; (text . "\newline\tab{2} ") +; (bcStrings (5 3 m PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number {\it n} \inputbitmap{\htbmdir{}/great=.bitmap} 1 ") +; (text . "of data values in each sequence: ") +; (text . "\newline\tab{2} ") +; (bcStrings (5 6 n PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c06gqfSolve) +; htShowPage() + +(DEFUN |c06gqf| () + (PROGN + (|htInitPage| + (MAKESTRING + "C06GQF - Complex conjugate of multiple Hermitian sequences ") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc06gqf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06gqf| '|NagSeriesSummationPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| + . "Forms the complex conjugates of {\\it m} Hermitian sequences, ") + (|text| . "each containing {\\it n} data values. ") + (|text| . "\\newline ") (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| + . "Enter the number {\\it m} \\inputbitmap{\\htbmdir{}/great=.bitmap} 1 ") + (|text| . "of sequences to be tranformed: ") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 3 |m| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| + . "Enter the number {\\it n} \\inputbitmap{\\htbmdir{}/great=.bitmap} 1 ") + (|text| . "of data values in each sequence: ") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 6 |n| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06gqfSolve|) + (|htShowPage|))) + +;c06gqfSolve htPage == +; m := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) +; objValUnwrap htpLabelSpadValue(htPage, 'm) +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; (m = '3 and n = '6) => c06gqfDefaultSolve(htPage,ifail) +; newList:= +; "append"/[g(i,m) for i in 1..n] where g(i,n) == +; labelList := +; "append"/[f(i,j) for j in 1..n] where f(i,j) == +; rnam := INTERN STRCONC ('"r",STRINGIMAGE i,STRINGIMAGE j) +; [['bcStrings,[6, 0.0, rnam, 'P]]] +; prefix := ('"\newline \tab{2} ") +; labelList := [['text,:prefix],:labelList] +; equationPart := [ +; '(domainConditions +; (isDomain P (Polynomial $EmptyMode)) +; (isDomain S (String)) +; (isDomain F (Float)) +; (isDomain PI (PositiveInteger))), +; :newList] +; page := htInitPage("C06GQF - Complex conjugate of multiple Hermitian sequences ",htpPropertyList htPage) +; htSay '"\newline " +; htSay '"\menuitemstyle{}\tab{2} Please enter each sequence to be " +; htSay '"transformed in Hermitian format. (Each column to contain " +; htSay '"a sequence.) " +; htMakePage equationPart +; htSay '"\blankline " +; htMakeDoneButton('"Continue",'c06gqfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'m,m) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06gqfSolve,f| (|i| |j|) + (PROG (|rnam|) + (RETURN + (SEQ (SPADLET |rnam| + (INTERN (STRCONC (MAKESTRING "r") (STRINGIMAGE |i|) + (STRINGIMAGE |j|)))) + (EXIT (CONS (CONS '|bcStrings| + (CONS (CONS 6 + (CONS 0.0 + (CONS |rnam| (CONS 'P NIL)))) + NIL)) + NIL)))))) + +(DEFUN |c06gqfSolve,g| (|i| |n|) + (PROG (|prefix| |labelList|) + (RETURN + (SEQ (SPADLET |labelList| + (PROG (G167087) + (SPADLET G167087 NIL) + (RETURN + (DO ((|j| 1 (QSADD1 |j|))) + ((QSGREATERP |j| |n|) G167087) + (SEQ (EXIT (SETQ G167087 + (APPEND G167087 + (|c06gqfSolve,f| |i| |j|))))))))) + (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} ")) + (EXIT (SPADLET |labelList| + (CONS (CONS '|text| |prefix|) |labelList|))))))) + +(DEFUN |c06gqfSolve| (|htPage|) + (PROG (|m| |n| |error| |ifail| |newList| |equationPart| |page|) + (declare (special |$EmptyMode| |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |m| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|m|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|m|))))) + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (COND + ((AND (BOOT-EQUAL |m| '3) (BOOT-EQUAL |n| '6)) + (|c06gqfDefaultSolve| |htPage| |ifail|)) + ('T + (SPADLET |newList| + (PROG (G167104) + (SPADLET G167104 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G167104) + (SEQ (EXIT + (SETQ G167104 + (APPEND G167104 + (|c06gqfSolve,g| |i| |m|))))))))) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| P + (|Polynomial| |$EmptyMode|)) + (|isDomain| S (|String|)) + (|isDomain| F (|Float|)) + (|isDomain| PI (|PositiveInteger|))) + |newList|)) + (SPADLET |page| + (|htInitPage| + '|C06GQF - Complex conjugate of multiple Hermitian sequences | + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING "\\newline ")) + (|htSay| (MAKESTRING + "\\menuitemstyle{}\\tab{2} Please enter each sequence to be ")) + (|htSay| (MAKESTRING + "transformed in Hermitian format. (Each column to contain ")) + (|htSay| (MAKESTRING "a sequence.) ")) + (|htMakePage| |equationPart|) + (|htSay| (MAKESTRING "\\blankline ")) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c06gqfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|m| |m|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c06gqfDefaultSolve (htPage, ifail) == +; m := '3 +; n := '6 +; page := htInitPage('"C06GQF - Complex conjugate of multiple Hermitian sequences ",htpPropertyList htPage) +; htMakePage '( +; (domainConditions +; (isDomain F (Float))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} Please enter each sequence to be ") +; (text . "transformed in Hermitian format. ") +; (text . "(Each column to contain a sequence.) ") +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.3854" x11 F)) +; (bcStrings (6 "0.5417" x21 F)) +; (bcStrings (6 "0.9172" x31 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6772" x12 F)) +; (bcStrings (6 "0.2983" x22 F)) +; (bcStrings (6 "0.0644" x32 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.1138" x13 F)) +; (bcStrings (6 "0.1181" x23 F)) +; (bcStrings (6 "0.6037" x33 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6751" x14 F)) +; (bcStrings (6 "0.7255" x24 F)) +; (bcStrings (6 "0.6430" x34 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6362" x15 F)) +; (bcStrings (6 "0.8638" x25 F)) +; (bcStrings (6 "0.0428" x35 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.1424" x16 F)) +; (bcStrings (6 "0.8723" y26 F)) +; (bcStrings (6 "0.4815" y36 F)) +; (text . "\blankline")) +; htMakeDoneButton('"Continue",'c06gqfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'m,m) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06gqfDefaultSolve| (|htPage| |ifail|) + (PROG (|m| |n| |page|) + (RETURN + (PROGN + (SPADLET |m| '3) + (SPADLET |n| '6) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C06GQF - Complex conjugate of multiple Hermitian sequences ") + (|htpPropertyList| |htPage|))) + (|htMakePage| + '((|domainConditions| (|isDomain| F (|Float|))) + (|text| . "\\newline ") + (|text| + . "\\menuitemstyle{}\\tab{2} Please enter each sequence to be ") + (|text| . "transformed in Hermitian format. ") + (|text| . "(Each column to contain a sequence.) ") + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.3854" |x11| F)) + (|bcStrings| (6 "0.5417" |x21| F)) + (|bcStrings| (6 "0.9172" |x31| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6772" |x12| F)) + (|bcStrings| (6 "0.2983" |x22| F)) + (|bcStrings| (6 "0.0644" |x32| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.1138" |x13| F)) + (|bcStrings| (6 "0.1181" |x23| F)) + (|bcStrings| (6 "0.6037" |x33| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6751" |x14| F)) + (|bcStrings| (6 "0.7255" |x24| F)) + (|bcStrings| (6 "0.6430" |x34| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6362" |x15| F)) + (|bcStrings| (6 "0.8638" |x25| F)) + (|bcStrings| (6 "0.0428" |x35| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.1424" |x16| F)) + (|bcStrings| (6 "0.8723" |y26| F)) + (|bcStrings| (6 "0.4815" |y36| F)) + (|text| . "\\blankline"))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06gqfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|m| |m|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c06gqfGen htPage == +; n := htpProperty(htPage,'n) +; m := htpProperty(htPage,'m) +; ifail := htpProperty(htPage,'ifail) +; alist := htpInputAreaAlist htPage +; y := alist +; while y repeat +; right := STRCONC ((first y).1," ") +; y := rest y +; reallist := [right,:reallist] +; realstring := bcwords2liststring reallist +; linkGen STRCONC ('"c06gqf(",STRINGIMAGE m,",",STRINGIMAGE n,",[",realstring,"],", STRINGIMAGE ifail,")") + +(DEFUN |c06gqfGen| (|htPage|) + (PROG (|n| |m| |ifail| |alist| |right| |y| |reallist| |realstring|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |m| (|htpProperty| |htPage| '|m|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (SPADLET |right| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |reallist| + (CONS |right| |reallist|)))))) + (SPADLET |realstring| (|bcwords2liststring| |reallist|)) + (|linkGen| + (STRCONC (MAKESTRING "c06gqf(") (STRINGIMAGE |m|) '|,| + (STRINGIMAGE |n|) '|,[| |realstring| '|],| + (STRINGIMAGE |ifail|) '|)|))))))) + +;c06gsf() == +; htInitPage('"C06GSF - Convert Hermitian sequences to general complex sequences", nil) +; htMakePage '( +; (domainConditions +; (isDomain PI (PositiveInteger))) +; (text . "\windowlink{Manual Page}{manpageXXc06gsf} for this routine ") +; (text . "\newline ") +; (text . "\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06gsf| '|NagSeriesSummationPackage|)} for this routine") +; (text . "\newline \horizontalline ") +; (text . "Takes {\it m} Hermitian sequences, each containing {\it n} data values, ") +; (text . "and forms the real and imaginary parts of the {\it m} ") +; (text . "corresponding complex sequences. \newline ") +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number {\it m} \inputbitmap{\htbmdir{}/great=.bitmap} 1 ") +; (text . "of sequences to be transformed: ") +; (text . "\newline\tab{2} ") +; (bcStrings (5 3 m PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Enter the number {\it n} \inputbitmap{\htbmdir{}/great=.bitmap} 1 ") +; (text . "of data values in each sequence: ") +; (text . "\newline\tab{2} ") +; (bcStrings (5 6 n PI)) +; (text . "\blankline ") +; (text . "\menuitemstyle{} \tab{2} ") +; (text . "Ifail value:") +; (radioButtons ifail +; ("" " -1, Print error messages" minusOne) +; ("" " 1, Suppress error messages" one))) +; htMakeDoneButton('"Continue", 'c06gsfSolve) +; htShowPage() + +(DEFUN |c06gsf| () + (PROGN + (|htInitPage| + (MAKESTRING + "C06GSF - Convert Hermitian sequences to general complex sequences") + NIL) + (|htMakePage| + '((|domainConditions| (|isDomain| PI (|PositiveInteger|))) + (|text| + . "\\windowlink{Manual Page}{manpageXXc06gsf} for this routine ") + (|text| . "\\newline ") + (|text| + . "\\lispwindowlink{Browser operation page}{(|oPageFrom| '|c06gsf| '|NagSeriesSummationPackage|)} for this routine") + (|text| . "\\newline \\horizontalline ") + (|text| + . "Takes {\\it m} Hermitian sequences, each containing {\\it n} data values, ") + (|text| + . "and forms the real and imaginary parts of the {\\it m} ") + (|text| . "corresponding complex sequences. \\newline ") + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| + . "Enter the number {\\it m} \\inputbitmap{\\htbmdir{}/great=.bitmap} 1 ") + (|text| . "of sequences to be transformed: ") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 3 |m| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| + . "Enter the number {\\it n} \\inputbitmap{\\htbmdir{}/great=.bitmap} 1 ") + (|text| . "of data values in each sequence: ") + (|text| . "\\newline\\tab{2} ") (|bcStrings| (5 6 |n| PI)) + (|text| . "\\blankline ") + (|text| . "\\menuitemstyle{} \\tab{2} ") + (|text| . "Ifail value:") + (|radioButtons| |ifail| + ("" " -1, Print error messages" |minusOne|) + ("" " 1, Suppress error messages" |one|)))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06gsfSolve|) + (|htShowPage|))) + +;c06gsfSolve htPage == +; m := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'm) +; objValUnwrap htpLabelSpadValue(htPage, 'm) +; n := +; $bcParseOnly => PARSE_-INTEGER htpLabelInputString(htPage, 'n) +; objValUnwrap htpLabelSpadValue(htPage, 'n) +; error := htpButtonValue(htPage,'ifail) +; ifail := +; error = 'one => '1 +; '-1 +; (m = '3 and n = '6) => c06gsfDefaultSolve(htPage,ifail) +; newList:= +; "append"/[g(i,m) for i in 1..n] where g(i,n) == +; labelList := +; "append"/[f(i,j) for j in 1..n] where f(i,j) == +; rnam := INTERN STRCONC ('"r",STRINGIMAGE i,STRINGIMAGE j) +; [['bcStrings,[6, 0.0, rnam, 'P]]] +; prefix := ('"\newline \tab{2} ") +; labelList := [['text,:prefix],:labelList] +; equationPart := [ +; '(domainConditions +; (isDomain P (Polynomial $EmptyMode)) +; (isDomain S (String)) +; (isDomain F (Float)) +; (isDomain PI (PositiveInteger))), +; :newList] +; page := htInitPage("C06GSF - Convert Hermitian sequences to general complex sequences ",htpPropertyList htPage) +; htSay '"\newline " +; htSay '"\menuitemstyle{}\tab{2} Please enter each sequence to be " +; htSay '"transformed in Hermitian format. (Each column to contain a " +; htSay '"sequence.) " +; htMakePage equationPart +; htSay '"\blankline " +; htMakeDoneButton('"Continue",'c06gsfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'m,m) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06gsfSolve,f| (|i| |j|) + (PROG (|rnam|) + (RETURN + (SEQ (SPADLET |rnam| + (INTERN (STRCONC (MAKESTRING "r") (STRINGIMAGE |i|) + (STRINGIMAGE |j|)))) + (EXIT (CONS (CONS '|bcStrings| + (CONS (CONS 6 + (CONS 0.0 + (CONS |rnam| (CONS 'P NIL)))) + NIL)) + NIL)))))) + +(DEFUN |c06gsfSolve,g| (|i| |n|) + (PROG (|prefix| |labelList|) + (RETURN + (SEQ (SPADLET |labelList| + (PROG (G167167) + (SPADLET G167167 NIL) + (RETURN + (DO ((|j| 1 (QSADD1 |j|))) + ((QSGREATERP |j| |n|) G167167) + (SEQ (EXIT (SETQ G167167 + (APPEND G167167 + (|c06gsfSolve,f| |i| |j|))))))))) + (SPADLET |prefix| (MAKESTRING "\\newline \\tab{2} ")) + (EXIT (SPADLET |labelList| + (CONS (CONS '|text| |prefix|) |labelList|))))))) + +(DEFUN |c06gsfSolve| (|htPage|) + (PROG (|m| |n| |error| |ifail| |newList| |equationPart| |page|) + (declare (special |$EmptyMode| |$bcParseOnly|)) + (RETURN + (SEQ (PROGN + (SPADLET |m| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|m|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|m|))))) + (SPADLET |n| + (COND + (|$bcParseOnly| + (PARSE-INTEGER + (|htpLabelInputString| |htPage| '|n|))) + ('T + (|objValUnwrap| + (|htpLabelSpadValue| |htPage| '|n|))))) + (SPADLET |error| (|htpButtonValue| |htPage| '|ifail|)) + (SPADLET |ifail| + (COND ((BOOT-EQUAL |error| '|one|) '1) ('T '-1))) + (COND + ((AND (BOOT-EQUAL |m| '3) (BOOT-EQUAL |n| '6)) + (|c06gsfDefaultSolve| |htPage| |ifail|)) + ('T + (SPADLET |newList| + (PROG (G167184) + (SPADLET G167184 NIL) + (RETURN + (DO ((|i| 1 (QSADD1 |i|))) + ((QSGREATERP |i| |n|) G167184) + (SEQ (EXIT + (SETQ G167184 + (APPEND G167184 + (|c06gsfSolve,g| |i| |m|))))))))) + (SPADLET |equationPart| + (CONS '(|domainConditions| + (|isDomain| P + (|Polynomial| |$EmptyMode|)) + (|isDomain| S (|String|)) + (|isDomain| F (|Float|)) + (|isDomain| PI (|PositiveInteger|))) + |newList|)) + (SPADLET |page| + (|htInitPage| + '|C06GSF - Convert Hermitian sequences to general complex sequences | + (|htpPropertyList| |htPage|))) + (|htSay| (MAKESTRING "\\newline ")) + (|htSay| (MAKESTRING + "\\menuitemstyle{}\\tab{2} Please enter each sequence to be ")) + (|htSay| (MAKESTRING + "transformed in Hermitian format. (Each column to contain a ")) + (|htSay| (MAKESTRING "sequence.) ")) + (|htMakePage| |equationPart|) + (|htSay| (MAKESTRING "\\blankline ")) + (|htMakeDoneButton| (MAKESTRING "Continue") + '|c06gsfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|m| |m|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|)))))))) + +;c06gsfDefaultSolve (htPage, ifail) == +; m := '3 +; n := '6 +; page := htInitPage('"C06GSF - Convert Hermitian sequences to general complex sequences ",htpPropertyList htPage) +; htMakePage '( +; (domainConditions +; (isDomain F (Float))) +; (text . "\newline ") +; (text . "\menuitemstyle{}\tab{2} Please enter each sequence to be ") +; (text . "transformed in Hermitian format. (Each column to contain a ") +; (text . "sequence.) ") +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.3854" x11 F)) +; (bcStrings (6 "0.5417" x21 F)) +; (bcStrings (6 "0.9172" x31 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6772" x12 F)) +; (bcStrings (6 "0.2983" x22 F)) +; (bcStrings (6 "0.0644" x32 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.1138" x13 F)) +; (bcStrings (6 "0.1181" x23 F)) +; (bcStrings (6 "0.6037" x33 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6751" x14 F)) +; (bcStrings (6 "0.7255" x24 F)) +; (bcStrings (6 "0.6430" x34 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.6362" x15 F)) +; (bcStrings (6 "0.8638" x25 F)) +; (bcStrings (6 "0.0428" x35 F)) +; (text . "\newline \tab{2} ") +; (bcStrings (6 "0.1424" x16 F)) +; (bcStrings (6 "0.8723" y26 F)) +; (bcStrings (6 "0.4815" y36 F)) +; (text . "\blankline")) +; htMakeDoneButton('"Continue",'c06gsfGen) +; htpSetProperty(page,'n,n) +; htpSetProperty(page,'m,m) +; htpSetProperty(page,'ifail,ifail) +; htpSetProperty(page,'inputArea, htpInputAreaAlist htPage) +; htShowPage() + +(DEFUN |c06gsfDefaultSolve| (|htPage| |ifail|) + (PROG (|m| |n| |page|) + (RETURN + (PROGN + (SPADLET |m| '3) + (SPADLET |n| '6) + (SPADLET |page| + (|htInitPage| + (MAKESTRING + "C06GSF - Convert Hermitian sequences to general complex sequences ") + (|htpPropertyList| |htPage|))) + (|htMakePage| + '((|domainConditions| (|isDomain| F (|Float|))) + (|text| . "\\newline ") + (|text| + . "\\menuitemstyle{}\\tab{2} Please enter each sequence to be ") + (|text| + . "transformed in Hermitian format. (Each column to contain a ") + (|text| . "sequence.) ") (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.3854" |x11| F)) + (|bcStrings| (6 "0.5417" |x21| F)) + (|bcStrings| (6 "0.9172" |x31| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6772" |x12| F)) + (|bcStrings| (6 "0.2983" |x22| F)) + (|bcStrings| (6 "0.0644" |x32| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.1138" |x13| F)) + (|bcStrings| (6 "0.1181" |x23| F)) + (|bcStrings| (6 "0.6037" |x33| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6751" |x14| F)) + (|bcStrings| (6 "0.7255" |x24| F)) + (|bcStrings| (6 "0.6430" |x34| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.6362" |x15| F)) + (|bcStrings| (6 "0.8638" |x25| F)) + (|bcStrings| (6 "0.0428" |x35| F)) + (|text| . "\\newline \\tab{2} ") + (|bcStrings| (6 "0.1424" |x16| F)) + (|bcStrings| (6 "0.8723" |y26| F)) + (|bcStrings| (6 "0.4815" |y36| F)) + (|text| . "\\blankline"))) + (|htMakeDoneButton| (MAKESTRING "Continue") '|c06gsfGen|) + (|htpSetProperty| |page| '|n| |n|) + (|htpSetProperty| |page| '|m| |m|) + (|htpSetProperty| |page| '|ifail| |ifail|) + (|htpSetProperty| |page| '|inputArea| + (|htpInputAreaAlist| |htPage|)) + (|htShowPage|))))) + +;c06gsfGen htPage == +; n := htpProperty(htPage,'n) +; m := htpProperty(htPage,'m) +; ifail := htpProperty(htPage,'ifail) +; alist := htpInputAreaAlist htPage +; y := alist +; while y repeat +; right := STRCONC ((first y).1," ") +; y := rest y +; reallist := [right,:reallist] +; realstring := bcwords2liststring reallist +; linkGen STRCONC ('"c06gsf(",STRINGIMAGE m,",",STRINGIMAGE n,",[",realstring,"],", STRINGIMAGE ifail,")") + +(DEFUN |c06gsfGen| (|htPage|) + (PROG (|n| |m| |ifail| |alist| |right| |y| |reallist| |realstring|) + (RETURN + (SEQ (PROGN + (SPADLET |n| (|htpProperty| |htPage| '|n|)) + (SPADLET |m| (|htpProperty| |htPage| '|m|)) + (SPADLET |ifail| (|htpProperty| |htPage| '|ifail|)) + (SPADLET |alist| (|htpInputAreaAlist| |htPage|)) + (SPADLET |y| |alist|) + (DO () ((NULL |y|) NIL) + (SEQ (EXIT (PROGN + (SPADLET |right| + (STRCONC (ELT (CAR |y|) 1) '| |)) + (SPADLET |y| (CDR |y|)) + (SPADLET |reallist| + (CONS |right| |reallist|)))))) + (SPADLET |realstring| (|bcwords2liststring| |reallist|)) + (|linkGen| + (STRCONC (MAKESTRING "c06gsf(") (STRINGIMAGE |m|) '|,| + (STRINGIMAGE |n|) '|,[| |realstring| '|],| + (STRINGIMAGE |ifail|) '|)|))))))) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document}