Skip to content
Snippets Groups Projects
ArithApproximation.af3_23 101.99 KiB
<?xml version="1.0" encoding="UTF-8"?>
<org-fortiss-af3-project:FileProject xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org-fortiss-af3-expression="http://www.fortiss.org/af3/expression" xmlns:org-fortiss-af3-expression-terms="http://www.fortiss.org/af3/expression/terms" xmlns:org-fortiss-af3-expression-terms-imperative="http://www.fortiss.org/af3/expression/terms/imperative" xmlns:org-fortiss-af3-expression-types="http://www.fortiss.org/af3/expression/types" xmlns:org-fortiss-af3-project="http://www.fortiss.org/af3/project" xmlns:org-fortiss-af3-project-configuration="http://www.fortiss.org/af3/project/configuration" xmlns:org-fortiss-af3-project-development="http://www.fortiss.org/af3/project/development" xmi:id="0" name="ArithApproximation">
  <rootElements xsi:type="org-fortiss-af3-project:ProjectConfiguration" xmi:id="1" id="1" name="" comment="">
    <configurationElements xsi:type="org-fortiss-af3-project-configuration:TypeSystemConfiguration" xmi:id="2" id="2" name="" comment="">
      <typesystem xsi:type="org-fortiss-af3-expression:MicroTypeSystem"/>
    </configurationElements>
    <configurationElements xsi:type="org-fortiss-af3-project-configuration:DevelopmentProcessConfiguration" xmi:id="3" id="3" name="" comment="">
      <development xsi:type="org-fortiss-af3-project-development:DummyDevelopmentProcess"/>
    </configurationElements>
  </rootElements>
  <rootElements xsi:type="org-fortiss-af3-expression:DataDictionary" xmi:id="6" id="6" name="" comment="">
    <functions xmi:id="10" id="10">
      <function xmi:id="11" id="11" name="abs" comment="Absolute value"/>
      <parameters>
        <variable identifier="_D"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="LowerThan"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_D"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Negate"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_D"/>
              </value>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_D"/>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="23" id="23">
      <function xmi:id="24" id="24" name="PI" comment="Predefined constant pi"/>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="3.14159265358979"/>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="25" id="25">
      <function xmi:id="26" id="26" name="PI_2" comment="Predefined constant pi/2"/>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.5707963267949"/>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="27" id="27">
      <function xmi:id="28" id="28" name="PI_3" comment="Predefined constant pi/3"/>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0471975511966"/>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="29" id="29">
      <function xmi:id="30" id="30" name="PI_4" comment="Predefined constant pi/4"/>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="0.78539816339745"/>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="31" id="31">
      <function xmi:id="32" id="32" name="PI_6" comment="Predefined constant pi/6"/>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="0.5235987755983"/>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="33" id="33">
      <function xmi:id="34" id="34" name="PI_12" comment="Predefined constant pi/12"/>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="0.26179938779915"/>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="4" id="4">
      <function xmi:id="5" id="5" name="powerAux" comment="Auxiliary function for power. _n must be positive integer"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_n"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Equal"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_n"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="197" id="197" name="powerAux" comment=""/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_n"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
                  </arguments>
                </arguments>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="194" id="194">
      <function xmi:id="195" id="195" name="power" comment="Integer power _n of _x"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_n"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="LowerThan"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_n"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="202" id="202" name="powerAux" comment=""/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                </arguments>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Negate"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_n"/>
                </arguments>
              </value>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
              <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Equal"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_n"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
              </guard>
              <thenBlock>
                <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
                  <value xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
                </statements>
              </thenBlock>
              <elseBlock>
                <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
                  <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="203" id="203" name="powerAux" comment=""/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_n"/>
                  </value>
                </statements>
              </elseBlock>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="204" id="204">
      <function xmi:id="205" id="205" name="frac" comment="Fractional part of a double"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Modulo"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
          </value>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="208" id="208">
      <function xmi:id="209" id="209" name="floor" comment="Integer closest to the number and less or equal"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Equal"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="218" id="218" name="frac" comment=""/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </arguments>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
              <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="GreaterThan"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="219" id="219" name="frac" comment=""/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                </arguments>
                <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
              </guard>
              <thenBlock>
                <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
                  <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                      <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="220" id="220" name="frac" comment=""/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                    </arguments>
                  </value>
                </statements>
              </thenBlock>
              <elseBlock>
                <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
                  <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                      <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                        <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="221" id="221" name="frac" comment=""/>
                        <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                      </arguments>
                    </arguments>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
                  </value>
                </statements>
              </elseBlock>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="211" id="211">
      <function xmi:id="212" id="212" name="ceil" comment="Integer closest to the number and greater or equal"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Equal"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="222" id="222" name="frac" comment=""/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </arguments>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
              <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="GreaterThan"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="223" id="223" name="frac" comment=""/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                </arguments>
                <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
              </guard>
              <thenBlock>
                <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
                  <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                      <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                        <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="224" id="224" name="frac" comment=""/>
                        <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                      </arguments>
                    </arguments>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
                  </value>
                </statements>
              </thenBlock>
              <elseBlock>
                <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
                  <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                      <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="225" id="225" name="frac" comment=""/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                    </arguments>
                  </value>
                </statements>
              </elseBlock>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="256" id="256">
      <function xmi:id="257" id="257" name="sign" comment="Sign of the number"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="LowerThan"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:IntConst" value="-1"/>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
              <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Equal"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
              </guard>
              <thenBlock>
                <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
                  <value xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
                </statements>
              </thenBlock>
              <elseBlock>
                <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
                  <value xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
                </statements>
              </elseBlock>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TInt"/>
    </functions>
    <functions xmi:id="258" id="258">
      <function xmi:id="259" id="259" name="m1power" comment="Minus one to the given power"/>
      <parameters>
        <variable identifier="_n"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Equal"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Modulo"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_n"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="2"/>
            </arguments>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:IntConst" value="-1"/>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TInt"/>
    </functions>
    <functions xmi:id="260" id="260">
      <function xmi:id="261" id="261" name="sin90SeriesRecAux" comment="Auxiliary function for sin: Taylor series computation of sine"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_res_curr"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_x_nom"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_x_denom"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_depth_curr"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <parameters>
        <variable identifier="_depth_max"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Assignment">
          <variable identifier="_x_nom"/>
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x_nom"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </arguments>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
          </value>
        </statements>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Assignment">
          <variable identifier="_x_denom"/>
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x_denom"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="2"/>
              </arguments>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
            </arguments>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="2"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
              </arguments>
              <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
            </arguments>
          </value>
        </statements>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Assignment">
          <variable identifier="_res_curr"/>
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_res_curr"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="323" id="323" name="m1power" comment=""/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
                </arguments>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x_nom"/>
              </arguments>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x_denom"/>
            </arguments>
          </value>
        </statements>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="GreaterEqual"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_max"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_res_curr"/>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="324" id="324" name="sin90SeriesRecAux" comment=""/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_res_curr"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x_nom"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x_denom"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
                </arguments>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_max"/>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="267" id="267">
      <function xmi:id="268" id="268" name="sin90SeriesAux" comment="Auxiliary function for sin: Taylor series computation of sine"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="327" id="327" name="sin90SeriesRecAux" comment=""/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="5"/>
          </value>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="276" id="276">
      <function xmi:id="277" id="277" name="sin180Aux" comment="Auxiliary function for sin"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="LowerThan"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="278" id="278" name="PI_2" comment=""/>
            </arguments>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="279" id="279" name="sin90SeriesAux" comment=""/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
              </value>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="280" id="280" name="sin90SeriesAux" comment=""/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="281" id="281" name="PI" comment=""/>
                  </arguments>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                </arguments>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="282" id="282">
      <function xmi:id="283" id="283" name="sinAux" comment="Auxiliary function for sin: takes for computing sin(x) the absolute value of x as _x, and its sign as _sign "/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_sign"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Assignment">
          <variable identifier="_x"/>
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Modulo"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="2"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="348" id="348" name="PI" comment=""/>
              </arguments>
            </arguments>
          </value>
        </statements>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="LowerThan"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="349" id="349" name="PI" comment=""/>
            </arguments>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_sign"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="350" id="350" name="sin180Aux" comment=""/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                </arguments>
              </value>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_sign"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Negate"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="351" id="351" name="sin180Aux" comment=""/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                      <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                        <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="352" id="352" name="PI" comment=""/>
                      </arguments>
                    </arguments>
                  </arguments>
                </arguments>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="298" id="298">
      <function xmi:id="299" id="299" name="sin" comment="Sine"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="340" id="340" name="sinAux" comment=""/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="341" id="341" name="abs" comment=""/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </arguments>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="342" id="342" name="sign" comment=""/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </arguments>
          </value>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="355" id="355">
      <function xmi:id="356" id="356" name="cos" comment="Cosine"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="360" id="360" name="sin" comment=""/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="361" id="361" name="PI_2" comment=""/>
              </arguments>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </arguments>
          </value>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="362" id="362">
      <function xmi:id="363" id="363" name="tan" comment="Tangent"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="366" id="366" name="sin" comment=""/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </arguments>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="367" id="367" name="cos" comment=""/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </arguments>
          </value>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="368" id="368">
      <function xmi:id="369" id="369" name="atanSeriesRecAux" comment="Auxiliary function for atan: Taylor series computation of arctangent"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_res_curr"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_x_nom"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_x_denom"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_depth_curr"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <parameters>
        <variable identifier="_depth_max"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Assignment">
          <variable identifier="_x_nom"/>
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x_nom"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </arguments>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
          </value>
        </statements>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Assignment">
          <variable identifier="_x_denom"/>
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x_denom"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="2"/>
          </value>
        </statements>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Assignment">
          <variable identifier="_res_curr"/>
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_res_curr"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="375" id="375" name="m1power" comment=""/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
                </arguments>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x_nom"/>
              </arguments>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x_denom"/>
            </arguments>
          </value>
        </statements>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="GreaterEqual"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_max"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_res_curr"/>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="376" id="376" name="atanSeriesRecAux" comment=""/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_res_curr"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x_nom"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x_denom"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
                </arguments>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_max"/>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="372" id="372">
      <function xmi:id="373" id="373" name="atanSeriesAux" comment="Auxiliary function for atan: Taylor series computation of arctangent"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="382" id="382" name="atanSeriesRecAux" comment=""/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="5"/>
          </value>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="380" id="380">
      <function xmi:id="381" id="381" name="atanOneAux" comment="Auxiliary function for atan: suitable for 0 &lt;= _x &lt;= 1"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="GreaterThan"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="0.42"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="2"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="389" id="389" name="atanOneAux" comment=""/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                      <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                        <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="390" id="390" name="sqrt" comment=""/>
                        <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                          <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                          <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
                          <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                          </arguments>
                        </arguments>
                      </arguments>
                    </arguments>
                  </arguments>
                </arguments>
              </value>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="391" id="391" name="atanSeriesAux" comment=""/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="387" id="387">
      <function xmi:id="388" id="388" name="atanPosAux" comment="Auxiliary function for atan: suitable for 0 &lt;= _x "/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="LowerEqual"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="400" id="400" name="atanOneAux" comment=""/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
              </value>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="401" id="401" name="PI_2" comment=""/>
                </arguments>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="402" id="402" name="atanOneAux" comment=""/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                  </arguments>
                </arguments>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="403" id="403">
      <function xmi:id="404" id="404" name="atan" comment="Arctangent"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="GreaterEqual"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="408" id="408" name="atanPosAux" comment=""/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
              </value>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Negate"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="409" id="409" name="atanPosAux" comment=""/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Negate"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                  </arguments>
                </arguments>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="410" id="410">
      <function xmi:id="411" id="411" name="asin" comment="Arcsine"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="GreaterEqual"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="417" id="417" name="atanPosAux" comment=""/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="418" id="418" name="sqrt" comment=""/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                      <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                    </arguments>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                      <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                        <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                        <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                        <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                      </arguments>
                    </arguments>
                  </arguments>
                </arguments>
              </value>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Negate"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="419" id="419" name="asin" comment=""/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Negate"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                  </arguments>
                </arguments>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="420" id="420">
      <function xmi:id="421" id="421" name="acos" comment="Arccosine"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="425" id="425" name="PI_2" comment=""/>
            </arguments>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="426" id="426" name="asin" comment=""/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </arguments>
          </value>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="441" id="441">
      <function xmi:id="442" id="442" name="expSeriesAuxRecAux" comment="Auxiliary function for exp: Taylor series computation"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_res_curr"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_xpower_curr"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_fct_curr"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_depth_curr"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <parameters>
        <variable identifier="_depth_max"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Assignment">
          <variable identifier="_xpower_curr"/>
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_xpower_curr"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
          </value>
        </statements>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Assignment">
          <variable identifier="_fct_curr"/>
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_fct_curr"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
          </value>
        </statements>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Assignment">
          <variable identifier="_res_curr"/>
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_res_curr"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_xpower_curr"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_fct_curr"/>
            </arguments>
          </value>
        </statements>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="GreaterEqual"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_max"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_res_curr"/>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="445" id="445" name="expSeriesAuxRecAux"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_res_curr"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_xpower_curr"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_fct_curr"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
                </arguments>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_max"/>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="446" id="446">
      <function xmi:id="447" id="447" name="expSeriesAux" comment="Auxiliary function for exp: Taylor series computation"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="449" id="449" name="expSeriesAuxRecAux"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="16"/>
          </value>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="450" id="450">
      <function xmi:id="451" id="451" name="expPosAux" comment="Auxiliary function for exp: for positive _x"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="GreaterEqual"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="2"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="456" id="456" name="sqr"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="457" id="457" name="expPosAux"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="2.0"/>
                  </arguments>
                </arguments>
              </value>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="458" id="458" name="expSeriesAux"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="464" id="464">
      <function xmi:id="465" id="465" name="exp" comment="Exponential function"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="GreaterEqual"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="466" id="466" name="expPosAux"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
              </value>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="467" id="467" name="expPosAux"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Negate"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                  </arguments>
                </arguments>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="468" id="468">
      <function xmi:id="469" id="469" name="lnSeriesAuxRecAux" comment="Auxiliary function for ln: Taylor series computation"/>
      <parameters>
        <variable identifier="_xMinusPlus1"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_frac_curr"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_res_curr"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_depth_curr"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <parameters>
        <variable identifier="_depth_max"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Assignment">
          <variable identifier="_frac_curr"/>
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_xMinusPlus1"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_xMinusPlus1"/>
            </arguments>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_frac_curr"/>
          </value>
        </statements>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Assignment">
          <variable identifier="_res_curr"/>
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_res_curr"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="2.0"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="2.0"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
                  </arguments>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
                </arguments>
              </arguments>
              <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_frac_curr"/>
            </arguments>
          </value>
        </statements>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="GreaterEqual"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_max"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_res_curr"/>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="504" id="504" name="lnSeriesAuxRecAux"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_xMinusPlus1"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_frac_curr"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_res_curr"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_curr"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
                </arguments>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth_max"/>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="474" id="474">
      <function xmi:id="475" id="475" name="lnSeriesAux" comment="Auxiliary function for ln: Taylor series computation"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="503" id="503" name="lnSeriesAuxRecAux"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
              </arguments>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
              </arguments>
            </arguments>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
              </arguments>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
              </arguments>
            </arguments>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="2"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
                </arguments>
              </arguments>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
              </arguments>
            </arguments>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="5"/>
          </value>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="478" id="478">
      <function xmi:id="479" id="479" name="SQRT2" comment="Predefined constant square root of 2"/>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.4142135623731"/>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="480" id="480">
      <function xmi:id="481" id="481" name="LNSQRT2" comment="Predefined constant ln of square root of 2"/>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="0.346573590279973"/>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="482" id="482">
      <function xmi:id="483" id="483" name="ln" comment="Natural logarithm"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="GreaterThan"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="495" id="495" name="SQRT2"/>
              </arguments>
              <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="0.02"/>
            </arguments>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="2.0"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="496" id="496" name="LNSQRT2"/>
                  </arguments>
                </arguments>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="497" id="497" name="ln"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="2.0"/>
                  </arguments>
                </arguments>
              </value>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
              <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="LowerThan"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="1.0"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                      <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="498" id="498" name="SQRT2"/>
                    </arguments>
                  </arguments>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="0.02"/>
                </arguments>
              </guard>
              <thenBlock>
                <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
                  <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                      <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="-2.0"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                        <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="499" id="499" name="LNSQRT2"/>
                      </arguments>
                    </arguments>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                      <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="500" id="500" name="ln"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                        <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
                        <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="2.0"/>
                        <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                      </arguments>
                    </arguments>
                  </value>
                </statements>
              </thenBlock>
              <elseBlock>
                <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
                  <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="501" id="501" name="lnSeriesAux"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                  </value>
                </statements>
              </elseBlock>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="228" id="228">
      <function xmi:id="229" id="229" name="sqrtRec" comment="Square root: for values over 1.0E7 less precise than sqrt that uses exp and ln"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="509" id="509" name="sqrtRecAux"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="16"/>
          </value>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="226" id="226">
      <function xmi:id="227" id="227" name="sqrtRecAux" comment="Auxiliary function for sqrt: recursive approximation of square root."/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_curr"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_depth"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="LowerEqual"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_curr"/>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="508" id="508" name="sqrtRecAux"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_curr"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                      <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                      <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_curr"/>
                    </arguments>
                  </arguments>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:DoubleConst" value="2.0"/>
                </arguments>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_depth"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
                </arguments>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="427" id="427">
      <function xmi:id="428" id="428" name="sqr" comment="Square of a number"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Multiply"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
          </value>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="429" id="429">
      <function xmi:id="430" id="430" name="sqrMulti" comment="Multiple successive squaring of a number "/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <parameters>
        <variable identifier="_num"/>
        <type xsi:type="org-fortiss-af3-expression-types:TInt"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:IfThenElse">
          <guard xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="LowerEqual"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_num"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst"/>
          </guard>
          <thenBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
            </statements>
          </thenBlock>
          <elseBlock>
            <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
              <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="439" id="439" name="sqr"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                  <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="440" id="440" name="sqrMulti"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
                  <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                    <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Subtract"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_num"/>
                    <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="1"/>
                  </arguments>
                </arguments>
              </value>
            </statements>
          </elseBlock>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
    <functions xmi:id="505" id="505">
      <function xmi:id="506" id="506" name="sqrt" comment="Square root"/>
      <parameters>
        <variable identifier="_x"/>
        <type xsi:type="org-fortiss-af3-expression-types:TDouble"/>
      </parameters>
      <definition>
        <statements xsi:type="org-fortiss-af3-expression-terms-imperative:Return">
          <value xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
            <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="510" id="510" name="exp"/>
            <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
              <function xsi:type="org-fortiss-af3-expression-terms:PredefinedFunction" operator="Divide"/>
              <arguments xsi:type="org-fortiss-af3-expression-terms:FunctionCall">
                <function xsi:type="org-fortiss-af3-expression-terms:UserdefinedFunction" xmi:id="511" id="511" name="ln"/>
                <arguments xsi:type="org-fortiss-af3-expression-terms:Var" identifier="_x"/>
              </arguments>
              <arguments xsi:type="org-fortiss-af3-expression-terms:IntConst" value="2"/>
            </arguments>
          </value>
        </statements>
      </definition>
      <returnType xsi:type="org-fortiss-af3-expression-types:TDouble"/>
    </functions>
  </rootElements>
</org-fortiss-af3-project:FileProject>