<?xml version="1.0" standalone="no"?>
<!DOCTYPE class PUBLIC "-//UC Berkeley//DTD MoML 1//EN"
    "http://ptolemy.eecs.berkeley.edu/xml/dtd/MoML_1.dtd">
<class name="OrthogonalCom" extends="ptolemy.actor.TypedCompositeActor">
    <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="2.1-devel-2">
    </property>
    <property name="SDF" class="ptolemy.domains.sdf.kernel.SDFDirector">
        <property name="Scheduler" class="ptolemy.domains.sdf.kernel.SDFScheduler">
        </property>
        <property name="allowDisconnectedGraphs" class="ptolemy.data.expr.Parameter" value="false">
        </property>
        <property name="iterations" class="ptolemy.data.expr.Parameter" value="5000">
        </property>
        <property name="vectorizationFactor" class="ptolemy.data.expr.Parameter" value="1">
        </property>
        <property name="_location" class="ptolemy.kernel.util.Location" value="120.0, 70.0">
        </property>
    </property>
    <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[817, 663]">
    </property>
    <property name="_vergilLocation" class="ptolemy.actor.gui.LocationAttribute" value="[-4, -4]">
    </property>
    <property name="_generator" class="ptolemy.copernicus.kernel.GeneratorAttribute">
        <property name="initialParametersURL" class="ptolemy.data.expr.Parameter" value="&quot;ptolemy/copernicus/kernel/Generator.xml&quot;">
        </property>
        <property name="codeGenerator" class="ptolemy.data.expr.Parameter" value="&quot;java&quot;">
            <property name="style" class="ptolemy.actor.gui.style.ChoiceStyle">
                <property name="java" class="ptolemy.kernel.util.StringAttribute" value="&quot;java&quot;">
                </property>
                <property name="applet" class="ptolemy.kernel.util.StringAttribute" value="&quot;applet&quot;">
                </property>
                <property name="shallow" class="ptolemy.kernel.util.StringAttribute" value="&quot;shallow&quot;">
                </property>
                <property name="c" class="ptolemy.kernel.util.StringAttribute" value="&quot;c&quot;">
                </property>
                <property name="interpreted" class="ptolemy.kernel.util.StringAttribute" value="&quot;interpreted&quot;">
                </property>
                <property name="jhdl" class="ptolemy.kernel.util.StringAttribute" value="&quot;jhdl&quot;">
                </property>
            </property>
            <doc>The code generator to run.</doc>
        </property>
        <property name="compile" class="ptolemy.data.expr.Parameter" value="true">
            <property name="style" class="ptolemy.actor.gui.style.CheckBoxStyle">
            </property>
            <doc>If true, compile the generated code.  The default is true.</doc>
        </property>
        <property name="show" class="ptolemy.data.expr.Parameter" value="true">
            <property name="style" class="ptolemy.actor.gui.style.CheckBoxStyle">
            </property>
            <doc> If true, then show the generated code.  The default is true.</doc>
        </property>
        <property name="run" class="ptolemy.data.expr.Parameter" value="true">
            <property name="style" class="ptolemy.actor.gui.style.CheckBoxStyle">
            </property>
            <doc> If true, then run the generated code.  The default is true.</doc>
        </property>
        <property name="ptII" class="ptolemy.data.expr.Parameter" value="property(&quot;ptolemy.ptII.dir&quot;)">
            <doc>The location of the Ptolemy II classes.  The default is the value of the ptolemy.ptII.dir java system property</doc>
        </property>
        <property name="ptIIUserDirectory" class="ptolemy.data.expr.Parameter" value="ptII">
            <doc>The top level directory to write the code in. The default is the value of the ptII parameter. The code will appear in 'ptIIUserDirectory/targetPath'.</doc>
        </property>
        <property name="targetPackage" class="ptolemy.data.expr.Parameter" value="modelName">
            <doc>The package to generate code in with the model name appended. Defaults to "ptolemy.copernicus." + codeGenerator + ".cg." + modelName</doc>
        </property>
        <property name="targetPath" class="ptolemy.data.expr.Parameter" value="&quot;ptolemy/copernicus/java/cg/OrthogonalCom&quot;">
            <doc>The path relative to the ptIIUserDirectory to generate code in. The default is derived from the value of codeGenerator + targetPackage.</doc>
        </property>
        <property name="modelPath" class="ptolemy.data.expr.Parameter" value="&quot;file:/C:/users/neuendor/ptII/ptolemy/domains/sdf/demo/OrthogonalCom/OrthogonalCom.xml&quot;">
            <doc>The path to the model, including the .xml extension.  modelPath is converted to a URL internally before use.</doc>
        </property>
        <property name="modelName" class="ptolemy.data.expr.Parameter" value="&quot;OrthogonalCom&quot;">
            <doc> The name of the model, read from the .xml file and sanitized.</doc>
        </property>
        <property name="iterations" class="ptolemy.data.expr.Parameter" value="5000">
            <doc>Number of iterations to run the model for. Usually, the model itself contains the number of iterations to run for. Defaults to 1000.</doc>
        </property>
        <property name="compileCommandTemplateFile" class="ptolemy.data.expr.Parameter" value="&quot;ptolemy/copernicus/&quot; + codeGenerator + &quot;/compileCommandTemplate.txt&quot;">
            <doc>The template file that contains the command to run that generates the code.</doc>
        </property>
        <property name="compileOptions" class="ptolemy.data.expr.Parameter" value="&quot;&quot;">
            <doc>User supplied arguments to be passed to the code generator.  Defaults to the empty string.</doc>
        </property>
        <property name="classPath" class="ptolemy.data.expr.Parameter" value="ptIIUserDirectory + classPathSeparator + property(&quot;java.class.path&quot;) + classPathSeparator + sootClasses + classPathSeparator + necessaryClassPath">
            <doc>The class path. Defaults to the value of of the java.class.path property.</doc>
        </property>
        <property name="necessaryClasses" class="ptolemy.data.expr.Parameter" value="{&quot;ptolemy.domains.sdf.kernel.SDFScheduler&quot;,&quot;ptolemy.copernicus.java.Main&quot;,&quot;ptolemy.kernel.util.NamedObj&quot;,&quot;soot.gui.ICompilationListener&quot;,&quot;jasmin.Main&quot;}">
            <doc>An array of Strings, where each element names a class that needs to be present in the classpath </doc>
        </property>
        <property name="necessaryClassPath" class="ptolemy.data.expr.Parameter" value="&quot;C:/users/neuendor/ptII;C:/users/neuendor/ptII/lib/sootclasses.jar;C:/jdk1.3.1/jre/lib/ext/jasmin.jar&quot;">
            <doc>Class path that refers to necessary classes. Derived from necessaryClasses</doc>
        </property>
        <property name="classPathSeparator" class="ptolemy.data.expr.Parameter" value="property(&quot;path.separator&quot;)">
            <doc>The classpath separator. Under Windows, the default is ';'. Under Unix, the default is ':'</doc>
        </property>
        <property name="java" class="ptolemy.data.expr.Parameter" value="property(&quot;java.home&quot;) + &quot;/bin/java&quot;">
            <doc>Defaults to the value of the java.home property + bin/java, for example: c:/jdk1.3.1/bin/java</doc>
        </property>
        <property name="javaSystemJar" class="ptolemy.data.expr.Parameter" value="property(&quot;java.home&quot;) + &quot;/lib/rt.jar&quot;">
            <doc>Defaults to the value of the java.home property + "/lib/rt.jar"</doc>
        </property>
        <property name="jvmSize" class="ptolemy.data.expr.Parameter" value="&quot;-Xmx256m&quot;">
            <doc>The command line arguments to pass to the java interpreter that control the size.  The default is -Xmx256m</doc>
        </property>
        <property name="runCommandTemplateFile" class="ptolemy.data.expr.Parameter" value="&quot;ptolemy/copernicus/&quot; + codeGenerator + &quot;/runCommandTemplate.txt&quot;">
            <doc>The template file that contains the command to run the generated code.</doc>
        </property>
        <property name="runOptions" class="ptolemy.data.expr.Parameter" value="&quot;&quot;">
            <doc>User supplied arguments to be passed to the command that will run the generated code. Defaults to the empty string.</doc>
        </property>
        <property name="sootDir" class="ptolemy.data.expr.Parameter" value="ptII + &quot;/lib&quot;">
            <doc>The directory that contains the soot jar files. Defaults to the value of the ptII parameter  + "/lib"</doc>
        </property>
        <property name="sootClasses" class="ptolemy.data.expr.Parameter" value="sootDir + &quot;/sootclasses.jar&quot; + classPathSeparator + sootDir + &quot;/jasminclasses.jar&quot; + classPathSeparator + javaSystemJar">
            <doc>The location of sootclasses.jar, jasminclasses.jar and the Java system jar (usually rt.jar).  The necessaryClassPath parameter may end up duplicating some of the elements of this parameter.</doc>
        </property>
        <property name="ptIIUserDirectoryAsURL" class="ptolemy.data.expr.Parameter" value="&quot;file:/c:/users/neuendor/ptII/&quot;">
            <doc>The top level directory to write the code in as a URL.  Derived from the value of the ptIIUserDirectory parameter.</doc>
        </property>
        <property name="watchDogTimeout" class="ptolemy.data.expr.Parameter" value="600000">
            <doc>The number of milliseconds that code generation will run for. Defaults to 600000, which is 10 minutes.</doc>
        </property>
    </property>
    <property name="annotation" class="ptolemy.kernel.util.Attribute">
        <property name="_hideName" class="ptolemy.kernel.util.SingletonAttribute">
        </property>
        <property name="_iconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
            <configure><svg><text x="20" y="20" style="font-size:14; font-family:SansSerif; fill:blue">This model is used as a test case for
code generation.  To run the code generator,
select View -> Code Generator.
See $PTII/doc/codegen.htm for details.</text></svg></configure>
        </property>
        <property name="_smallIconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
            <configure>
      <svg>
        <text x="20" style="font-size:14; font-family:SansSerif; fill:blue" y="20">-A-</text>
      </svg>
    </configure>
        </property>
        <property name="_controllerFactory" class="ptolemy.vergil.basic.NodeControllerFactory">
        </property>
        <property name="_editorFactory" class="ptolemy.vergil.toolbox.AnnotationEditorFactory">
        </property>
        <property name="_location" class="ptolemy.kernel.util.Location" value="210.0, 30.0">
        </property>
    </property>
    <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={-4, -2, 1032, 772}}">
    </property>
    <property name="parameter" class="ptolemy.data.expr.Parameter" value="45">
        <property name="_hideName" class="ptolemy.kernel.util.SingletonAttribute">
        </property>
        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
        </property>
        <property name="_smallIconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
            <configure>
      <svg>
        <text x="20" style="font-size:14; font-family:SansSerif; fill:blue" y="20">-P-</text>
      </svg>
    </configure>
        </property>
        <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
        </property>
        <property name="_location" class="ptolemy.kernel.util.Location" value="190.0, 565.0">
        </property>
    </property>
    <entity name="bitSource" class="ptolemy.actor.lib.DiscreteRandomSource">
        <property name="seed" class="ptolemy.data.expr.Parameter" value="0">
        </property>
        <property name="pmf" class="ptolemy.data.expr.Parameter" value="{0.5, 0.5}">
        </property>
        <property name="values" class="ptolemy.data.expr.Parameter" value="{0, 1}">
        </property>
        <property name="_location" class="ptolemy.kernel.util.Location" value="75.0, 360.0">
        </property>
        <port name="output" class="ptolemy.actor.TypedIOPort">
            <property name="output"/>
        </port>
        <port name="trigger" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
    </entity>
    <entity name="Symbol1" class="ptolemy.actor.lib.Const">
        <property name="value" class="ptolemy.data.expr.Parameter" value="{1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}">
        </property>
        <property name="_location" class="ptolemy.kernel.util.Location" value="145.0, 150.0">
        </property>
        <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
            <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
            </property>
            <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="40">
            </property>
        </property>
        <port name="output" class="ptolemy.actor.TypedIOPort">
            <property name="output"/>
        </port>
        <port name="trigger" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
    </entity>
    <entity name="Symbol2" class="ptolemy.actor.lib.Const">
        <property name="value" class="ptolemy.data.expr.Parameter" value="{1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0}">
        </property>
        <property name="_location" class="ptolemy.kernel.util.Location" value="145.0, 230.0">
        </property>
        <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
            <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
            </property>
            <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="40">
            </property>
        </property>
        <port name="output" class="ptolemy.actor.TypedIOPort">
            <property name="output"/>
        </port>
        <port name="trigger" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
    </entity>
    <entity name="Multiplexor" class="ptolemy.actor.lib.Multiplexor">
        <property name="_location" class="ptolemy.kernel.util.Location" value="215.0, 409.5">
        </property>
        <port name="input" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
        <port name="output" class="ptolemy.actor.TypedIOPort">
            <property name="output"/>
        </port>
        <port name="select" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
        </port>
    </entity>
    <entity name="addNoise" class="ptolemy.actor.lib.AddSubtract">
        <property name="_location" class="ptolemy.kernel.util.Location" value="315.0, 490.0">
        </property>
        <port name="plus" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
        <port name="minus" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
        <port name="output" class="ptolemy.actor.TypedIOPort">
            <property name="output"/>
        </port>
    </entity>
    <entity name="Gaussian Noise" class="ptolemy.actor.lib.Gaussian">
        <property name="seed" class="ptolemy.data.expr.Parameter" value="0">
        </property>
        <property name="mean" class="ptolemy.data.expr.Parameter" value="0.0">
        </property>
        <property name="standardDeviation" class="ptolemy.data.expr.Parameter" value="2.0">
        </property>
        <property name="_location" class="ptolemy.kernel.util.Location" value="75.0, 480.0">
        </property>
        <port name="output" class="ptolemy.actor.TypedIOPort">
            <property name="output"/>
        </port>
        <port name="trigger" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
    </entity>
    <entity name="correlator1" class="ptolemy.domains.sdf.lib.DotProduct">
        <property name="_location" class="ptolemy.kernel.util.Location" value="420.0, 195.0">
        </property>
        <port name="input1" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
        </port>
        <port name="input2" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
        </port>
        <port name="output" class="ptolemy.actor.TypedIOPort">
            <property name="output"/>
        </port>
    </entity>
    <entity name="correlator2" class="ptolemy.domains.sdf.lib.DotProduct">
        <property name="_location" class="ptolemy.kernel.util.Location" value="420.0, 275.0">
        </property>
        <port name="input1" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
        </port>
        <port name="input2" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
        </port>
        <port name="output" class="ptolemy.actor.TypedIOPort">
            <property name="output"/>
        </port>
    </entity>
    <entity name="outputBitDisplay" class="ptolemy.actor.lib.FileWriter">
        <property name="filename" class="ptolemy.data.expr.Parameter" value="&quot;&quot;">
        </property>
        <property name="_location" class="ptolemy.kernel.util.Location" value="715.0, 370.0">
        </property>
        <port name="input" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
    </entity>
    <entity name="compareResults" class="ptolemy.actor.lib.AddSubtract">
        <property name="_location" class="ptolemy.kernel.util.Location" value="635.0, 350.0">
        </property>
        <port name="plus" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
        <port name="minus" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
        <port name="output" class="ptolemy.actor.TypedIOPort">
            <property name="output"/>
        </port>
    </entity>
    <entity name="SequenceToArray" class="ptolemy.domains.sdf.lib.SequenceToArray">
        <property name="arrayLength" class="ptolemy.data.expr.Parameter" value="8">
        </property>
        <property name="_location" class="ptolemy.kernel.util.Location" value="185.0, 480.0">
        </property>
        <port name="input" class="ptolemy.domains.sdf.kernel.SDFIOPort">
            <property name="input"/>
            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="8">
            </property>
            <property name="tokenInitProduction" class="ptolemy.data.expr.Parameter" value="0">
            </property>
            <property name="tokenProductionRate" class="ptolemy.data.expr.Parameter" value="0">
            </property>
        </port>
        <port name="output" class="ptolemy.domains.sdf.kernel.SDFIOPort">
            <property name="output"/>
            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="0">
            </property>
            <property name="tokenInitProduction" class="ptolemy.data.expr.Parameter" value="0">
            </property>
            <property name="tokenProductionRate" class="ptolemy.data.expr.Parameter" value="1">
            </property>
        </port>
    </entity>
    <entity name="Maximum" class="ptolemy.actor.lib.Maximum">
        <property name="_location" class="ptolemy.kernel.util.Location" value="530.0, 235.0">
        </property>
        <port name="input" class="ptolemy.actor.TypedIOPort">
            <property name="input"/>
            <property name="multiport"/>
        </port>
        <port name="maximumValue" class="ptolemy.actor.TypedIOPort">
            <property name="output"/>
            <property name="multiport"/>
        </port>
        <port name="channelNumber" class="ptolemy.actor.TypedIOPort">
            <property name="output"/>
            <property name="multiport"/>
        </port>
    </entity>
    <relation name="r0" class="ptolemy.actor.TypedIORelation">
        <vertex name="vertex" value="125.0, 360.0">
        </vertex>
    </relation>
    <relation name="r1" class="ptolemy.actor.TypedIORelation">
        <vertex name="vertex" value="315.0, 185.0">
        </vertex>
    </relation>
    <relation name="r2" class="ptolemy.actor.TypedIORelation">
        <vertex name="vertex" value="275.0, 265.0">
        </vertex>
    </relation>
    <relation name="r3" class="ptolemy.actor.TypedIORelation">
        <vertex name="vertex" value="360.0, 490.0">
        </vertex>
    </relation>
    <relation name="_R2" class="ptolemy.actor.TypedIORelation">
    </relation>
    <relation name="_R7" class="ptolemy.actor.TypedIORelation">
    </relation>
    <relation name="relation" class="ptolemy.actor.TypedIORelation">
    </relation>
    <relation name="relation3" class="ptolemy.actor.TypedIORelation">
    </relation>
    <relation name="relation4" class="ptolemy.actor.TypedIORelation">
    </relation>
    <relation name="relation5" class="ptolemy.actor.TypedIORelation">
    </relation>
    <relation name="relation6" class="ptolemy.actor.TypedIORelation">
    </relation>
    <link port="bitSource.output" relation="r0"/>
    <link port="Symbol1.output" relation="r1"/>
    <link port="Symbol2.output" relation="r2"/>
    <link port="Multiplexor.input" relation="r1"/>
    <link port="Multiplexor.input" relation="r2"/>
    <link port="Multiplexor.output" relation="_R2"/>
    <link port="Multiplexor.select" relation="r0"/>
    <link port="addNoise.plus" relation="_R2"/>
    <link port="addNoise.plus" relation="relation3"/>
    <link port="addNoise.output" relation="r3"/>
    <link port="Gaussian Noise.output" relation="relation"/>
    <link port="correlator1.input1" relation="r1"/>
    <link port="correlator1.input2" relation="r3"/>
    <link port="correlator1.output" relation="relation5"/>
    <link port="correlator2.input1" relation="r2"/>
    <link port="correlator2.input2" relation="r3"/>
    <link port="correlator2.output" relation="relation6"/>
    <link port="outputBitDisplay.input" relation="_R7"/>
    <link port="compareResults.plus" relation="relation4"/>
    <link port="compareResults.minus" relation="r0"/>
    <link port="compareResults.output" relation="_R7"/>
    <link port="SequenceToArray.input" relation="relation"/>
    <link port="SequenceToArray.output" relation="relation3"/>
    <link port="Maximum.input" relation="relation5"/>
    <link port="Maximum.input" relation="relation6"/>
    <link port="Maximum.channelNumber" relation="relation4"/>
</class>

