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<br/>
 src/interp/nag-c02.lisp rewrite from boot to lisp<br/>
 <a href="patches/20090830.06.tpd.patch">20090830.06.tpd.patch</a>
 src/interp/nag-c05.lisp rewrite from boot to lisp<br/>
+<a href="patches/20090831.01.tpd.patch">20090831.01.tpd.patch</a>
+src/interp/nag-c06.lisp rewrite from boot to lisp<br/>
  </body>
 </html>
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}
 <<nag-c06.o (AUTO from OUT)>>=
 ${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}
 
 @
 <<nag-c06.o (OUT from MID)>>=
-${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 )
 
 @
-<<nag-c06.clisp (MID from IN)>>=
-${MID}/nag-c06.clisp: ${IN}/nag-c06.boot.pamphlet
-	@ echo 160 making ${MID}/nag-c06.clisp from ${IN}/nag-c06.boot.pamphlet
+<<nag-c06.lisp (MID from IN)>>=
+${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:
 
 <<nag-c06.o (AUTO from OUT)>>
 <<nag-c06.o (OUT from MID)>>
-<<nag-c06.clisp (MID from IN)>>
+<<nag-c06.lisp (MID from IN)>>
 
 <<nag-d01.o (AUTO from OUT)>>
 <<nag-d01.o (OUT from MID)>>
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}
-<<license>>=
--- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
--- All rights reserved.
---
--- Redistribution and use in source and binary forms, with or without
--- modification, are permitted provided that the following conditions are
--- met:
---
---     - Redistributions of source code must retain the above copyright
---       notice, this list of conditions and the following disclaimer.
---
---     - Redistributions in binary form must reproduce the above copyright
---       notice, this list of conditions and the following disclaimer in
---       the documentation and/or other materials provided with the
---       distribution.
---
---     - Neither the name of The Numerical ALgorithms Group Ltd. nor the
---       names of its contributors may be used to endorse or promote products
---       derived from this software without specific prior written permission.
---
--- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
--- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
--- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
--- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
--- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
--- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
--- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
--- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
--- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
--- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
--- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-@
-<<*>>=
-<<license>>
-
-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}
