Cookies are not enabled on your browser.
The Spreadsheet style MATH instruction allows mixing of data types* and it accepts formulas and variables. The MATH instruction also allows nesting with parentheses to 8 levels, plus:
If that's not enough, how about absolute value, time, memory, and indirect addressing? You even get access to system-level bits such as $IndexError, $OutOfRange, $Overflow, etc. And with the in-line math feature you can incorporate your math equations inside compare instructions for even more code flexibility!
* Note about data types: integer and real types are really all you need but Do-more does include a few BCD and octal conversion instructions for legacy data types.
Do-more Math Instruction (below) used to evaluate the volume of liquid in a vertical cylindrical tank:
Here is a list of ALL the operators and functions that can be used in the Math Instruction (from the Help file):
|
Description |
Example | |
|
+ |
Add |
D0 + D1 |
|
- |
Subtract |
D0 - D1 |
|
* |
Multiply |
D0 * D1 |
|
/ |
Divide |
D0 / D1 |
|
% |
Modulus/Remainder |
D0 % D1 |
|
** |
Raise to a Power |
D0 ** D1 |
|
< |
Less Than |
D0 < D1 |
|
<= |
Less Than or Equal To |
D0 <= D1 |
|
== |
Equal To |
D0 == D1 |
|
!= |
Not Equal To |
D0 != D1 |
|
>= |
Greater Than or Equal To |
D0 >= D1 |
|
> |
Greater Than |
D0 > D1 |
|
&& |
Logical AND |
X0 && X1 |
|
|| |
Logical OR |
X0 || X1 |
|
& |
Bit-wise AND |
D0 & 0x7FFF |
|
| |
Bit-wise OR |
D0 | 0xFFFF |
|
^ |
Bit-wise XOR |
D0 ^ D1 |
|
<< |
Shift Left |
D0 << 1 |
|
>> |
Shift Right |
D0 >> 1 |
|
>>> |
Unsigned Shift Right |
D0 >>> 1 |
|
Description |
Example | |
|
- |
Negate |
-D0 |
|
~ |
Bit-wise Invert |
~D0 |
|
! |
Logical Not |
!X0 |
|
Description |
Example | |
|
ABS |
Absolute Value |
ABS(D0) |
|
MAX |
Maximum Between Two Expressions |
MAX(D0 * D1, V2) |
|
MIN |
Minimum Between Two Expressions |
MIN(D0 * D1, V2) |
|
Description |
Example | |
|
E |
Euler's Constant e |
E() |
|
FRAC |
Fractional Portion of a Real Number |
FRAC(R0) |
|
LN |
Natural Log |
LN(R0) |
|
LOG |
Log Base 10 |
LOG(R0) |
|
PI |
Returns the value of PI (3.14159) |
PI() |
|
ROUND |
Round Real to Nearest Whole Number |
ROUND(R0) |
|
SQRT |
Square Root |
SQRT(R0) |
|
TOINT |
Convert to Integer |
TOINT(SQRT(R0)) |
|
TOREAL |
Convert to Real |
TOREAL(D0 + D1) |
|
TRUNC |
Truncate Real to a Whole Number |
TRUNC(R0) |
|
Description |
Example | |
|
ACOS |
Arccosine in Radians |
ACOS(R0) |
|
ASIN |
Arcsine in Radians |
ASIN(R0) |
|
ATAN |
Arctangent in Radians |
ATAN(D0) |
|
COS |
Cosine of Radian Angle |
COS(R0) |
|
DEG |
Convert Radians to Degrees |
DEG(R0) |
|
RAD |
Convert Degrees to Radians |
RAD(R0) |
|
SIN |
Sine of Radian Angle |
SIN(R0) |
|
TAN |
Tangent of Radian Angle |
TAN(R0) |
|
Description |
Example | |
|
AVGR |
Average of a Range of Values |
AVGR(D0,10) |
|
MAXR |
Maximum Value Across a Range of Values |
MAXR(D0,10) |
|
MINR |
Minimum Values Across a Range of Values |
MINR(D0, 10) |
|
RANDINT |
Get Random Integer in Range 0 ... 2147483647 |
RANDINT() |
|
RANDREAL |
Get Random Real in Range 0.0 ... 1.0 |
RANDREAL() |
|
STDEVPR |
Population Standard Deviation of a Range |
STDEVPR(R20, 8) |
|
STDEVR |
Sample Standard Deviation of a Range |
STDEVR(R20, 8) |
|
SUMR |
Sum of a Range of Values |
SUMR(D0,10) |
|
Description |
Example | |
|
COUNTIFEQ |
Count If Equal to Expression |
COUNTIFEQ(42, D0, 10) |
|
COUNTIFNE |
Count If Not Equal to Expression |
COUNTIFNE(42, D0, 10) |
|
COUNTIFGE |
Count If Greater Than or Equal to Expression |
COUNTIFGE(42, D0, 10) |
|
COUNTIFGT |
Count If Greater Than Expression |
COUNTIFGT(42, D0, 10) |
|
COUNTIFLE |
Count If Less Than or Equal to Expression |
COUNTIFLE(42, D0, 10) |
|
COUNTIFLT |
Count If Less Than Expression |
COUNTIFLT(42, D0, 10) |
|
IF |
If / Else Expression |
IF(C7, D0, D1) |
|
SUMIFEQ |
Sum if Equal to Expression |
SUMIFEQ(42, D0, 10) |
|
SUMIFNE |
Sum if Not Equal to Expression |
SUMIFNE(42, D0, 10) |
|
SUMIFGE |
Sum If Greater Than or Equal to Expression |
SUMIFGE(42, D0, 10) |
|
SUMIFGT |
Sum if Greater Than Expression |
SUMIFGT(42, D0, 10) |
|
SUMIFLE |
Sum if Less Than or Equal to Expression |
SUMIFLE(42, D0, 10) |
|
SUMIFLT |
Sum if Less Than Expression |
SUMIFLT(42, D0, 10) |
|
Description |
Example | |
|
NOW |
Get Date/Time Stamp as a 32-bit Integer (1970 Epoch) |
NOW() |
|
TICKms |
Get Millisecond System Timer Value |
TICKms() |
|
TICKus |
Get Microsecond System Timer Value |
TICKus() |
|
Description |
Example | |
|
REF |
Read Value Indirectly |
REF(D0, V0) |
|
[ ] |
Array Index Expression |
D[ (V10 * 16) + V11 ] |
Safe &
Secure
Voted #1 mid-sized employer in Atlanta
Check out our
job openings