Operators and functions available to end-users

 

The first section lists functions and operators that are typically familiar, each with a quick description and example.  The subsequent section lists special functions that require additional explanations.

 

Symbol    Description                Example

!         Factorial                  5! = 120

^         Raised to the power of     4 ^ 5 = 1024

*         Multiply by                3 * 6 = 18

 

/         Divide by                  9 / 2 = 4.5

\         Integer divide by          9 \ 2 = 4

mod       Modulo (remainder)         7 mod 4 = 3

+         Add                        1 + 1 = 2

-         Subtract                   9 - 5 = 4

 

-         Unary negation             -(5+4) = -9

 

+         Concatenate                'Zeb' + 'ra' = 'Zebra'

 

>         Greater than (numeric)     9 > 2 = 1

<         Less than (numeric)        7 < 4 = 0

==        Equal test (numeric)       5 == 4 = 0

>=        Greater or equal (numeric) 3 >= 3 = 1

<=        Less or equal (numeric)    #h3E <= 9 = 0

<>        Not equal (numeric)        #b10101 <> 20 = 1

 

>         Greater than (string)      'This' > 'That' = 1

<         Less than (string)         'This' < 'That' = 0

==        Equal test (string)        'A' == 'B' = 0

>=        Greater or equal (string)  'Zeb' >= 'Zebra' = 0

<=        Less or equal (string)     'Zeb' <= 'Zebra' = 1

<>        Not equal (string)         'X' <> 'Y' = 1

                 

And       Bitwise AND                #b101 AND #h1E = 4

Or        Bitwise OR                 13 OR 6 = 15

 

AndAlso   Short-circuit And

OrElse    Short-circuit Or

                 

IIF       If condition (numeric)     IIf(1+1=2, 4, 5) = 4

IIF       If condition (string)      IIf(1, 'T', 'F') = 'T'

 

Min       Minimum value              min(10, 3) = 3

Max       Maximum value              max(1, 9, 2) = 9

                 

Sin       Sine                       sin(pi) = 0

Cos       Cosine                     cos(pi) = -1

Tan       Tangent                    tan(pi) = 0

Atan      Arc tangent                atan(0) = 0

           

Abs       Absolute value             abs(-8) = 8

Exp       e to the power of          exp(3) = 20.08

Log       Natural log                log(16) = 2.77

Ceil      Round up                   ceil(6.2) = 7

Int       Truncate to an integer     int(6.8) = 6

Frac      Fractional part            Frac(3.125) = 0.125

Sgn       Sign (returns -1, 0, or 1) sgn(-9) = -1

Sqr       Square root                sqr(64) = 8

 

 

Functions that require further explanation

 

Asc(StringArg [, Position])

Returns the ASCII value of a character.  If the Position argument is omitted, then the ASCII value of the first character of the string is returned, otherwise the value of the nth position (starting with 1), as supplied by the Position argument is returned.

 

BaseConvert(Number, FromBase)

Converts from a given base to base 10.  Number is a string argument (to allow for non-numeric digits as used in hexadecimal), and FromBase is numeric.

Example: BaseConvert("101", 2)         returns 5

 

Chr(Number)

Returns the character associated with the ASCII value supplied as the Number argument.

 

Min(a, b [, ...])

Max(a, b [, ...])

These two are actually mocro-like items instead of functions.  They take any number of arguments and return the minimum argument (for Min), or the maximum argument (for Max).  They work with both string and numeric arguments.  Arguments must be either all strings or all numbers

 

Precedence(Operator)

Returns the precedence level of a given operator.  The Operator argument is a string.

 

Rand([x])

Rand(a, b)

Options

No parameters

Returns a floating point random number between 0 and 1.  The number chosen is the next in a random sequence.

x > 0

Returns a floating point random number between 0 and 1.  The number chosen is the next in a random sequence.

x = 0

Returns the same random number as the one previously generated.

x < 0

Returns the same random number each time, using the parameter as seed.

a, b

Returns an integer random number between a and b.

 

SetSyntaxParams(Params, Expression [, Thread])

This adds curly braces { and } around parameters in a string so that this string can be used as a syntax definition.  This allows for the definition of macros, for instance.

 

Params is a string argument, which contains a list of parameters.  The parameters in the string do not have to be organized in any special way.  uCalc will pick out all alphanumeric elements in the string and treat those as the parameters.  Expression is a string containing a definition that is to be parameterized.  That is, curly braces will be added around each alphanumeric occurrence in Expression that was found in Params.  Parameter names are not case sensitive.  The thread argument is optional.  A value of 0 represents the current thread.

 

The example below shows how you might call SetSyntaxParams.  Here uCalc picks out x, y, and z from Params as parameters.  Occurrences of x, y, and z in the second argument are surrounded by curly braces in the transformed string:

 

Expression ==>     SetSyntaxParams("(x, y, z)", "macro(x, y, z) = sin(x)*y+abc+x-z")

Transformation ==> macro({x}, {y}, {z}) = sin({x})*{y}+abc+{x}-{z}

 

Here, the first argument could have equally been "x, y, z"; "(x y z)", "[x+y+z]", "((x) (y) (z))", etc...

 

See also the Macro construct at the very end of the include file.

 

uc_For(Counter, Step, Start, Finish, Expression)

This repeats the evaluation of Expression a certain number of times, as in a For/Next loop.  The Counter argument accepts a numeric variable, which will first be set to the value of Start, and then successively be incremented by the amount of Step, until the Counter variable is finally set equal to Finish, at which point the loop ends.  The return value is the result of the evaluation of the expression in its last iteration.

 

uc_Loop(DoCondition, Expression, LoopCondition)

This repeats the evaluation of the Expression argument until either DoCondition or LoopCondition is equal to 0.  The value of DoCondition is checked prior to the evaluation of the expression, while the value of LoopCondition is checked after the expression is evaluated.  The return value is the result of the evaluation of the expression in its last iteration.

 

uCalc(Command [, ...])

uCalcStr(Command [, ...])

uCalc and uCalcStr correspond with the uCalc function.  This allows you to expose all of uCalc's functionality to the end-user.  The end-user can use uCalc or uCalcStr in an expression just like any other function listed in this help file topic.  This function is reserved for the commercial uCalc FMP license, or the uCalc Language Builder.

 

 

New or Enhanced

 

Issues for users migrating from version 2.0