\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}