<?xml version="1.0" standalone="no"?>
<!DOCTYPE grammar SYSTEM "grammar.dtd">
<grammar name="R Language" version="4" ext="r" type="">
   <!--List of all the mathematical functions supported by GeneXproTools 4.0. All functions must be completely defined.-->
   <!--To generate Carriage Return Line Feeds (CrLf) use the token {CRLF} (curly braces included).-->
   <!--To generate Tabs use the token {TAB} (curly braces included).-->
   <!--Use {CHARX} as an escape for the x in the definition of the functions.-->
   <functions count="279">
      <function idx="0" symbol="+" terminals="2" uniontype="{tempvarname} &lt;- {tempvarname} {symbol} {member}">(x0+x1)</function>
      <function idx="1" symbol="-" terminals="2" uniontype="{tempvarname} &lt;- {tempvarname} {symbol} {member}">(x0-x1)</function>
      <function idx="2" symbol="*" terminals="2" uniontype="{tempvarname} &lt;- {tempvarname} {symbol} {member}">(x0*x1)</function>
      <function idx="3" symbol="/" terminals="2" uniontype="{tempvarname} &lt;- {tempvarname} {symbol} {member}">(x0/x1)</function>
      <function idx="4" symbol="Mod" terminals="2" uniontype="">(x0%%x1)</function>
      <function idx="5" symbol="Pow" terminals="2" uniontype="">(x0 ^ x1)</function>

      <function idx="6" symbol="Sqrt" terminals="1" uniontype="">sqr(x0)</function>
      <function idx="7" symbol="Exp" terminals="1" uniontype="">e{CHARX}p(x0)</function>
      <function idx="8" symbol="Pow10" terminals="1" uniontype="">(10 ^ x0)</function>

      <function idx="9" symbol="Ln" terminals="1" uniontype="">log(x0)</function>
      <function idx="10" symbol="Log" terminals="1" uniontype="">(log(x0)/Log(10))</function>
      <function idx="83" symbol="Log2" terminals="2" uniontype="">(log(x0)/Log(x1))</function>

      <function idx="12" symbol="Floor" terminals="1" uniontype="">floor(x0)</function>
      <function idx="13" symbol="Ceil" terminals="1" uniontype="">ceiling(x0)</function>
      <function idx="14" symbol="Abs" terminals="1" uniontype="">abs(x0)</function>
      <function idx="15" symbol="Inv" terminals="1" uniontype="">(1/(x0))</function>
      <function idx="17" symbol="Neg" terminals="1" uniontype="">(-(x0))</function>
      <function idx="16" symbol="Nop" terminals="1" uniontype="">(x0)</function>

      <function idx="76" symbol="X2" terminals="1" uniontype="">(x0 ^ 2)</function>
      <function idx="77" symbol="X3" terminals="1" uniontype="">(x0 ^ 3)</function>
      <function idx="78" symbol="X4" terminals="1" uniontype="">(x0 ^ 4)</function>
      <function idx="79" symbol="X5" terminals="1" uniontype="">(x0 ^ 5)</function>

      <function idx="80" symbol="3Rt" terminals="1" uniontype="">(if (x0 &lt; 0) -(-x0 ^ (1.0/3.0)) else (x0 ^ (1.0/3.0)))</function>
      <function idx="81" symbol="4Rt" terminals="1" uniontype="">(x0 ^ (1/4))</function>
      <function idx="82" symbol="5Rt" terminals="1" uniontype="">(if (x0 &lt; 0) -(-x0 ^ (1.0/5.0)) else (x0 ^ (1.0/5.0)))</function>

      <function idx="84" symbol="Add3" terminals="3" uniontype="">(x0+x1+x2)</function>
      <function idx="86" symbol="Sub3" terminals="3" uniontype="">(x0-x1-x2)</function>
      <function idx="88" symbol="Mul3" terminals="3" uniontype="">(x0*x1*x2)</function>
      <function idx="90" symbol="Div3" terminals="3" uniontype="">(x0/x1/x2)</function>

      <function idx="85" symbol="Add4" terminals="4" uniontype="">(x0+x1+x2+x3)</function>
      <function idx="87" symbol="Sub4" terminals="4" uniontype="">(x0-x1-x2-x3)</function>
      <function idx="89" symbol="Mul4" terminals="4" uniontype="">(x0*x1*x2*x3)</function>
      <function idx="91" symbol="Div4" terminals="4" uniontype="">(x0/x1/x2/x3)</function>

      <function idx="92" symbol="Min2" terminals="2" uniontype="">min(x0,x1)</function>
      <function idx="93" symbol="Min3" terminals="3" uniontype="">min(x0,x1,x2)</function>
      <function idx="94" symbol="Min4" terminals="4" uniontype="">min(x0,x1,x2,x3)</function>

      <function idx="95" symbol="Max2" terminals="2" uniontype="">ma{CHARX}(x0,x1)</function>
      <function idx="96" symbol="Max3" terminals="3" uniontype="">ma{CHARX}(x0,x1,x2)</function>
      <function idx="97" symbol="Max4" terminals="4" uniontype="">ma{CHARX}(x0,x1,x2,x3)</function>

      <function idx="98" symbol="Avg2" terminals="2" uniontype="">((x0+x1)/2)</function>
      <function idx="99" symbol="Avg3" terminals="3" uniontype="">((x0+x1+x2)/3)</function>
      <function idx="100" symbol="Avg4" terminals="4" uniontype="">((x0+x1+x2+x3)/4)</function>

      <function idx="11" symbol="Logi" terminals="1" uniontype="">gepLogi(x0)</function>
      <function idx="101" symbol="Logi2" terminals="2" uniontype="">gepLogi2(x0,x1)</function>
      <function idx="102" symbol="Logi3" terminals="3" uniontype="">gepLogi3(x0,x1,x2)</function>
      <function idx="103" symbol="Logi4" terminals="4" uniontype="">gepLogi4(x0,x1,x2,x3)</function>

      <function idx="104" symbol="Gau" terminals="1" uniontype="">gepGau(x0)</function>
      <function idx="105" symbol="Gau2" terminals="2" uniontype="">gepGau2(x0,x1)</function>
      <function idx="106" symbol="Gau3" terminals="3" uniontype="">gepGau3(x0,x1,x2)</function>
      <function idx="107" symbol="Gau4" terminals="4" uniontype="">gepGau4(x0,x1,x2,x3)</function>

      <function idx="70" symbol="Zero" terminals="1" uniontype="">(0.0)</function>
      <function idx="71" symbol="One" terminals="1" uniontype="">(1.0)</function>
      <function idx="72" symbol="Zero2" terminals="2" uniontype="">(0.0)</function>
      <function idx="73" symbol="One2" terminals="2" uniontype="">(1.0)</function>
      <function idx="74" symbol="Pi" terminals="1" uniontype="">(pi)</function>
      <function idx="75" symbol="E" terminals="1" uniontype="">(2.718281828459045)</function>

      <function idx="18" symbol="Sin" terminals="1" uniontype="">sin(x0)</function>
      <function idx="19" symbol="Cos" terminals="1" uniontype="">cos(x0)</function>
      <function idx="20" symbol="Tan" terminals="1" uniontype="">tan(x0)</function>
      <function idx="21" symbol="Csc" terminals="1" uniontype="">(1/sin(x0))</function>
      <function idx="22" symbol="Sec" terminals="1" uniontype="">(1/cos(x0))</function>
      <function idx="23" symbol="Cot" terminals="1" uniontype="">(1/tan(x0))</function>

      <function idx="24" symbol="Asin" terminals="1" uniontype="">gepAsin(x0)</function>
      <function idx="25" symbol="Acos" terminals="1" uniontype="">gepAcos(x0)</function>
      <function idx="26" symbol="Atan" terminals="1" uniontype="">atan(x0)</function>
      <function idx="27" symbol="Acsc" terminals="1" uniontype="">gepAcsc(x0)</function>
      <function idx="28" symbol="Asec" terminals="1" uniontype="">gepAsec(x0)</function>
      <function idx="29" symbol="Acot" terminals="1" uniontype="">gepAcot(x0)</function>

      <function idx="30" symbol="Sinh" terminals="1" uniontype="">sinh(x0)</function>
      <function idx="31" symbol="Cosh" terminals="1" uniontype="">cosh(x0)</function>
      <function idx="32" symbol="Tanh" terminals="1" uniontype="">tanh(x0)</function>
      <function idx="33" symbol="Csch" terminals="1" uniontype="">gepCsch(x0)</function>
      <function idx="34" symbol="Sech" terminals="1" uniontype="">gepSech(x0)</function>
      <function idx="35" symbol="Coth" terminals="1" uniontype="">gepCoth(x0)</function>

      <function idx="36" symbol="Asinh" terminals="1" uniontype="">asinh(x0)</function>
      <function idx="37" symbol="Acosh" terminals="1" uniontype="">acosh(x0)</function>
      <function idx="38" symbol="Atanh" terminals="1" uniontype="">atanh(x0)</function>
      <function idx="39" symbol="Acsch" terminals="1" uniontype="">gepAcsch(x0)</function>
      <function idx="40" symbol="Asech" terminals="1" uniontype="">gepAsech(x0)</function>
      <function idx="41" symbol="Acoth" terminals="1" uniontype="">gepAcoth(x0)</function>

      <function idx="108" symbol="NOT" terminals="1" uniontype="">(1-x0)</function>

      <function idx="42" symbol="OR1" terminals="2" uniontype="" >(if((x0 &lt; 0) || (x1 &lt; 0)) 1 else 0)</function>
      <function idx="43" symbol="OR2" terminals="2" uniontype="" >(if((x0 >= 0) || (x1 >= 0)) 1 else 0)</function>
      <function idx="109" symbol="OR3" terminals="2" uniontype="">(if((x0 &lt;= 0) || (x1 &lt;= 0)) 1 else 0)</function>
      <function idx="110" symbol="OR4" terminals="2" uniontype="">(if((x0 &lt; 1) || (x1 &lt; 1)) 1 else 0)</function>
      <function idx="111" symbol="OR5" terminals="2" uniontype="">(if((x0 >= 1) || (x1 >= 1)) 1 else 0)</function>
      <function idx="112" symbol="OR6" terminals="2" uniontype="">(if((x0 &lt;= 1) || (x1 &lt;= 1)) 1 else 0)</function>

      <function idx="44" symbol="AND1" terminals="2" uniontype="" >(if((x0 &lt; 0) &amp;&amp; (x1 &lt; 0)) 1 else 0)</function>
      <function idx="45" symbol="AND2" terminals="2" uniontype="" >(if((x0 >= 0) &amp;&amp; (x1 >= 0)) 1 else 0)</function>
      <function idx="113" symbol="AND3" terminals="2" uniontype="">(if((x0 &lt;= 0) &amp;&amp; (x1 &lt;= 0)) 1 else 0)</function>
      <function idx="114" symbol="AND4" terminals="2" uniontype="">(if((x0 &lt; 1) &amp;&amp; (x1 &lt; 1)) 1 else 0)</function>
      <function idx="115" symbol="AND5" terminals="2" uniontype="">(if((x0 >= 1) &amp;&amp; (x1 >= 1)) 1 else 0)</function>
      <function idx="116" symbol="AND6" terminals="2" uniontype="">(if((x0 &lt;= 1) &amp;&amp; (x1 &lt;= 1)) 1 else 0)</function>

      <function idx="46" symbol="LT2A" terminals="2" uniontype="" >(if(x0 &lt; x1) x0 else x1)</function>
      <function idx="47" symbol="GT2A" terminals="2" uniontype="" >(if(x0 > x1) x0 else x1)</function>
      <function idx="48" symbol="LOE2A" terminals="2" uniontype="">(if(x0 &lt;= x1) x0 else x1)</function>
      <function idx="49" symbol="GOE2A" terminals="2" uniontype="">(if(x0 >= x1) x0 else x1)</function>
      <function idx="50" symbol="ET2A" terminals="2" uniontype="" >(if(x0 = x1) x0 else x1)</function>
      <function idx="51" symbol="NET2A" terminals="2" uniontype="">(if(x0 &lt;> x1) x0 else x1)</function>

      <function idx="52" symbol="LT2B" terminals="2" uniontype="" >(if(x0 &lt; x1) 1 else 0)</function>
      <function idx="53" symbol="GT2B" terminals="2" uniontype="" >(if(x0 > x1) 1 else 0)</function>
      <function idx="54" symbol="LOE2B" terminals="2" uniontype="">(if(x0 &lt;= x1) 1 else 0)</function>
      <function idx="55" symbol="GOE2B" terminals="2" uniontype="">(if(x0 >= x1) 1 else 0)</function>
      <function idx="56" symbol="ET2B" terminals="2" uniontype="" >(if(x0 = x1) 1 else 0)</function>
      <function idx="57" symbol="NET2B" terminals="2" uniontype="">(if(x0 &lt;> x1) 1 else 0)</function>

      <function idx="117" symbol="LT2C" terminals="2" uniontype="" >(if(x0 &lt; x1) (x0+x1) else (x0-x1))</function>
      <function idx="118" symbol="GT2C" terminals="2" uniontype="" >(if(x0 > x1) (x0+x1) else (x0-x1))</function>
      <function idx="119" symbol="LOE2C" terminals="2" uniontype="">(if((x0 &lt;= x1) (x0+x1) else (x0-x1))</function>
      <function idx="120" symbol="GOE2C" terminals="2" uniontype="">(if(x0 >= x1) (x0+x1) else (x0-x1))</function>
      <function idx="121" symbol="ET2C" terminals="2" uniontype="" >(if(x0 = x1) (x0+x1) else (x0-x1))</function>
      <function idx="122" symbol="NET2C" terminals="2" uniontype="">(if(x0 &lt;> x1) (x0+x1) else (x0-x1))</function>

      <function idx="123" symbol="LT2D" terminals="2" uniontype="" >(if(x0 &lt; x1) (x0*x1) else (x0/x1))</function>
      <function idx="124" symbol="GT2D" terminals="2" uniontype="" >(if(x0 > x1) (x0*x1) else (x0/x1))</function>
      <function idx="125" symbol="LOE2D" terminals="2" uniontype="">(if(x0 &lt;= x1) (x0*x1) else (x0/x1))</function>
      <function idx="126" symbol="GOE2D" terminals="2" uniontype="">(if(x0 >= x1) (x0*x1) else (x0/x1))</function>
      <function idx="127" symbol="ET2D" terminals="2" uniontype="" >(if(x0 = x1) (x0*x1) else (x0/x1))</function>
      <function idx="128" symbol="NET2D" terminals="2" uniontype="">(if(x0 &lt;> x1) (x0*x1) else (x0/x1))</function>

      <function idx="129" symbol="LT2E" terminals="2" uniontype="" >(if(x0 &lt; x1) (x0+x1) else (x0*x1))</function>
      <function idx="130" symbol="GT2E" terminals="2" uniontype="" >(if(x0 > x1) (x0+x1) else (x0*x1))</function>
      <function idx="131" symbol="LOE2E" terminals="2" uniontype="">(if(x0 &lt;= x1) (x0+x1) else (x0*x1))</function>
      <function idx="132" symbol="GOE2E" terminals="2" uniontype="">(if(x0 >= x1) (x0+x1) else (x0*x1))</function>
      <function idx="133" symbol="ET2E" terminals="2" uniontype="" >(if(x0 = x1) (x0+x1) else (x0*x1))</function>
      <function idx="134" symbol="NET2E" terminals="2" uniontype="">(if(x0 &lt;> x1) (x0+x1) else (x0*x1))</function>

      <function idx="135" symbol="LT2F" terminals="2" uniontype="" >(if(x0 &lt; x1) (x0+x1) else sin(x0*x1))</function>
      <function idx="136" symbol="GT2F" terminals="2" uniontype="" >(if(x0 > x1) (x0+x1) else sin(x0*x1))</function>
      <function idx="137" symbol="LOE2F" terminals="2" uniontype="">(if(x0 &lt;= x1) (x0+x1) else sin(x0*x1))</function>
      <function idx="138" symbol="GOE2F" terminals="2" uniontype="">(if(x0 >= x1) (x0+x1) else sin(x0*x1))</function>
      <function idx="139" symbol="ET2F" terminals="2" uniontype="" >(if(x0 = x1) (x0+x1) else sin(x0*x1))</function>
      <function idx="140" symbol="NET2F" terminals="2" uniontype="">(if(x0 &lt;> x1) (x0+x1) else sin(x0*x1))</function>

      <function idx="141" symbol="LT2G" terminals="2" uniontype="" >(if(x0 &lt; x1) (x0+x1) else atan(x0*x1))</function>
      <function idx="142" symbol="GT2G" terminals="2" uniontype="" >(if(x0 > x1) (x0+x1) else atan(x0*x1))</function>
      <function idx="143" symbol="LOE2G" terminals="2" uniontype="">(if(x0 &lt;= x1) (x0+x1) else atan(x0*x1))</function>
      <function idx="144" symbol="GOE2G" terminals="2" uniontype="">(if(x0 >= x1) (x0+x1) else atan(x0*x1))</function>
      <function idx="145" symbol="ET2G" terminals="2" uniontype="" >(if(x0 = x1) (x0+x1) else atan(x0*x1))</function>
      <function idx="146" symbol="NET2G" terminals="2" uniontype="">(if(x0 &lt;> x1) (x0+x1) else atan(x0*x1))</function>

      <function idx="58" symbol="LT3A" terminals="3" uniontype="" >(if(x0 &lt; 0) x1 else x2)</function>
      <function idx="59" symbol="GT3A" terminals="3" uniontype="" >(if(x0 > 0) x1 else x2)</function>
      <function idx="60" symbol="LOE3A" terminals="3" uniontype="">(if(x0 &lt;= 0) x1 else x2)</function>
      <function idx="61" symbol="GOE3A" terminals="3" uniontype="">(if(x0 >= 0) x1 else x2)</function>
      <function idx="62" symbol="ET3A" terminals="3" uniontype="" >(if(x0 = 0) x1 else x2)</function>
      <function idx="63" symbol="NET3A" terminals="3" uniontype="">(if(x0 &lt;> 0) x1 else x2)</function>

      <function idx="147" symbol="LT3B" terminals="3" uniontype="" >(if((x0+x1) &lt; x2) (x0+x1) else x2)</function>
      <function idx="148" symbol="GT3B" terminals="3" uniontype="" >(if((x0+x1) > x2) (x0+x1) else x2)</function>
      <function idx="149" symbol="LOE3B" terminals="3" uniontype="">(if((x0+x1) &lt;= x2) (x0+x1) else x2)</function>
      <function idx="150" symbol="GOE3B" terminals="3" uniontype="">(if((x0+x1) >= x2) (x0+x1) else x2)</function>
      <function idx="151" symbol="ET3B" terminals="3" uniontype="" >(if((x0+x1) = x2) (x0+x1) else x2)</function>
      <function idx="152" symbol="NET3B" terminals="3" uniontype="">(if((x0+x1) &lt;> x2) (x0+x1) else x2)</function>

      <function idx="153" symbol="LT3C" terminals="3" uniontype="" >(if((x0+x1) &lt; x2) (x0+x1) else (x0+x2))</function>
      <function idx="154" symbol="GT3C" terminals="3" uniontype="" >(if((x0+x1) > x2) (x0+x1) else (x0+x2))</function>
      <function idx="155" symbol="LOE3C" terminals="3" uniontype="">(if((x0+x1) &lt;= x2) (x0+x1) else (x0+x2))</function>
      <function idx="156" symbol="GOE3C" terminals="3" uniontype="">(if((x0+x1) >= x2) (x0+x1) else (x0+x2))</function>
      <function idx="157" symbol="ET3C" terminals="3" uniontype="" >(if((x0+x1) = x2) (x0+x1) else (x0+x2))</function>
      <function idx="158" symbol="NET3C" terminals="3" uniontype="">(if((x0+x1) &lt;> x2) (x0+x1) else (x0+x2))</function>
      
      <function idx="159" symbol="LT3D" terminals="3" uniontype="" >(if((x0+x1) &lt; x2) (x0+x1) else (x0-x2))</function>
      <function idx="160" symbol="GT3D" terminals="3" uniontype="" >(if((x0+x1) > x2) (x0+x1) else (x0-x2))</function>
      <function idx="161" symbol="LOE3D" terminals="3" uniontype="">(if((x0+x1) &lt;= x2) (x0+x1) else (x0-x2))</function>
      <function idx="162" symbol="GOE3D" terminals="3" uniontype="">(if((x0+x1) >= x2) (x0+x1) else (x0-x2))</function>
      <function idx="163" symbol="ET3D" terminals="3" uniontype="" >(if((x0+x1) = x2) (x0+x1) else (x0-x2))</function>
      <function idx="164" symbol="NET3D" terminals="3" uniontype="">(if((x0+x1) &lt;> x2) (x0+x1) else (x0-x2))</function>

      <function idx="165" symbol="LT3E" terminals="3" uniontype="" >(if((x0+x1) &lt; x2) (x0+x1) else (x0*x2))</function>
      <function idx="166" symbol="GT3E" terminals="3" uniontype="" >(if((x0+x1) > x2) (x0+x1) else (x0*x2))</function>
      <function idx="167" symbol="LOE3E" terminals="3" uniontype="">(if((x0+x1) &lt;= x2) (x0+x1) else (x0*x2))</function>
      <function idx="168" symbol="GOE3E" terminals="3" uniontype="">(if((x0+x1) >= x2) (x0+x1) else (x0*x2))</function>
      <function idx="169" symbol="ET3E" terminals="3" uniontype="" >(if((x0+x1) = x2) (x0+x1) else (x0*x2))</function>
      <function idx="170" symbol="NET3E" terminals="3" uniontype="">(if((x0+x1) &lt;> x2) (x0+x1) else (x0*x2))</function>

      <function idx="171" symbol="LT3F" terminals="3" uniontype="" >(if((x0+x1) &lt; x2) (x0+x1) else (x0/x2))</function>
      <function idx="172" symbol="GT3F" terminals="3" uniontype="" >(if((x0+x1) > x2) (x0+x1) else (x0/x2))</function>
      <function idx="173" symbol="LOE3F" terminals="3" uniontype="">(if((x0+x1) &lt;= x2) (x0+x1) else (x0/x2))</function>
      <function idx="174" symbol="GOE3F" terminals="3" uniontype="">(if((x0+x1) >= x2) (x0+x1) else (x0/x2))</function>
      <function idx="175" symbol="ET3F" terminals="3" uniontype="" >(if((x0+x1) = x2) (x0+x1) else (x0/x2))</function>
      <function idx="176" symbol="NET3F" terminals="3" uniontype="">(if((x0+x1) &lt;> x2) (x0+x1) else (x0/x2))</function>

      <function idx="177" symbol="LT3G" terminals="3" uniontype="" >(if((x0+x1) &lt; x2) (x0*x1) else (x0+x2))</function>
      <function idx="178" symbol="GT3G" terminals="3" uniontype="" >(if((x0+x1) > x2) (x0*x1) else (x0+x2))</function>
      <function idx="179" symbol="LOE3G" terminals="3" uniontype="">(if((x0+x1) &lt;= x2) (x0*x1) else (x0+x2))</function>
      <function idx="180" symbol="GOE3G" terminals="3" uniontype="">(if((x0+x1) >= x2) (x0*x1) else (x0+x2))</function>
      <function idx="181" symbol="ET3G" terminals="3" uniontype="" >(if((x0+x1) = x2) (x0*x1) else (x0+x2))</function>
      <function idx="182" symbol="NET3G" terminals="3" uniontype="">(if((x0+x1) &lt;> x2) (x0*x1) else (x0+x2))</function>

      <function idx="183" symbol="LT3H" terminals="3" uniontype="" >(if((x0+x1) &lt; x2) (x0*x1) else (x0-x2))</function>
      <function idx="184" symbol="GT3H" terminals="3" uniontype="" >(if((x0+x1) > x2) (x0*x1) else (x0-x2))</function>
      <function idx="185" symbol="LOE3H" terminals="3" uniontype="">(if((x0+x1) &lt;= x2) (x0*x1) else (x0-x2))</function>
      <function idx="186" symbol="GOE3H" terminals="3" uniontype="">(if((x0+x1) >= x2) (x0*x1) else (x0-x2))</function>
      <function idx="187" symbol="ET3H" terminals="3" uniontype="" >(if((x0+x1) = x2) (x0*x1) else (x0-x2))</function>
      <function idx="188" symbol="NET3H" terminals="3" uniontype="">(if((x0+x1) &lt;> x2) (x0*x1) else (x0-x2))</function>

      <function idx="189" symbol="LT3I" terminals="3" uniontype="" >(if((x0+x1) &lt; x2) (x0*x1) else (x0*x2))</function>
      <function idx="190" symbol="GT3I" terminals="3" uniontype="" >(if((x0+x1) > x2) (x0*x1) else (x0*x2))</function>
      <function idx="191" symbol="LOE3I" terminals="3" uniontype="">(if((x0+x1) &lt;= x2) (x0*x1) else (x0*x2))</function>
      <function idx="192" symbol="GOE3I" terminals="3" uniontype="">(if((x0+x1) >= x2) (x0*x1) else (x0*x2))</function>
      <function idx="193" symbol="ET3I" terminals="3" uniontype="" >(if((x0+x1) = x2) (x0*x1) else (x0*x2))</function>
      <function idx="194" symbol="NET3I" terminals="3" uniontype="">(if((x0+x1) &lt;> x2) (x0*x1) else (x0*x2))</function>

      <function idx="195" symbol="LT3J" terminals="3" uniontype="" >(if((x0+x1) &lt; x2) (x0*x1) else (x0/x2))</function>
      <function idx="196" symbol="GT3J" terminals="3" uniontype="" >(if((x0+x1) > x2) (x0*x1) else (x0/x2))</function>
      <function idx="197" symbol="LOE3J" terminals="3" uniontype="">(if((x0+x1) &lt;= x2) (x0*x1) else (x0/x2))</function>
      <function idx="198" symbol="GOE3J" terminals="3" uniontype="">(if((x0+x1) >= x2) (x0*x1) else (x0/x2))</function>
      <function idx="199" symbol="ET3J" terminals="3" uniontype="" >(if((x0+x1) = x2) (x0*x1) else (x0/x2))</function>
      <function idx="200" symbol="NET3J" terminals="3" uniontype="">(if((x0+x1) &lt;> x2) (x0*x1) else (x0/x2))</function>

      <function idx="201" symbol="LT3K" terminals="3" uniontype="" >(if((x0+x1) &lt; x2) (x0+x1+x2) else sin(x0*x1*x2))</function>
      <function idx="202" symbol="GT3K" terminals="3" uniontype="" >(if((x0+x1) > x2) (x0+x1+x2) else sin(x0*x1*x2))</function>
      <function idx="203" symbol="LOE3K" terminals="3" uniontype="">(if((x0+x1) &lt;= x2) (x0+x1+x2) else sin(x0*x1*x2))</function>
      <function idx="204" symbol="GOE3K" terminals="3" uniontype="">(if((x0+x1) >= x2) (x0+x1+x2) else sin(x0*x1*x2))</function>
      <function idx="205" symbol="ET3K" terminals="3" uniontype="" >(if((x0+x1) = x2) (x0+x1+x2) else sin(x0*x1*x2))</function>
      <function idx="206" symbol="NET3K" terminals="3" uniontype="">(if((x0+x1) &lt;> x2) (x0+x1+x2) else sin(x0*x1*x2))</function>

      <function idx="207" symbol="LT3L" terminals="3" uniontype="" >(if((x0+x1) &lt; x2) (x0+x1+x2) else atan(x0*x1*x2))</function>
      <function idx="208" symbol="GT3L" terminals="3" uniontype="" >(if((x0+x1) > x2) (x0+x1+x2) else atan(x0*x1*x2))</function>
      <function idx="209" symbol="LOE3L" terminals="3" uniontype="">(if((x0+x1) &lt;= x2) (x0+x1+x2) else atan(x0*x1*x2))</function>
      <function idx="210" symbol="GOE3L" terminals="3" uniontype="">(if((x0+x1) >= x2) (x0+x1+x2) else atan(x0*x1*x2))</function>
      <function idx="211" symbol="ET3L" terminals="3" uniontype="" >(if((x0+x1) = x2) (x0+x1+x2) else atan(x0*x1*x2))</function>
      <function idx="212" symbol="NET3L" terminals="3" uniontype="">(if((x0+x1) &lt;> x2) (x0+x1+x2) else atan(x0*x1*x2))</function>

      <function idx="64" symbol="LT4A" terminals="4" uniontype="" >(if(x0 &lt; x1) x2 else x3)</function>
      <function idx="65" symbol="GT4A" terminals="4" uniontype="" >(if(x0 >  x1) x2 else x3)</function>
      <function idx="66" symbol="LOE4A" terminals="4" uniontype="">(if(x0 &lt;=  x1) x2 else x3)</function>
      <function idx="67" symbol="GOE4A" terminals="4" uniontype="">(if(x0 >=  x1) x2 else x3)</function>
      <function idx="68" symbol="ET4A" terminals="4" uniontype="" >(if(x0 =  x1) x2 else x3)</function>
      <function idx="69" symbol="NET4A" terminals="4" uniontype="">(if(x0 &lt;>  x1) x2 else x3)</function>

      <function idx="213" symbol="LT4B" terminals="4" uniontype="" >(if((x0+x1) &lt; (x2+x3)) x2 else x3)</function>
      <function idx="214" symbol="GT4B" terminals="4" uniontype="" >(if((x0+x1) > (x2+x3)) x2 else x3)</function>
      <function idx="215" symbol="LOE4B" terminals="4" uniontype="">(if((x0+x1) &lt;= (x2+x3)) x2 else x3)</function>
      <function idx="216" symbol="GOE4B" terminals="4" uniontype="">(if((x0+x1) >= (x2+x3)) x2 else x3)</function>
      <function idx="217" symbol="ET4B" terminals="4" uniontype="" >(if((x0+x1) = (x2+x3)) x2 else x3)</function>
      <function idx="218" symbol="NET4B" terminals="4" uniontype="">(if((x0+x1) &lt;> (x2+x3)) x2 else x3)</function>

      <function idx="219" symbol="LT4C" terminals="4" uniontype="">(if((x0+x1) &lt; (x2+x3)) (x0+x1) else (x2+x3))</function>
      <function idx="220" symbol="GT4C" terminals="4" uniontype="">(if((x0+x1) > (x2+x3)) (x0+x1) else (x2+x3))</function>
      <function idx="221" symbol="LOE4C" terminals="4" uniontype="">(if((x0+x1) &lt;= (x2+x3)) (x0+x1) else (x2+x3))</function>
      <function idx="222" symbol="GOE4C" terminals="4" uniontype="">(if((x0+x1) >= (x2+x3)) (x0+x1) else (x2+x3))</function>
      <function idx="223" symbol="ET4C" terminals="4" uniontype="">(if((x0+x1) = (x2+x3)) (x0+x1) else (x2+x3))</function>
      <function idx="224" symbol="NET4C" terminals="4" uniontype="">(if((x0+x1) &lt;> (x2+x3)) (x0+x1) else (x2+x3))</function>

      <function idx="225" symbol="LT4D" terminals="4" uniontype="">(if((x0+x1) &lt; (x2+x3)) (x0+x1) else (x2-x3))</function>
      <function idx="226" symbol="GT4D" terminals="4" uniontype="">(if((x0+x1) > (x2+x3)) (x0+x1) else (x2-x3))</function>
      <function idx="227" symbol="LOE4D" terminals="4" uniontype="">(if((x0+x1) &lt;= (x2+x3)) (x0+x1) else (x2-x3))</function>
      <function idx="228" symbol="GOE4D" terminals="4" uniontype="">(if((x0+x1) >= (x2+x3)) (x0+x1) else (x2-x3))</function>
      <function idx="229" symbol="ET4D" terminals="4" uniontype="">(if((x0+x1) = (x2+x3)) (x0+x1) else (x2-x3))</function>
      <function idx="230" symbol="NET4D" terminals="4" uniontype="">(if((x0+x1) &lt;> (x2+x3)) (x0+x1) else (x2-x3))</function>

      <function idx="231" symbol="LT4E" terminals="4" uniontype="">(if((x0+x1) &lt; (x2+x3)) (x0+x1) else (x2*x3))</function>
      <function idx="232" symbol="GT4E" terminals="4" uniontype="">(if((x0+x1) > (x2+x3)) (x0+x1) else (x2*x3))</function>
      <function idx="233" symbol="LOE4E" terminals="4" uniontype="">(if((x0+x1) &lt;= (x2+x3)) (x0+x1) else (x2*x3))</function>
      <function idx="234" symbol="GOE4E" terminals="4" uniontype="">(if((x0+x1) >= (x2+x3)) (x0+x1) else (x2*x3))</function>
      <function idx="235" symbol="ET4E" terminals="4" uniontype="">(if((x0+x1) = (x2+x3)) (x0+x1) else (x2*x3))</function>
      <function idx="236" symbol="NET4E" terminals="4" uniontype="">(if((x0+x1) &lt;> (x2+x3)) (x0+x1) else (x2*x3))</function>

      <function idx="237" symbol="LT4F" terminals="4" uniontype="">(if((x0+x1) &lt; (x2+x3)) (x0+x1) else (x2/x3))</function>
      <function idx="238" symbol="GT4F" terminals="4" uniontype="">(if((x0+x1) > (x2+x3)) (x0+x1) else (x2/x3))</function>
      <function idx="239" symbol="LOE4F" terminals="4" uniontype="">(if((x0+x1) &lt;= (x2+x3)) (x0+x1) else (x2/x3))</function>
      <function idx="240" symbol="GOE4F" terminals="4" uniontype="">(if((x0+x1) >= (x2+x3)) (x0+x1) else (x2/x3))</function>
      <function idx="241" symbol="ET4F" terminals="4" uniontype="">(if((x0+x1) = (x2+x3)) (x0+x1) else (x2/x3))</function>
      <function idx="242" symbol="NET4F" terminals="4" uniontype="">(if((x0+x1) &lt;> (x2+x3)) (x0+x1) else (x2/x3))</function>

      <function idx="243" symbol="LT4G" terminals="4" uniontype="">(if((x0+x1) &lt; (x2+x3)) (x0*x1) else (x2+x3))</function>
      <function idx="244" symbol="GT4G" terminals="4" uniontype="">(if((x0+x1) > (x2+x3)) (x0*x1) else (x2+x3))</function>
      <function idx="245" symbol="LOE4G" terminals="4" uniontype="">(if((x0+x1) &lt;= (x2+x3)) (x0*x1) else (x2+x3))</function>
      <function idx="246" symbol="GOE4G" terminals="4" uniontype="">(if((x0+x1) >= (x2+x3)) (x0*x1) else (x2+x3))</function>
      <function idx="247" symbol="ET4G" terminals="4" uniontype="">(if((x0+x1) = (x2+x3)) (x0*x1) else (x2+x3))</function>
      <function idx="248" symbol="NET4G" terminals="4" uniontype="">(if((x0+x1) &lt;> (x2+x3)) (x0*x1) else (x2+x3))</function>

      <function idx="249" symbol="LT4H" terminals="4" uniontype="">(if((x0+x1) &lt; (x2+x3)) (x0*x1) else (x2-x3))</function>
      <function idx="250" symbol="GT4H" terminals="4" uniontype="">(if((x0+x1) > (x2+x3)) (x0*x1) else (x2-x3))</function>
      <function idx="251" symbol="LOE4H" terminals="4" uniontype="">(if((x0+x1) &lt;= (x2+x3)) (x0*x1) else (x2-x3))</function>
      <function idx="252" symbol="GOE4H" terminals="4" uniontype="">(if((x0+x1) >= (x2+x3)) (x0*x1) else (x2-x3))</function>
      <function idx="253" symbol="ET4H" terminals="4" uniontype="">(if((x0+x1) = (x2+x3)) (x0*x1) else (x2-x3))</function>
      <function idx="254" symbol="NET4H" terminals="4" uniontype="">(if((x0+x1) &lt;> (x2+x3)) (x0*x1) else (x2-x3))</function>

      <function idx="255" symbol="LT4I" terminals="4" uniontype="">(if((x0+x1) &lt; (x2+x3)) (x0*x1) else (x2*x3))</function>
      <function idx="256" symbol="GT4I" terminals="4" uniontype="">(if((x0+x1) > (x2+x3)) (x0*x1) else (x2*x3))</function>
      <function idx="257" symbol="LOE4I" terminals="4" uniontype="">(if((x0+x1) &lt;= (x2+x3)) (x0*x1) else (x2*x3))</function>
      <function idx="258" symbol="GOE4I" terminals="4" uniontype="">(if((x0+x1) >= (x2+x3)) (x0*x1) else (x2*x3))</function>
      <function idx="259" symbol="ET4I" terminals="4" uniontype="">(if((x0+x1) = (x2+x3)) (x0*x1) else (x2*x3))</function>
      <function idx="260" symbol="NET4I" terminals="4" uniontype="">(if((x0+x1) &lt;> (x2+x3)) (x0*x1) else (x2*x3))</function>

      <function idx="261" symbol="LT4J" terminals="4" uniontype="">(if((x0+x1) &lt; (x2+x3)) (x0*x1) else (x2/x3))</function>
      <function idx="262" symbol="GT4J" terminals="4" uniontype="">(if((x0+x1) > (x2+x3)) (x0*x1) else (x2/x3))</function>
      <function idx="263" symbol="LOE4J" terminals="4" uniontype="">(if((x0+x1) &lt;= (x2+x3)) (x0*x1) else (x2/x3))</function>
      <function idx="264" symbol="GOE4J" terminals="4" uniontype="">(if((x0+x1) >= (x2+x3)) (x0*x1) else (x2/x3))</function>
      <function idx="265" symbol="ET4J" terminals="4" uniontype="">(if((x0+x1) = (x2+x3)) (x0*x1) else (x2/x3))</function>
      <function idx="266" symbol="NET4J" terminals="4" uniontype="">(if((x0+x1) &lt;> (x2+x3)) (x0*x1) else (x2/x3))</function>

      <function idx="267" symbol="LT4K" terminals="4" uniontype="">(if((x0+x1) &lt; (x2+x3)) sin(x0*x1) else sin(x2*x3))</function>
      <function idx="268" symbol="GT4K" terminals="4" uniontype="">(if((x0+x1) > (x2+x3)) sin(x0*x1) else sin(x2*x3))</function>
      <function idx="269" symbol="LOE4K" terminals="4" uniontype="">(if((x0+x1) &lt;= (x2+x3)) sin(x0*x1) else sin(x2*x3))</function>
      <function idx="270" symbol="GOE4K" terminals="4" uniontype="">(if((x0+x1) >= (x2+x3)) sin(x0*x1) else sin(x2*x3))</function>
      <function idx="271" symbol="ET4K" terminals="4" uniontype="">(if((x0+x1) = (x2+x3)) sin(x0*x1) else sin(x2*x3))</function>
      <function idx="272" symbol="NET4K" terminals="4" uniontype="">(if((x0+x1) &lt;> (x2+x3)) sin(x0*x1) else sin(x2*x3))</function>

      <function idx="273" symbol="LT4L" terminals="4" uniontype="" >(if((x0+x1) &lt; (x2+x3)) atan(x0*x1) else atan(x2*x3))</function>
      <function idx="274" symbol="GT4L" terminals="4" uniontype="" >(if((x0+x1) > (x2+x3)) atan(x0*x1) else atan(x2*x3))</function>
      <function idx="275" symbol="LOE4L" terminals="4" uniontype="">(if((x0+x1) &lt;= (x2+x3)) atan(x0*x1) else atan(x2*x3))</function>
      <function idx="276" symbol="GOE4L" terminals="4" uniontype="">(if((x0+x1) >= (x2+x3)) atan(x0*x1) else atan(x2*x3))</function>
      <function idx="277" symbol="ET4L" terminals="4" uniontype="" >(if((x0+x1) = (x2+x3)) atan(x0*x1) else atan(x2*x3))</function>
      <function idx="278" symbol="NET4L" terminals="4" uniontype="">(if((x0+x1) &lt;> (x2+x3)) atan(x0*x1) else atan(x2*x3))</function>
   </functions>
   
   <!-- Code Structure -->
    <order>
        <item name="Open"></item>
        <item name="Header"></item>
        <item name="RandomConstants"></item>
        <item name="Constants"></item>
        <item name="TemporaryVariable"></item>
        <item name="Body"></item>
        <item name="Footer"></item>
        <item name="Helpers"></item>
        <item name="DDF"></item>
        <item name="UDF"></item>
        <item name="Close"></item>
    </order>
    
   <!-- Opening and Closing Statements -->
   <open></open>
   <close></close>
   
   <!-- The default header is applied to all non specified cases. -->
   <headers>
      <header type="default" replace="no">gepModel &lt;- function(d){CRLF}{</header>
      <header type="CL" replace="yes">gepModel &lt;- function(d){CRLF}{{CRLF}{CRLF}{TAB}ROUNDING_THRESHOLD &lt;- {set_ff#Threshold}{CRLF}</header>
   </headers>

   <randomconstants>
       <randomconst type="default" replace="no">{TAB}{labelname} &lt;- {labelindex}{CRLF}</randomconst>
   </randomconstants>

   <!-- Label constants -->
   <constants>
      <constant type="default" replace="no" labelindex="0">{TAB}{labelname} &lt;- {labelindex}{CRLF}</constant>
   </constants>
    
   <!-- The default temporary variable name is applied to all non specified cases. -->
   <tempvars>
      <tempvar type="default" typename="Double" varname="dblTemp"></tempvar>
   </tempvars>
   <endline>{CRLF}</endline>
   <!-- Number of TABs to add to each line in the code block -->
   <indent>1</indent>
   <!-- parenstype can be either 0->() or 1->[]. Defines the parentheses used in arrays-->
   <parenstype>1</parenstype>
   <footers>
      <footer type="default" replace="no">return(dblTemp){CRLF}} </footer>
      <footer type="CL" replace="no">{tempvarname} &lt;- if({tempvarname} >= ROUNDING_THRESHOLD) 1 else 0{CRLF}{CRLF}}</footer>
   </footers>
   <helpers count="17">

      <helper replaces="Logi">gepLogi &lt;- function(x){CRLF}{{CRLF}{TAB}return(1 / (1 + exp(-x))){CRLF}}{CRLF}</helper>
      <helper replaces="Logi2">gepLogi2 &lt;- function(x, y){CRLF}{{CRLF}{TAB}return(1 / (1 + exp(-(x + y)))){CRLF}}{CRLF}</helper>
      <helper replaces="Logi3">gepLogi3 &lt;- function(x, y, z){CRLF}{{CRLF}{TAB}return(1 / (1 + exp(-(x + y + z)))){CRLF}}{CRLF}</helper>
      <helper replaces="Logi4">gepLogi4 &lt;- function(a, b, c, d){CRLF}{{CRLF}{TAB}return(1 / (1 + exp(-(a + b + c + d)))){CRLF}}{CRLF}</helper>

      <helper replaces="Gau">gepGau &lt;- function(x){CRLF}{{CRLF}{TAB}return (exp(-(x ^ 2))){CRLF}}{CRLF}</helper>     
      <helper replaces="Gau2">gepGau2 &lt;- function(x, y){CRLF}{TAB}return (exp(-((x + y) ^ 2))){CRLF}}{CRLF}</helper>
      <helper replaces="Gau3">gepGau3 &lt;- function(x, y, z){CRLF}{TAB}return (exp(-((x + y + z) ^ 2))){CRLF}}{CRLF}</helper>
      <helper replaces="Gau4">gepGau4 &lt;- function(a, b, c, d){CRLF}{TAB}return (exp(-((a + b + c + d) ^ 2))){CRLF}}{CRLF}</helper>

      <helper replaces="Acsc">gepAcsc &lt;- function(x){CRLF}{{CRLF}{TAB}return (atan(sign(x)/sqrt(x*x-1))){CRLF}}</helper>
      <helper replaces="Asec">gepAsec &lt;- function(x){CRLF}{{CRLF}{TAB}return (2*atan(1)-atan(sign(x)/sqrt(x*x-1))){CRLF}}</helper>
      <helper replaces="Acot">gepAcot &lt;- function(x) {CRLF}{{CRLF}{TAB}return(atan(1/x)){CRLF}}</helper>

      <helper replaces="Csch">gepCsch &lt;- function(x){CRLF}{{CRLF}{TAB}if (abs(x) &gt; 709){CRLF}{TAB}{TAB}return (0){CRLF}{TAB}else{CRLF}{TAB}{TAB}return (2/(exp(x)-exp(-x))){CRLF}}</helper>
      <helper replaces="Sech">gepSech &lt;- function(x) {CRLF}{{CRLF}{TAB}if (abs(x) &gt; 709){CRLF}{TAB}{TAB}return (0){CRLF}{TAB}else{CRLF}{TAB}{TAB}return (2/(exp(x)+exp(-x))){CRLF}}</helper>
      <helper replaces="Coth">gepCoth &lt;- function(x) {CRLF}{{CRLF}{TAB}if (abs(x) &lt;= 709){CRLF}{TAB}{TAB}return ((exp(x)+exp(-x))/(exp(x)-exp(-x))){CRLF}{TAB}else{CRLF}{TAB}{{CRLF}{TAB}{TAB}if (x > 0){CRLF}{TAB}{TAB}{TAB}return (-1){CRLF}{TAB}{TAB}else{CRLF}{TAB}{TAB}{TAB}return (1){CRLF}{TAB}}{CRLF}}</helper>
      
      <helper replaces="Acsch">gepAcsch &lt;- function(x){CRLF}{{CRLF}{TAB}return (log((sign(x)*sqrt(x*x+1)+1)/x)){CRLF}}</helper>
      
      <helper replaces="Asech">gepAsech &lt;- function(x){CRLF}{TAB}return(log((sqr(-x * x + 1) + 1) / x)){CRLF}}{CRLF}</helper>
      <helper replaces="Acoth">gepAcoth &lt;- function(x){CRLF}{TAB}return(log((x + 1) / (x - 1)) / 2){CRLF}}{CRLF}</helper>

   </helpers>

   <keywords>
      <keyword>function</keyword>
      <keyword>if</keyword>
      <keyword>else</keyword>
   </keywords>
   <commentmark>#</commentmark>
   <startindex>1</startindex>
   <ddfcomment># Add a DDF with the name {FUNCTION_SYMBOL} in {LANGUAGE}{CRLF}# and a parameter list equivalent to {PARAMETER_LIST}{CRLF}</ddfcomment>
   <udfcomment># Add a UDF with the name {FUNCTION_SYMBOL} in {LANGUAGE}{CRLF}</udfcomment>
</grammar>