File: Complex.lhs

package info (click to toggle)
meep 0.10-2.1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 4,380 kB
  • ctags: 5,469
  • sloc: cpp: 50,653; sh: 8,380; haskell: 744; makefile: 367; perl: 10
file content (20 lines) | stat: -rw-r--r-- 702 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
\begin{code}
module Complex ( get_cmp_part, cmp, loop_complex, sqr_complex, for_complex ) where

import StepGen
\end{code}

\begin{code}
get_cmp_part num = ("cmp")|?| ("imag("<<num<<")") |:| ("real("<<num<<")")

cmp = casedefined ["is_real"] (\_-> ("is_real")|?|"0"|:|(("cmp")|?|"1"|:|"0"))
      $ casedefined ["cmp"] (\_-> ("cmp")|?|"1"|:|"0") $ ("cmp"<<"")
loop_complex job =
    ifelse_ "is_real" realjob (for_true_false "cmp" $ docode [job])
        where realjob = declare "cmp" False $ docode [job]
for_complex job = doblock "DOCMP" job

sqr_complex :: Expression -> Expression
sqr_complex e = ("is_real") |?| (e |*| e)
                            |:| (sum_true_false "cmp" $ e |*| e)
\end{code}