Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > d3804b0528cfed1b471f5149e287bdf8 > files > 80

muParser-devel-1.34-1.fc15.i686.rpm

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <link rel="stylesheet" type="text/css" href="style/formate.css"/>
  <meta name="author" content="Ingo Berg"/>
  <!-- $META -->	
  <meta name="keywords" content="features, muparser, operator, function, math parser, C++"/>
  <meta name="description" content="List of operators and functions supported by muparser"/>
  <title>List of muparser features</title>

  <script src="script/functions.js" language="javascript" type="text/javascript"></script>
  <script type="text/javascript">
  imgHome=new Image();
  imgHome.src="images/home.png";
  imgHomeDark=new Image();
  imgHomeDark.src="images/home_dark.png";

  imgApi=new Image();
  imgApi.src="images/api.png"; 
  imgApiDark=new Image();
  imgApiDark.src="images/api_dark.png";

  function ChangeButtonImage(num,obj)
  {
    window.document.images[num].src=obj.src;
  }
  </script>
</head>

<body>
    <div class="gradient" id="top">
      <div class="header">
        muParser - a fast math parser library
        <br/>
        <div style="font-size:14pt;">Version 1.32</div>
      </div>

      <div style="position:absolute; width:250px; height:100px; top:20px; text-align:center">
        <a href="http://sourceforge.net/projects/muparser">
          <img src="http://sflogo.sourceforge.net/sflogo.php?group_id=137191&amp;type=15" 
               width="150" 
               height="40" 
               border="0"
               alt="Get muParser - A fast math parser library at SourceForge.net. Fast, secure and Free Open Source software downloads" />
        </a>
      </div>	

      <div style="position:absolute; width:100px; right:110px; text-align:center; line-height: 1em;">
        <a class="white" 
           href="http://www.beltoforion.de"  
           onmouseover="ChangeButtonImage(1,imgHome)" 
           onmouseout="ChangeButtonImage(1,imgHomeDark)">
          <img src="images/home_dark.png" border="0" height="40" alt="My home page"/>
          <br/>
          <span class="tiny_text">My home<br/>page</span>
        </a>
     </div>

     <div  style="position:absolute; width:100px; right:10px; text-align:center; line-height: 1em;">
       <a class="white" 
          href="http://muparser.sourceforge.net/classdocu/index.html"
          onmouseover="ChangeButtonImage(2,imgApi)" 
          onmouseout="ChangeButtonImage(2,imgApiDark)">
         <img src="images/api_dark.png" border="0" alt="class documentation" height="40"/>
         <br/>
         <span class="tiny_text">muParser<br/>API-doc</span>
       </a>
    </div>
  <!--
    <div  style="position:absolute; width:100px; right:10px; text-align:center; line-height: 1em;">
      <a class="white" 
         href="http://sourceforge.net/project/showfiles.php?group_id=137191"
         onmouseover="ChangeButtonImage(3,imgDown)" 
         onmouseout="ChangeButtonImage(3,imgDownDark)">
        <img src="images/download_dark.png" height="40" border="0" alt="muParser download"/>
        <br/>
        <span class="tiny_text">muParser<br/>Download</span>
      </a>
    </div>
-->
  </div> <!-- class="gradient" -->

    <!-- Tabelle mit Hauptinhalt der Seite -->
    <table id="MainTable" border="0" cellpadding="5" cellspacing="0" style="width:100%; height:100%;">
      <tbody>
        <tr>
          <td style="vertical-align: top; text-align: center" width="230">
            <h3 class="navi_heading navi_info">Introduction</h3>
            <div class="sidebarlink">
                <a href="index.html">About the parser</a><br/>
                <a href="http://sourceforge.net/news/?group_id=137191">News</a><br/>
                <a href="mup_links.html">Software using muParser</a><br/>
                <a href="mup_licence.html">Licence</a><br/>
            </div>

            <h3 class="navi_heading navi_blocks">Features</h3>
            <div class="sidebarlink">
              <a href="mup_features.html">Features</a><br/>
              <a href="mup_features.html#idFeatureOverview">Overview</a><br/>
              <a href="mup_features.html#idDef2">Built in functions</a><br/>
              <a href="mup_features.html#idDef3">Built in binary operators</a><br/>
            </div>

            <h3 class="navi_heading navi_build">Build instructions</h3>
            <div class="sidebarlink">
              <a href="mup_usage.html#idInstWin">Building on Win32</a><br/>
              <a href="mup_usage.html#idInstLinux">Building on BSD/Linux</a><br/>
              <a href="mup_usage.html#idInstMisc">Misc build instructions</a><br/>
              <a href="mup_usage.html#idInstInc">Including the files</a><br/>
              <a href="mup_usage.html#idInstInc">Where to ask for help</a><br/>
            </div>

            <h3 class="navi_heading navi_list">Math parser interface</h3>
            <div class="sidebarlink">
              <a href="mup_interface.html#idInit">Parser (de)initialization</a><br/>
              <a href="mup_interface.html#idEval">Evaluating an expression</a><br/>
              <a href="mup_interface.html#idSetExpr">Setting the expression</a><br/>
              <a href="mup_interface.html#idDefCharset">Defining identifier charsets</a><br/>
              <a href="mup_interface.html#idDefVar">Defining parser variables</a><br/>
              <a href="mup_interface.html#idDefVarEx">Explicit variable definition</a><br/>
              <a href="mup_interface.html#idDefVarIm">Implicit variable definition</a><br/>
              <a href="mup_interface.html#idDefConst">Defining constants</a><br/>
              <a href="mup_interface.html#idDefFun">Defining functions</a><br/>
              <a href="mup_interface.html#idDefOprt">Defining operators</a><br/>
              <a href="mup_interface.html#idUnOp">Unary operators</a><br/>
              <a href="mup_interface.html#idBinOp">Binary operators</a><br/>
              <a href="mup_interface.html#idQueryVar">Querying variables</a><br/>
              <a href="mup_interface.html#idQueryConst">Querying constants</a><br/>
              <a href="mup_interface.html#idDefConst2">Value recognition callbacks</a><br/>
              <a href="mup_interface.html#idDefConst2">Removing variables/constants</a><br/>
              <a href="mup_locale.html#idLoc">Localization</a><br/>
              <a href="mup_interface.html#idErrors">Error handling</a><br/>
              <a href="mup_version.html#idExample">Example code</a><br/>
            </div>

            <h3 class="navi_heading navi_question">Current version</h3>
            <div class="sidebarlink">
              <a href="mup_version.html#idRelNote">Release notes</a><br/>
              <a href="mup_version.html#idBench">Benchmarks</a><br/>
            </div>

            <br/>
            <div align="center">
              <a href="http://www.opensource.org/"><img style="border:0;" src="images/osi.jpg" alt="Open source initiative logo"/></a>
              <br/>
              <br/>
              <a href="http://validator.w3.org/check?uri=referer">
                <img src="http://www.w3.org/Icons/valid-xhtml10-blue" alt="Valid XHTML 1.0 Transitional" style="border:0;width:88px;height:31px"/>
              </a>
              <br/>
              <br/>
	      <a href="http://jigsaw.w3.org/css-validator/check/referer">
                <img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="CSS ist valide!" />
	      </a>

            </div>
          </td>

          <td style="height: 100%; padding: 1em; vertical-align: top;">
            <!-- 
              This section contains the real page content. 
              pages are created automatically by using the script "build_page.sh"
              which combines section templated with the navigation bar.

	      This creates webpages that do not rely on php3 or Javascript for 
              serverside or client side html inclusion.
            //-->
            <!-- $PLACEHOLDER -->
<!-- 
//
//
//  
//   Features
//
//
//
-->

<br/>
<h2><a name="idFeature">Features</a></h2>

<p>
The following is a list of the features currently supported by the parser library. 
The primary objective is to keep it as extensible as possible whilst ensuring a maximum parsing speed. Extending the parser is mostly based on allowing a user to add custom callbacks which require only an absolute minimum of code. For instance you need exactly 2 lines of code to add a new function.
But extending the parser may not be necessary at all since it comes with a powerful default 
implementation. Here is the (incomplete) list of features:
</p>


<!-- 
//
//   Features / Overview
//
-->

<h3><a name="idFeatureOverview">Overview</a></h3>


<ul>
  <li><b>Easy to use</b>
    <ul>
      <li>You need only a <a href="mup_version.html#idExample">few lines of code</a> to evaluate en expression</li>
    </ul> 
  </li>
  <li><b>Extremely fast</b>
    <ul>
      <li><a href="mup_version.html#idBench">faster than similar commercial parsers</a></li>
    </ul> 
  </li>

  <li><b>User-defined operators</b>
    <ul>
      <li>binary operators</li>
      <li>postfix operators</li>
      <li>infix operators</li>
    </ul>
  </li>

  <li><b>User-defined functions</b>
    <ul>
      <li>with a fixed number of up to five arguments</li>
      <li>with variable number of arguments</li>
      <li>with a single string argument (for database queries)</li>
    </ul>
  </li>

  <li><b>User-defined constants.</b>
    <ul>
      <li>numeric constants</li>
      <li>string constants</li>
    </ul> 
  </li>

  <li><b>User-defined variables.</b>
    <ul>
        <li>unlimited in number</li>	
        <li>definable at parser runtime by the parser</li>
        <li>assigning variables in terms of other variables is possible</li>	
    </ul>
  </li>
  
  <li><b>Custom value recognition callbacks</b>
    <ul>
	<li>support for binary and hex values.</li>
        <li>can be used to implement database queries</li>
    </ul>
  </li>

  <li><b>Default implementaion with many features</b> 
    <ul>
      <li>26 <a href="#idDef1">predefined functions</a>.</li>
      <li>15 <a href="#idDef2">predefined operators</a>.</li>
      <li>Supports numerical differentiation with respect to a given variable.</li>
      <li>Assignement operator is supported</li>
    </ul>
  </li>

  <li><b>Portability</b>
    <ul>
       <li>Project / makefiles for MSVC, mingw, autoconf, bcc</li>
       <li>ISO 14882 compliant code</li>
       <li>DLL version usable from every language able to use function exported in C-style</li>
    </ul> 
  </li>

  <li><b>Unit support</b>
    <ul>
      <li>Use postfix operators as unit multipliers <code>(3m -> 0.003)</code></li>
    </ul>
  </li>

  <li><b>Localization</b>
    <ul>
      <li>Argument separator, decimal separator, thousands separator can be adjusted to your locale</code></li>
    </ul>
  </li>

</ul>


<!-- 
//
//
//  
//   Default implementation
//
//
//
-->

<h3><a name="idDef1">The default implementation</a></h3>
<p>
This section gives an overview on the default features supported by the parser. The default
implementation is defined in the class <code>mu::Parser</code> located in the file 
<i>muParser.cpp</i>. The DLL-version uses this class internally.
</p>

<!-- 
//
//   Features / Built in functions
//
-->


<h4><a name="idDef2">Built-in functions</a></h4>
<p>
The following table gives an overview of the functions supported by the
default implementation. It lists the function names, the number of 
arguments and a brief description.
</p>

<table border="1">
<thead>
<tr>
  <td><b>Name</b></td>  <td><b>Argc.</b></td>  <td><b>Explanation</b></td>
</tr>
</thead>

<tbody>
<tr><td><code>sin</code></td>   <td align="center">1</td>     <td>sine function</td></tr>
<tr><td><code>cos</code></td>   <td align="center">1</td>     <td>cosine function</td></tr>
<tr><td><code>tan</code></td>   <td align="center">1</td>     <td>tangens function</td></tr>
<tr><td><code>asin</code></td>  <td align="center">1</td>     <td>arcus sine function</td></tr>
<tr><td><code>acos</code></td>  <td align="center">1</td>     <td>arcus cosine function</td></tr>
<tr><td><code>atan</code></td>  <td align="center">1</td>     <td>arcus tangens function</td></tr>
<tr><td><code>sinh</code></td>  <td align="center">1</td>     <td>hyperbolic sine function</td></tr>
<tr><td><code>cosh</code></td>  <td align="center">1</td>     <td>hyperbolic cosine</td></tr>
<tr><td><code>tanh</code></td>  <td align="center">1</td>     <td>hyperbolic tangens function</td></tr>
<tr><td><code>asinh</code></td> <td align="center">1</td>     <td>hyperbolic arcus sine function</td></tr>
<tr><td><code>acosh</code></td> <td align="center">1</td>     <td>hyperbolic arcus tangens function</td></tr>
<tr><td><code>atanh</code></td> <td align="center">1</td>     <td>hyperbolic arcur tangens function</td></tr>
<tr><td><code>log2</code></td>  <td align="center">1</td>     <td>logarithm to the base 2</td></tr>
<tr><td><code>log10</code></td> <td align="center">1</td>     <td>logarithm to the base 10</td></tr>
<tr><td><code>log</code></td>   <td align="center">1</td>     <td>logarithm to the base 10</td></tr>
<tr><td><code>ln</code></td>    <td align="center">1</td>     <td>logarithm to base e (2.71828...)</td></tr>
<tr><td><code>exp</code></td>   <td align="center">1</td>     <td>e raised to the power of x</td></tr>
<tr><td><code>sqrt</code></td>  <td align="center">1</td>     <td>square root of a value</td></tr>
<tr><td><code>sign</code></td>  <td align="center">1</td>     <td>sign function -1 if x&lt;0; 1 if x&gt;0</td></tr>
<tr><td><code>rint</code></td>  <td align="center">1</td>     <td>round to nearest integer</td></tr>
<tr><td><code>abs</code></td>   <td align="center">1</td>     <td>absolute value</td></tr>
<tr><td><code>if</code></td>    <td align="center">3</td>     <td>if ... then ... else ...</td></tr>
<tr><td><code>min</code></td>   <td align="center">var.</td>  <td>min of all arguments</td></tr>
<tr><td><code>max</code></td>   <td align="center">var.</td>  <td>max of all arguments</td></tr>
<tr><td><code>sum</code></td>   <td align="center">var.</td>  <td>sum of all arguments</td></tr>
<tr><td><code>avg</code></td>   <td align="center">var.</td>  <td>mean value of all arguments</td></tr>
</tbody>

</table>


<h4><a name="idDef3">Built-in binary operators</a></h4>
<p>
The following table lists the default binary operators supported by the parser.
</p>

<table border="1">
	<thead>
	  <tr><td><b>Operator</b></td>     <td><b>Meaning</b></td>             <td><b>Priority</b></td></tr>
	</thead>

	<tbody>
	  <tr><td><code>=</code></td>      <td>assignement*</td>               <td>-1</td></tr>
	  <tr><td><code>and</code></td>    <td>logical and</td>                <td>1</td></tr>
	  <tr><td><code>or</code></td>     <td>logical or</td>                 <td>1</td></tr>
	  <tr><td><code>xor</code></td>    <td>logical xor</td>                <td>1</td></tr>
	  <tr><td><code>&lt;=</code></td>  <td>less or equal</td>              <td>2</td></tr>
	  <tr><td><code>&gt;=</code></td>  <td>greater or equal</td>           <td>2</td></tr>
	  <tr><td><code>!=</code></td>     <td>not equal</td>                  <td>2</td></tr>
	  <tr><td><code>==</code></td>     <td>equal</td>                      <td>2</td></tr>
	  <tr><td><code>&gt;</code></td>   <td>greater than</td>               <td>2</td></tr>
	  <tr><td><code>&lt;</code></td>   <td>less than</td>                  <td>2</td></tr>
	  <tr><td><code>+</code></td>      <td>addition</td>                   <td>3</td></tr>
	  <tr><td><code>-</code></td>      <td>subtraction</td>                <td>3</td></tr>
	  <tr><td><code>*</code></td>      <td>multiplication</td>             <td>4</td></tr>
	  <tr><td><code>/</code></td>      <td>division</td>                   <td>4</td></tr>
	  <tr><td><code>^</code></td>      <td>raise x to the power of y</td>  <td>5</td></tr>
	</tbody>
</table>
<small>*The assignment operator is special since it changes one of its
       arguments and can only by applied to variables.</small>


            <hr/>
            <table border="0" style="width:100%">
            <tr>
              <td>&copy; 2005-2010 <a href="http://beltoforion.de">Ingo Berg</a> | 
                  <a href="http://beltoforion.de/privacy_policy/privacy_policy_en.html">Privacy policy</a></td>
              <td style="text-align:right; padding-right: 3em;">
                <a href="#top">^ TOP</a>
              </td>
            </tr>
          </table>
          <br/>
          <br/>

          </td>
        </tr>
      </tbody>
    </table>

<!--
    <script type="text/javascript">
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
    </script>
    <script type="text/javascript">
    try 
    {
      var pageTracker = _gat._getTracker("UA-1019178-1");
      pageTracker._trackPageview();
    } 
    catch(err) {}
    </script>
-->
</body>
</html>