mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-24 10:31:13 +00:00
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6189 d0543943-73ff-0310-b7d9-9358b9ac24b2
829 lines
28 KiB
HTML
829 lines
28 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<title>Expression Help</title>
|
|
<style type="text/css">
|
|
.valid {
|
|
color: #00AA00;
|
|
}
|
|
.invalid {
|
|
color: #FF0000;
|
|
}
|
|
.excomment {
|
|
color: #0000FF;
|
|
}
|
|
.container {
|
|
margin-top: 10px;
|
|
margin-bottom: 10px;
|
|
padding-left: 4px;
|
|
padding-right: 4px;
|
|
border-top: 1px solid #000000;
|
|
border-right: 1px solid #000000;
|
|
border-bottom: 1px solid #000000;
|
|
border-left: 1px solid #000000;
|
|
background-color: #BBBBBB;
|
|
}
|
|
body {
|
|
background-color: #AAAAAA;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div align="center">
|
|
<h1>Expression Help</h1>
|
|
<hr>
|
|
</div>
|
|
|
|
<div align="left" class="container">
|
|
<h2>Contents</h2>
|
|
<h3>
|
|
<ul>
|
|
<li><a href="#Syntax">Expression Syntax</a></li>
|
|
<li><a href="#Operators">Order of Operators</a></li>
|
|
<li><a href="#InternalFunc">ExprEval Internal Functions</a></li>
|
|
<li><a href="#InternalConst">ExprEval Internal Constants</a></li>
|
|
<li><a href="#AppFunc">Application Internal Functions</a></li>
|
|
<li><a href="#AppConst">Application Internal Constants</a></li>
|
|
<li><a href="#AppVar">Application Internal Variables</a></li>
|
|
</ul>
|
|
</h3>
|
|
</div>
|
|
|
|
<div align="left" class="container">
|
|
<h2><a name="Syntax">Expression Syntax</a></h2>
|
|
<blockquote>
|
|
<p>Expressions have pretty much the same syntax as they
|
|
would have on paper, with the following exceptions:
|
|
<ul>
|
|
<li>Each expression must end with a semicolon. This
|
|
is because the expression string can actually
|
|
contain multiple expressions. The semicolon is
|
|
used to mark the end of the expression.<br>
|
|
<b>Examples:</b>
|
|
<ul>
|
|
<li>4*x+5;</li>
|
|
<li>y=5+2;g=4+6;</li>
|
|
<li>y=r*sin(a);x=r*cos(a);</li>
|
|
</ul>
|
|
</li>
|
|
<li>The asterisk '*' must be used to multiply.<br>
|
|
<b>Examples:</b>
|
|
<ul>
|
|
<li>y=5*6; <b class="valid">Valid</b></li>
|
|
<li>g=(x+1)*(x-1); <b class="valid">Valid</b></li>
|
|
<li>g=(x+1)(x-1); <b class="invalid">Invalid</b></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</p>
|
|
<p>More than one expression may be contained within an expression string.
|
|
As shown above, each expression must end with a semicolon, even if
|
|
only one expression is in the string. The value of an expression
|
|
string is the value of the last expression in the string.<br>
|
|
<b>Examlples:</b>
|
|
<ul>
|
|
<li>g=7; <b class="excomment">Value: 7</b></li>
|
|
<li>k=z+1; <b class="excomment">Value: z+1</b></li>
|
|
<li>r=4;k=6;o=9+r-k; <b class="excomment">Value: 9+r-k</b></li>
|
|
</ul>
|
|
</p>
|
|
<p>Some functions may take reference parameters. These parameters are
|
|
references to other variables. You can mix reference parameters
|
|
with normal parameters. The order of the normal parameters must
|
|
remain the same and the order of the reference parameters must
|
|
remain the same.<br>
|
|
<b>Examples:</b>
|
|
<ul>
|
|
<li>min(1,2,3,4,&mval); <b class="excomment">&mval is a reference to a variable mval</b></li>
|
|
<li>min(1,2,&mval,3,4); <b class="excomment">You may mix them inside like this.</b></li>
|
|
<li>min(1,2,(&mval),3,4); <b class="invalid">You may not nest reference parameters in any way</b></li>
|
|
</ul>
|
|
</p>
|
|
<p>Expressions may also be nested with parenthesis.<br>
|
|
<b>Examples:</b>
|
|
<ul>
|
|
<li>y=sin(x-cos(5+max(4,5,6*x)));</li>
|
|
<li>6+(5-2*(x+y));</li>
|
|
</ul>
|
|
</p>
|
|
<p>Expressions may also have whitespace characters and comments.
|
|
Whitespace characters such as newlines, linefeeds, carriage
|
|
returns, spaces, and tabs are ignored. Comments begin with
|
|
the pound sign '#' and end at the end of the line.<br>
|
|
<b>Example:</b>
|
|
<ul>
|
|
<pre>
|
|
#Set the x value
|
|
x = d * cos(r);
|
|
|
|
#Set the y value
|
|
y = d * sin(r);
|
|
</pre>
|
|
</ul>
|
|
</p>
|
|
<p>If a variable is used in an expression, but that variable does not exist,
|
|
it is considered zero. If it does exist then its value is used instead.
|
|
</p>
|
|
<p><b>Notice:</b> An expression can <b>NOT</b> assign to a constant and an
|
|
expression can <b>NOT</b> use a constant as a reference parameter.
|
|
</p>
|
|
</blockquote>
|
|
</div>
|
|
|
|
<div align="left" class="container">
|
|
<h2><a name="Operators">Order of operators.</a></h2>
|
|
<blockquote>
|
|
<p>The order of operators are processed correctly in ExprEval.
|
|
The parameters to functions may be evaluated out of order, depending
|
|
on the function itself.</p>
|
|
|
|
The following illustrates the order of operators:
|
|
<table align="center" border="1" width="75%">
|
|
<tr>
|
|
<td align="center"><b>Operator</b></td>
|
|
<td align="center"><b>Direction</b></td>
|
|
<td align="center"><b>Example</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Functions and Parenthesis</td>
|
|
<td>N/A</td>
|
|
<td>(x + 5) * sin(d);</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Negation</td>
|
|
<td>Right to Left</td>
|
|
<td>y = -2;</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Exponents</td>
|
|
<td>Left to Right</td>
|
|
<td>y = x ^ 2;</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Multiplication and Division</td>
|
|
<td>Left to Right</td>
|
|
<td>x * 5 / y;</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Addition and Subtraction</td>
|
|
<td>Left to Right</td>
|
|
<td>4 + 5 - 3;</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Assignment</td>
|
|
<td>Right to Left</td>
|
|
<td>x = y = z = 0;</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</blockquote>
|
|
</div>
|
|
|
|
<div align="left" class="container">
|
|
<h2><a name="InternalFunc">ExprEval Internal Functions</a></h2>
|
|
<blockquote>
|
|
The following functions are provided with ExprEval:
|
|
<table align="center" border="1" width="75%">
|
|
<tr>
|
|
<td align="center"><b>Function</b></td>
|
|
<td align="center"><b>Min. Args</b></td>
|
|
<td align="center"><b>Max. Args</b></td>
|
|
<td align="center"><b>Min. Ref Args</b></td>
|
|
<td align="center"><b>Max. Ref Args</b></td>
|
|
<td align="center"><b>Result/Comment</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td>abs(v)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Absolute value of v.<br>
|
|
abs(-4.3) returns 4.3</td>
|
|
</tr>
|
|
<tr>
|
|
<td>mod(v,d)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Remainder of v/d.<br>
|
|
mod(5.2,2.5) return 0.2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>ipart(v)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The integer part of v.<br>
|
|
ipart(3.2) returns 3</td>
|
|
</tr>
|
|
<tr>
|
|
<td>fpart(v)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The fractional part of v.<br>
|
|
fpart(3.2) returns 0.2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>min(v,...)</td>
|
|
<td>1</td>
|
|
<td>None</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The minimum number passed.<br>
|
|
min(3,2,-5,-2,7) returns -5</td>
|
|
</tr>
|
|
<tr>
|
|
<td>max(v,...)</td>
|
|
<td>1</td>
|
|
<td>None</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The maximum number passed.<br>
|
|
max(3,2,-5,-2,7) returns 7</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>pow(a,b)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The value a raised to the power b.<br>
|
|
pow(3.2,1.7) returns 3.2<sup>1.7</sup></td>
|
|
</tr>
|
|
<tr>
|
|
<td>sqrt(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The square root of a.</br>
|
|
sqrt(16) returns 4</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>sin(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The sine of a radians.<br>
|
|
sin(1.5) returns around 0.997</td>
|
|
</tr>
|
|
<tr>
|
|
<td>sinh(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The hyperbolic sine of a.<br>
|
|
sinh(1.5) returns around 2.129</td>
|
|
</tr>
|
|
<tr>
|
|
<td>asin(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The arc-sine of a in radians.<br>
|
|
asin(0.5) returns around 0.524</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>cos(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The cosine of a radians.<br>
|
|
cos(1.5) returns around 0.0707</td>
|
|
</tr>
|
|
<tr>
|
|
<td>cosh(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The hyperbolic cosine of a.</br>
|
|
cosh(1.5) returns around 2.352</td>
|
|
</tr>
|
|
<tr>
|
|
<td>acos(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The arc-cosine of a in radians.<br>
|
|
acos(0.5) returns around 1.047</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>tan(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The tangent of a radians.<br>
|
|
tan(1.5) returns around 14.101</td>
|
|
</tr>
|
|
<tr>
|
|
<td>tanh(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The hyperbolic tangent of a.</br>
|
|
tanh(1.5) returns around 0.905</td>
|
|
</tr>
|
|
<tr>
|
|
<td>atan(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The arc-tangent of a in radians.<br>
|
|
atan(0.3) returns about 0.291</td>
|
|
</tr>
|
|
<tr>
|
|
<td>atan2(y,x)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The arc-tangent of y/x, with quadrant correction.<br>
|
|
atan2(4,3) returns about 0.927</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>log(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The base 10 logarithm of a.<br>
|
|
log(100) returns 2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>pow10(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>10 raised to the power of a.<br>
|
|
pow10(2) returns 100</td>
|
|
</tr>
|
|
<tr>
|
|
<td>ln(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The base e logarithm of a.<br>
|
|
ln(2.8) returns around 1.030</td>
|
|
</tr>
|
|
<tr>
|
|
<td>exp(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>e raised to the power of a.<br>
|
|
exp(2) returns around 7.389</td>
|
|
</tr>
|
|
<tr>
|
|
<td>logn(a,b)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>The base b logarithm of a.<br>
|
|
logn(16,2) returns 4</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>ceil(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Rounds a up to the nearest integer.<br>
|
|
ceil(3.2) returns 4</td>
|
|
</tr>
|
|
<tr>
|
|
<td>floor(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Rounds a down to the nearest integer.<br>
|
|
floor(3.2) returns 3</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>rand(&seed)</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>Returns a number between 0 up to but not including 1.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>random(a,b,&seed)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>Returns a number between a up to and including b.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>randomize(&seed)</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>Seed the random number generator with a value
|
|
based on the current time.<br>
|
|
Return value is unknown</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>deg(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns a radians converted to degrees.<br>
|
|
deg(3.14) returns around 179.909</td>
|
|
</tr>
|
|
<tr>
|
|
<td>rad(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns a degrees converted to radians.<br>
|
|
rad(180) returns around 3.142</td>
|
|
</tr>
|
|
<tr>
|
|
<td>recttopolr(x,y)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns the polar radius of the rectangular co-ordinates.<br>
|
|
recttopolr(2,3) returns around 3.606</td>
|
|
</tr>
|
|
<tr>
|
|
<td>recttopola(x,y)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns the polar angle (0...2PI) in radians of the rectangular co-ordinates.<br>
|
|
recttopola(2,3) returns around 0.588</td>
|
|
</tr>
|
|
<tr>
|
|
<td>poltorectx(r,a)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns the x rectangular co-ordinate of the polar
|
|
co-ordinates.<br>
|
|
poltorectx(3,1.5) returns around 0.212</td>
|
|
</tr>
|
|
<tr>
|
|
<td>poltorecty(r,a)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns the y rectangular co-ordinate of the polar
|
|
co-ordinates.<br>
|
|
poltorecty(3,1.5) returns around 2.992</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>if(c,t,f)</td>
|
|
<td>3</td>
|
|
<td>3</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Evaluates and returns t if c is not 0.0.
|
|
Else evaluates and returns f.<br>
|
|
if(0.1,2.1,3.9) returns 2.1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>select(c,n,z[,p])</td>
|
|
<td>3</td>
|
|
<td>4</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns n if c is less than 0.0. Returns z
|
|
if c is 0.0. If c is greater than 0.0 and only
|
|
three arguments were passed, returns z. If c
|
|
is greater than 0.0 and four arguments were passed,
|
|
return p.<br>
|
|
select(3,1,4,5) returns 5</td>
|
|
</tr>
|
|
<tr>
|
|
<td>equal(a,b)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns 1.0 if a is equal to b. Else returns 0.0<br>
|
|
equal(3,2) returns 0.0</td>
|
|
</tr>
|
|
<tr>
|
|
<td>above(a,b)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns 1.0 if a is above b. Else returns 0.0<br>
|
|
above(3,2) returns 1.0</td>
|
|
</tr>
|
|
<tr>
|
|
<td>below(a,b)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns 1.0 if a is below b. Else returns 0.0<br>
|
|
below(3,2) returns 0.0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>avg(a,...)</td>
|
|
<td>1</td>
|
|
<td>None</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns the average of the values passed.<br>
|
|
avg(3,3,6) returns 4</td>
|
|
</tr>
|
|
<tr>
|
|
<td>clip(v,min,max)</td>
|
|
<td>3</td>
|
|
<td>3</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Clips v to the range from min to max. If v is less
|
|
than min, it returns min. If v is greater than
|
|
max it returns max. Otherwise it returns v.<br>
|
|
clip(3,1,2) returns 2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>clamp(v,min,max)</td>
|
|
<td>3</td>
|
|
<td>3</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Clamps v to the range from min to max, looping
|
|
if needed.<br>
|
|
clamp(8.2,1.3,4.7) returns 1.4</td>
|
|
</tr>
|
|
<tr>
|
|
<td>pntchange(side1old, side2old, side1new, side2new, oldpnt)</td>
|
|
<td>5</td>
|
|
<td>5</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>This is used to translate points from different
|
|
scale. It works no matter the orientation as long
|
|
as the sides are lined up correctly.<br>
|
|
pntchange(-1,1,0,480,-0.5) returns 120 (x example)<br>
|
|
pntchange(-1,1,480,0,-0.5) returns 360 (y example)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>poly(x,c1,...)</td>
|
|
<td>2</td>
|
|
<td>None</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>This function calculates the polynomial. x is the value
|
|
to use in the polynomial. c1 and on are the coefficients.<br>
|
|
poly(4,6,9,3,1,4) returns 2168<br>
|
|
same as 6*4<sup>4</sup> + 9*4<sup>3</sup> + 3*4<sup>2</sup> + 1*4<sup>1</sup> + 4*4<sup>0</sup></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>and(a,b)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns 0.0 if either a or b are 0.0 Else returns 1.0<br>
|
|
and(2.1,0.0) returns 0.0</td>
|
|
</tr>
|
|
<tr>
|
|
<td>or(a,b)</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns 0.0 if both a and b are 0.0 Else returns 1.0<br>
|
|
or(2.1,0.0) returns 1.0</td>
|
|
</tr>
|
|
<tr>
|
|
<td>not(a)</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>Returns 1.0 if a is 0.0 Else returns 0.0<br>
|
|
not(0.3) returns 0.0</td>
|
|
</tr>
|
|
<tr>
|
|
<td>for(init,test,inc,a1,...)</td>
|
|
<td>4</td>
|
|
<td>None</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>This function acts like a for loop in C. First init is
|
|
evaluated. Then test is evaluated. As long as the
|
|
test is not 0.0, the action statements (a1 to an) are
|
|
evaluated, the inc statement is evaluated, and the test
|
|
is evaluated again. The result is the result of the
|
|
final action statement.<br>
|
|
for(x=0,below(x,11),x=x+1,y=y+x) returns 55.0 (if y was
|
|
initially 0.0)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>many(expr,...)</td>
|
|
<td>1</td>
|
|
<td>None</td>
|
|
<td>0</td>
|
|
<td>0</td>
|
|
<td>This function treats many subexpressions as a single object
|
|
(function). It is mainly for the 'for' function.<br>
|
|
for(many(j=5,k=1),above(j*k,0.001),many(j=j+5,k=k/2),0)</td>
|
|
</tr>
|
|
|
|
|
|
</table>
|
|
|
|
</blockquote>
|
|
</div>
|
|
|
|
<div align="left" class="container">
|
|
<h2><a name="InternalConst">ExprEval Internal Constants</a></h2>
|
|
<blockquote>
|
|
The following constants are provided with ExprEval:
|
|
<table align="center" border="1" width="75%">
|
|
<tr>
|
|
<td align="center"><b>Constant</b></td>
|
|
<td align="center"><b>Math Form</b></td>
|
|
<td align="center"><b>Value</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_E</td>
|
|
<td>e</td>
|
|
<td>2.7182818284590452354</td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_LOG2E</td>
|
|
<td>log<sub>2</sub>(e)</td>
|
|
<td>1.4426950408889634074</td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_LOG10E</td>
|
|
<td>log<sub>10</sub>(e)</td>
|
|
<td>0.43429448190325182765</td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_LN2</td>
|
|
<td>ln(2)</td>
|
|
<td>0.69314718055994530942</td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_LN10</td>
|
|
<td>ln(10)</td>
|
|
<td>2.30258509299404568402</td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_PI</td>
|
|
<td>π</td>
|
|
<td>3.14159265358979323846</td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_PI_2</td>
|
|
<td>π/2</td>
|
|
<td>1.57079632679489661923</td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_PI_4</td>
|
|
<td>π/4</td>
|
|
<td>0.78539816339744830962</td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_1_PI</td>
|
|
<td>1/π</td>
|
|
<td>0.31830988618379067154</td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_2_PI</td>
|
|
<td>2/π</td>
|
|
<td>0.63661977236758134308</td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_1_SQRTPI</td>
|
|
<td>1/√(π)</td>
|
|
<td>0.56418958354776</td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_2_SQRTPI</td>
|
|
<td>2/√(π)</td>
|
|
<td>1.12837916709551257390</td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_SQRT2</td>
|
|
<td>√(2)</td>
|
|
<td>1.41421356237309504880</td>
|
|
</tr>
|
|
<tr>
|
|
<td>M_1_SQRT2</td>
|
|
<td>1/√(2)</td>
|
|
<td>0.70710678118654752440</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
</div>
|
|
|
|
<div align="left" class="container">
|
|
<h2><a name="AppFunc">Application Internal Functions</a></h2>
|
|
<blockquote>
|
|
Application defined expression functions go here.
|
|
<table align="center" border="1" width="75%">
|
|
<tr>
|
|
<td align="center"><b>Function</b></td>
|
|
<td align="center"><b>Min. Args</b></td>
|
|
<td align="center"><b>Max. Args</b></td>
|
|
<td align="center"><b>Min. Ref Args</b></td>
|
|
<td align="center"><b>Max. Ref Args</b></td>
|
|
<td align="center"><b>Result/Comment</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
</div>
|
|
|
|
<div align="left" class="container">
|
|
<h2><a name="AppConst">Application Internal Constants</a></h2>
|
|
<blockquote>
|
|
Application defined expression constants go here.
|
|
<table align="center" border="1" width="75%">
|
|
<tr>
|
|
<td align="center"><b>Constant</b></td>
|
|
<td align="center"><b>Math Form</b></td>
|
|
<td align="center"><b>Value</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
</div>
|
|
|
|
<div align="left" class="container">
|
|
<h2><a name="AppVar">Application Internal Variables</a></h2>
|
|
<blockquote>
|
|
Application defined expression variables go here.
|
|
<table align="center" border="1" width="75%">
|
|
<tr>
|
|
<td align="center"><b>Variable</b></td>
|
|
<td align="center"><b>Math Form</b></td>
|
|
<td align="center"><b>Value</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
</div>
|
|
|
|
</body>
|
|
|
|
</html>
|
|
|
|
|