<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >ForSyDe.Shallow.CTLib</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_ForSyDe-Shallow-CTLib.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >ForSyDe-3.1.1: ForSyDe's Haskell-embedded Domain Specific Language.</TD ><TD CLASS="topbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html" >Source code</A ></TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >ForSyDe.Shallow.CTLib</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >portable</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >experimental</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >forsyde-dev@ict.kth.se</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >The signal data type </A ></DT ><DT ><A HREF="#2" >Primary process constructors </A ></DT ><DT ><A HREF="#3" >Derived process constructors </A ></DT ><DT ><A HREF="#4" >Convenient functions and processes </A ></DT ><DT ><A HREF="#5" >AD and DA converters </A ></DT ><DT ><A HREF="#6" >Some helper functions </A ></DT ><DT ><A HREF="#7" >Sampling, printing and plotting </A ></DT ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" ><P >This is the ForSyDe library for continuous time MoC (CT-MoC). Revision: $Revision: 1.7 $ Id: $Id: CTLib.hs,v 1.7 2007<EM >07</EM >11 08:38:34 axel Exp $ It is still experimental. Right now there are only constructors <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AcombCT" >combCT</A ></TT >, <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AcombCT2" >combCT2</A ></TT >, <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AdelayCT" >delayCT</A ></TT >, <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AshiftCT" >shiftCT</A ></TT >, <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AmealyCT" >mealyCT</A ></TT >, <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AmooreCT" >mooreCT</A ></TT >, <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AscaleCT" >scaleCT</A ></TT >, <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AaddCT" >addCT</A ></TT >, <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AmultCT" >multCT</A ></TT > and <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AabsCT" >absCT</A ></TT >. </P ><P >The main idea is to represent continuous time signals as functions <TT >Real --> a</TT > with <TT >a</TT > being a numerical type. This allows us to represent a continuous time signal without loss of information because no sampling or ADC is required. The sampling occurs only when a signal is evaluated, for instance when it is plotted. </P ><P >Thus, a <EM >signal</EM > is represented as a sequence of functions and intervals. For instance a signal </P ><PRE >s = <(sin,[0,100])></PRE ><P >represents a sinus signal in the interval between 0 and 100. The signal </P ><PRE >s2 = <(f1(x)=2x, [0,2]), (f2(x)=3+x,[2,4])></PRE ><P >defines a signal that is defined by function <TT >f1</TT > in the interval <TT >[0,2]</TT > and by function <TT >f2</TT > in the interval <TT >[2,4]</TT >. </P ><P >A <EM >process</EM > transforms the incoming functions into outgoing functions. The approach is described in more detail in the ANDRES deliverable D1.1a. Here we only briefly comment the main functions and constructors. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="#t%3ASubsigCT" >SubsigCT</A > a = <A HREF="#v%3ASubsigCT" >SubsigCT</A > (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a, (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A >, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A >))</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AtimeStep" >timeStep</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcombCT" >combCT</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> ((<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcombCT2" >combCT2</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> ((<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a) -> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmooreCT" >mooreCT</A > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > b, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > c) => (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A >) -> (a -> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> b) -> a) -> (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> c) -> a -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > c)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmealyCT" >mealyCT</A > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > b, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > c) => (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A >) -> (a -> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> b) -> a) -> (a -> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> b) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> c) -> a -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > c)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdelayCT" >delayCT</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AshiftCT" >shiftCT</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinitCT" >initCT</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AscaleCT" >scaleCT</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => a -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AaddCT" >addCT</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmultCT" >multCT</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AabsCT" >absCT</A > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > a) => <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AtakeCT" >takeCT</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdropCT" >dropCT</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aduration" >duration</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AstartTime" >startTime</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsineWave" >sineWave</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AFloating" >Floating</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A >, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A >) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AconstCT" >constCT</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AzeroCT" >zeroCT</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ADACMode" >DACMode</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ADAlinear" >DAlinear</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ADAhold" >DAhold</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aa2dConverter" >a2dConverter</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ad2aConverter" >d2aConverter</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AFractional" >Fractional</A > a => <A HREF="ForSyDe-Shallow-CTLib.html#t%3ADACMode" >DACMode</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > a -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AapplyF1" >applyF1</A > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > b) => ((<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> b) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AapplyF2" >applyF2</A > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > b, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > c) => ((<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a) -> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> b) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> c) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > c)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AapplyG1" >applyG1</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > b => (a -> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> b) -> a) -> a -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b) -> a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcutEq" >cutEq</A > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > b) => <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b) -> (<A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a), <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b))</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aplot" >plot</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AplotCT" >plotCT</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> [<A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)] -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AplotCT%27" >plotCT'</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> [(<A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a), <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A >)] -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AshowParts" >showParts</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> [(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ADouble" >Double</A >, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ADouble" >Double</A >)]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvcdGen" >vcdGen</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> [(<A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a), <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A >)] -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >The signal data type </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A NAME="t:SubsigCT" ><A NAME="t%3ASubsigCT" ></A ></A ><B >SubsigCT</B > a </TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#SubsigCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >The type of a sub-signal of a continuous signal. It consisits of the function and the interval on which the function is defined. The continuous time signal is then defined as a sequence of SubsigCT elements: Signal SubsigCT </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:SubsigCT" ><A NAME="v%3ASubsigCT" ></A ></A ><B >SubsigCT</B > (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a, (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A >, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A >))</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SubsigCT')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:SubsigCT" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:timeStep" ><A NAME="v%3AtimeStep" ></A ></A ><B >timeStep</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#timeStep" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >This constant gives the default time step for sampling and plotting. Its value is 10ns. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="2" ><A NAME="2" >Primary process constructors </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:combCT" ><A NAME="v%3AcombCT" ></A ></A ><B >combCT</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#combCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >The partitioning of the input signal. In other words this gives the time period which is consumed by the process during each evaluation cycle. </TD ></TR ><TR ><TD CLASS="arg" >-> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a</TD ><TD CLASS="rdoc" >The function that defines the process behaviour </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The output signal of the process. </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AcombCT" >combCT</A ></TT > is a process constructor with one input and one output signal. It instantiates a combinatorial, stateless process. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:combCT2" ><A NAME="v%3AcombCT2" ></A ></A ><B >combCT2</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#combCT2" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >The partitioning of both input signals </TD ></TR ><TR ><TD CLASS="arg" >-> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a) -> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a</TD ><TD CLASS="rdoc" >The function defining the process behaviour. </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The first input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The second input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The output signal of the process </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AcombCT2" >combCT2</A ></TT > is a process constructor just like <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AcombCT" >combCT</A ></TT > but operates on two input signals. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:mooreCT" ><A NAME="v%3AmooreCT" ></A ></A ><B >mooreCT</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#mooreCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > b, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > c)</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >The gamma function which defines the partitioning of the input signal. </TD ></TR ><TR ><TD CLASS="arg" >-> a -> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> b) -> a</TD ><TD CLASS="rdoc" >The next state function g </TD ></TR ><TR ><TD CLASS="arg" >-> a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> c</TD ><TD CLASS="rdoc" >The output encoding function f </TD ></TR ><TR ><TD CLASS="arg" >-> a</TD ><TD CLASS="rdoc" >The initial state </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b)</TD ><TD CLASS="rdoc" >The input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > c)</TD ><TD CLASS="rdoc" >The output signal </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" >The state-full constructor <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AmooreCT" >mooreCT</A ></TT > resembles a Moore machine. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:mealyCT" ><A NAME="v%3AmealyCT" ></A ></A ><B >mealyCT</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#mealyCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > b, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > c)</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >The gamma function which defines the partitioning of the input signal. </TD ></TR ><TR ><TD CLASS="arg" >-> a -> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> b) -> a</TD ><TD CLASS="rdoc" >The next state function g </TD ></TR ><TR ><TD CLASS="arg" >-> a -> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> b) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> c</TD ><TD CLASS="rdoc" >The output encoding function f </TD ></TR ><TR ><TD CLASS="arg" >-> a</TD ><TD CLASS="rdoc" >The initial state </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b)</TD ><TD CLASS="rdoc" >The input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > c)</TD ><TD CLASS="rdoc" >The output signal </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" >The state-full constructor <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AmealyCT" >mealyCT</A ></TT > resembles a Mealy machine. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:delayCT" ><A NAME="v%3AdelayCT" ></A ></A ><B >delayCT</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#delayCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >The delay </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The output signal </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AdelayCT" >delayCT</A ></TT > is a delay process which simply delays the output but does not buffer it. The value at each time t is the same as for the input signal, after the initial delay. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:shiftCT" ><A NAME="v%3AshiftCT" ></A ></A ><B >shiftCT</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#shiftCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >The delay </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The output signal </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AshiftCT" >shiftCT</A ></TT > shifts the shape of the input signal by delay to the right. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:initCT" ><A NAME="v%3AinitCT" ></A ></A ><B >initCT</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#initCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The initial signal output first. </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >Then this signal is output, but delayed. </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The concatation of the two inputs. </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" >initCT takes an initial signal, outputs it and then copies its second input signal, which is delayed by the duration of the initial signal. The delay is realized by <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AdelayCT" >delayCT</A ></TT > </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="3" ><A NAME="3" >Derived process constructors </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" >These constructors instantiate very useful processes. They could be defined in terms of the basic constructors but are typically defined in a more direct way for the sake of efficieny. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:scaleCT" ><A NAME="v%3AscaleCT" ></A ></A ><B >scaleCT</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#scaleCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> a</TD ><TD CLASS="rdoc" >The scaling factor </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The output signal of the process </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AscaleCT" >scaleCT</A ></TT > amplifies an input by a constant factor: </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:addCT" ><A NAME="v%3AaddCT" ></A ></A ><B >addCT</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#addCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The first input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The second input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The output signal </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AaddCT" >addCT</A ></TT > adds two input signals together. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:multCT" ><A NAME="v%3AmultCT" ></A ></A ><B >multCT</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#multCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The first input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The second input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The output signal </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AmultCT" >multCT</A ></TT > multiplies two input signals together. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:absCT" ><A NAME="v%3AabsCT" ></A ></A ><B >absCT</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#absCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > a)</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The output signal </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AabsCT" >absCT</A ></TT > takes the absolute value of a signal. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="4" ><A NAME="4" >Convenient functions and processes </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" >Several helper functions are available to obtain parts of a signal, the duration, the start time of a signal, and to generate a sine wave and constant signals. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:takeCT" ><A NAME="v%3AtakeCT" ></A ></A ><B >takeCT</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#takeCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:dropCT" ><A NAME="v%3AdropCT" ></A ></A ><B >dropCT</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#dropCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:duration" ><A NAME="v%3Aduration" ></A ></A ><B >duration</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#duration" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:startTime" ><A NAME="v%3AstartTime" ></A ></A ><B >startTime</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a => <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#startTime" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:sineWave" ><A NAME="v%3AsineWave" ></A ></A ><B >sineWave</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#sineWave" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AFloating" >Floating</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >The frequency </TD ></TR ><TR ><TD CLASS="arg" >-> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A >, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A >)</TD ><TD CLASS="rdoc" >The interval of the signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The generated signal </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AsineWave" >sineWave</A ></TT > generates a sinus signal with the given frequency defined over a given period. The function is defined as <TT >f(x)=sin(2*pi*freq*x)</TT >. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:constCT" ><A NAME="v%3AconstCT" ></A ></A ><B >constCT</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#constCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >The time duration of the generated signal. </TD ></TR ><TR ><TD CLASS="arg" >-> a</TD ><TD CLASS="rdoc" >The constant value of the signal. </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The resulting signal. </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" >constCT generates a constant signal for a given time duration. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:zeroCT" ><A NAME="v%3AzeroCT" ></A ></A ><B >zeroCT</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#zeroCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >The time duration </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The generated signal. </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" >zeroCT generates a constant 0 signal for the given time duration. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="5" ><A NAME="5" >AD and DA converters </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:DACMode" ><A NAME="t%3ADACMode" ></A ></A ><B >DACMode</B > </TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#DACMode" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >For the digital-analog conversion we have two different possibilities which is determined by this data type <TT ><A HREF="ForSyDe-Shallow-CTLib.html#t%3ADACMode" >DACMode</A ></TT >. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:DAlinear" ><A NAME="v%3ADAlinear" ></A ></A ><B >DAlinear</B ></TD ><TD CLASS="rdoc" >linear interpolation </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:DAhold" ><A NAME="v%3ADAhold" ></A ></A ><B >DAhold</B ></TD ><TD CLASS="rdoc" >the last digital value is frozen </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:DACMode')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:DACMode" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="ForSyDe-Shallow-CTLib.html#t%3ADACMode" >DACMode</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > <A HREF="ForSyDe-Shallow-CTLib.html#t%3ADACMode" >DACMode</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:a2dConverter" ><A NAME="v%3Aa2dConverter" ></A ></A ><B >a2dConverter</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#a2dConverter" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >Sampling Period </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >Input signal (continuous time) </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > a</TD ><TD CLASS="rdoc" >Output signal (untimed) </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><P >The process <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3Aa2dConverter" >a2dConverter</A ></TT > converts a continuous time signal to an untimed or synchronous signal. The first parameter gives the sampling period of the converter. </P ><P >Note, that the process <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3Aa2dConverter" >a2dConverter</A ></TT > is an ideal component, i.e. there are no losses due to a limited resolution due to a fixed number of bits. </P ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:d2aConverter" ><A NAME="v%3Ad2aConverter" ></A ></A ><B >d2aConverter</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#d2aConverter" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AFractional" >Fractional</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="ForSyDe-Shallow-CTLib.html#t%3ADACMode" >DACMode</A ></TD ><TD CLASS="rdoc" >Mode of conversion </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >Duration of input signal </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > a</TD ><TD CLASS="rdoc" >Input signal (untimed MoC) </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >Output signal (continuous time MoC) </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><P ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3Ad2aConverter" >d2aConverter</A ></TT > converts an untimes or synchronous signal into a continuous time signal. The process <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3Ad2aConverter" >d2aConverter</A ></TT > converts a signal of the digital domain into a continuous time signal. There are two modes, <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3ADAlinear" >DAlinear</A ></TT >, which makes a smooth transition between adjacent digital values and <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3ADAhold" >DAhold</A ></TT >, where the analog value directly follows the digital value. This means that in <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3ADAhold" >DAhold</A ></TT >-mode a staircase function remains a staircase function, while in <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3ADAlinear" >DAlinear</A ></TT > the staircase function would resemble at least partially a <EM >saw tooth</EM >-curve. </P ><P >The resolution of the converter is given by the parameter <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AtimeStep" >timeStep</A ></TT >. </P ><P >Note, that the process <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3Ad2aConverter" >d2aConverter</A ></TT > is an ideal component, i.e. there are no losses due to a limited resolution due to a fixed number of bits. </P ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="6" ><A NAME="6" >Some helper functions </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:applyF1" ><A NAME="v%3AapplyF1" ></A ></A ><B >applyF1</B > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > b) => ((<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> b) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b)</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#applyF1" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >applyF1 applies a function on a sub-signal, which means the function of the subsignal is transformed to another function: </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:applyF2" ><A NAME="v%3AapplyF2" ></A ></A ><B >applyF2</B > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > b, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > c) => ((<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> a) -> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> b) -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> c) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > c)</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#applyF2" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >applyF2 works just like applyF1 but operates on two incoming signals. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:applyG1" ><A NAME="v%3AapplyG1" ></A ></A ><B >applyG1</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > b => (a -> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A > -> b) -> a) -> a -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b) -> a</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#applyG1" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >applyG1 is used to apply a next-state function. A very interesting question is, what should be an argument to the next-state function: the incoming function, defining the value of the input signal? or the incoming function and the incoming interval? or the value of the incoming signal at a particular point, e.g. at the left most point of the interval? To give the next-state function the interval itself as argument, would mean that the process becomes time variant process, i.e. its behaviour is dependent on the absolute time values. This is not a good thing to have! Another possibility may be to give a sub-signal that is relative to the current evaluation, i.e. the left most point is always 0. Would that make sense? </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:cutEq" ><A NAME="v%3AcutEq" ></A ></A ><B >cutEq</B > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > b) => <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b) -> (<A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a), <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > b))</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#cutEq" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >cutEq partitions the two signals such that the partitioning are identical in both result signals, but only up to the duration of the shorter of the two signals: </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="7" ><A NAME="7" >Sampling, printing and plotting </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" ><P >Several functions are available to display a signal in textual or graphics form. All displaying of signals is based on sampling and evaluation the signal at regular sampling points. </P ><P >The function <TT >sample</TT > evaluates the signal and returns a list of (time,value) pairs, which can be displayed as text or used in any other way. </P ><P ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AshowParts" >showParts</A ></TT > does not evaluate the signal; it only shows how it is partitioned. Hence, it returns a sequence of intervals. </P ><P ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3Aplot" >plot</A ></TT >, <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AplotCT" >plotCT</A ></TT > and <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AplotCT%27" >plotCT'</A ></TT > can plot a signal or a list of signals in a graph. They use <TT >gnuplot</TT > for doing the actual work. They are in the IO monad because they write to the file system. </P ><P ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3Aplot" >plot</A ></TT > is defined in terms of <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AplotCT" >plotCT</A ></TT > but it uses the default sampling period <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AtimeStep" >timeStep</A ></TT > and it can plot only one signal in a plot. </P ><P ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AplotCT" >plotCT</A ></TT > can plot a list of signals in the same plot. <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AplotCT" >plotCT</A ></TT > is defined in terms of <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AplotCT%27" >plotCT'</A ></TT > but uses default label names for the plot. </P ><P ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AvcdGen" >vcdGen</A ></TT > writes the values of signals in Value Change Dump (VCD) format to a file. There are public domain wave viewers which understand this format and can display the signals. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:plot" ><A NAME="v%3Aplot" ></A ></A ><B >plot</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#plot" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The signal to be plotted. </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="rdoc" >A reporting message. </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3Aplot" >plot</A ></TT > plots one signal in a graph with the default sampling period of 1/200 of the duration of the signal. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:plotCT" ><A NAME="v%3AplotCT" ></A ></A ><B >plotCT</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#plotCT" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >The sampling period </TD ></TR ><TR ><TD CLASS="arg" >-> [<A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)]</TD ><TD CLASS="rdoc" >The list of signals to be ploted in the same graph </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="rdoc" >A messeage reporting what has been done. </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AplotCT" >plotCT</A ></TT > plots a list of signals in the same graph. The sampling period has to be given as argument. In the graph default label names are used to identify the signals. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:plotCT'" ><A NAME="v%3AplotCT%27" ></A ></A ><B >plotCT'</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#plotCT%27" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >Sampling period </TD ></TR ><TR ><TD CLASS="arg" >-> [(<A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a), <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A >)]</TD ><TD CLASS="rdoc" >A list of (signal,label) pairs. The signals are plotted and denoted by the corresponding labels in the plot. </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="rdoc" >A simple message to report completion </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><P ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AplotCT%27" >plotCT'</A ></TT > is the work horse for plotting and the functions <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3Aplot" >plot</A ></TT > and <TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AplotCT" >plotCT</A ></TT > use it with specialising arguments. </P ><P ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AplotCT%27" >plotCT'</A ></TT > plots all the signals in the list in one graph. If a label is given for a signal, this label appears in the graph. If the label string is "", a default label like "sig-1" is used. </P ><P >In addition to displaying the graph on the screen, the following files are created in directory ./fig: </P ><DL ><DT >ct-moc-graph.eps</DT ><DD > an eps file of the complete graph </DD ><DT >ct-moc-graph.pdf</DT ><DD > A pdf file of the complete graph </DD ><DT >ct-moc-graph-latex.eps</DT ><DD > included by ct-moc-graph-latex.tex </DD ><DT >ct-moc-graph-latex.tex</DT ><DD > This is the tex file that should be included by your latex document. It in turn includes the file ct-moc-graph-latex.eps. These two files have to be used together; the .eps file contains only the graphics, while the .tex file contains the labels and text. </DD ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:showParts" ><A NAME="v%3AshowParts" ></A ></A ><B >showParts</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#showParts" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a)</TD ><TD CLASS="rdoc" >The partitioned signal </TD ></TR ><TR ><TD CLASS="arg" >-> [(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ADouble" >Double</A >, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ADouble" >Double</A >)]</TD ><TD CLASS="rdoc" >The sequence of intervals </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><TT ><A HREF="ForSyDe-Shallow-CTLib.html#v%3AshowParts" >showParts</A ></TT > allows to see how a signal is partitioned into sub-signals. It returns the sequence of intervals. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vcdGen" ><A NAME="v%3AvcdGen" ></A ></A ><B >vcdGen</B ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-CTLib.html#vcdGen" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ANum" >Num</A > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >=> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational" >Rational</A ></TD ><TD CLASS="rdoc" >Sampling period; defines for what time stamps the values are written. </TD ></TR ><TR ><TD CLASS="arg" >-> [(<A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-CTLib.html#t%3ASubsigCT" >SubsigCT</A > a), <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A >)]</TD ><TD CLASS="rdoc" >A list of (signal,label) pairs. The signal values written and denoted by the corresponding labels. </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="rdoc" >A simple message to report completion </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" ><P >vcdGen dumps the values of a list of signal in VCD (Value Change Dump) format (IEEE Std 1364-2001), which is part of the Verilog standard (<A HREF="http://en.wikipedia.org/wiki/Value_change_dump" >http://en.wikipedia.org/wiki/Value_change_dump</A >). There are public domain tools to view VCD files. For instance, GTKWave (<A HREF="http://home.nc.rr.com/gtkwave/" >http://home.nc.rr.com/gtkwave/</A >) is a popular viewer available for Windows and Linux. </P ><P >The values are written to the file .<EM >fig</EM >ct-moc.vcd. If the file exists, it is overwritten. If the directory does not exist, it is created. </P ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >