X++ math runtime functions
This article describes the math run-time functions.
These functions perform mathematical calculations.
abs
Retrieves the absolute value of a real number. Examples:
- abs(-100.0) returns the value 100.0.
- abs(30.56) returns the value 30.56.
Syntax
real abs(real arg)
Parameters
Parameter | Description |
---|---|
arg | The number to get the absolute value of. |
Return value
The absolute value of arg.
Example
static void absExample(Args _args)
{
real r1;
real r2;
;
r1 = abs(-3.14);
r2 = abs(3.14);
if (r1 == r2)
{
print "abs of values are the same";
pause;
}
}
acos
Retrieves the arc cosine of a real number.
Note
Argument values that are outside the -1 to 1 range cause the following run-time error: "Argument for trigonometric function out of range."
Syntax
real acos(real arg)
Parameters
Parameter | Description |
---|---|
arg | The number to retrieve the arc cosine of. |
Return value
The arc cosine of arg.
Example
static void acosExample(Args _args)
{
real r;
str s;
;
r = acos(0.0);
s = strFmt("The arc cosine of 0.0 is %1 ", r);
print s;
pause;
}
asin
Retrieves the arc sine of a real number.
Note
Argument values that are outside the -1 to 1 range cause the following run-time error: "Argument for trigonometric function out of range."
Syntax
real asin(real arg)
Parameters
Parameter | Description |
---|---|
arg | The number to calculate the arc sine for. |
Return value
The arc sine of the specified number.
Remarks
aSin(0.36) returns 0.37.
atan
Retrieves the arc tangent of a real number.
Syntax
real atan(real arg)
Parameters
Parameter | Description |
---|---|
arg | The number to calculate the arc tangent for. |
Return value
The arc tangent of the specified number.
Remarks
aTan(0.36) returns 0.35.
Example
static void atanExample(Args _args)
{
real r;
;
r = atan(1.0);
print strFmt("The Arc Tangent of 1.0 is %1", r);
pause;
}
corrFlagGet
Retrieves the state of the correction flag for a real number.
Syntax
int corrFlagGet(real arg)
Parameters
Parameter | Description |
---|---|
arg | The flag to retrieve the state for. |
Return value
A non-zero value if the flag is set; 0 (zero) if the flag is cleared.
Example
The following example displays 1.
static void corrFlagGetExample(Args _args)
{
real rr;
rr = corrFlagSet(0.36,2);
print(corrFlagGet(rr));
}
corrFlagSet
Controls the correction flag for a real number.
Syntax
real corrFlagSet(real real, int arg)
Parameters
Parameter | Description |
---|---|
real | The number in which to turn the correction flag on or off. |
arg | 0 to turn the flag off; a non-zero value to turn the flag on. |
Return value
0 if the flag is now off; a non-zero value if the flag is now on.
cos
Retrieves the cosine of a real number.
Syntax
real cos(real arg)
Parameters
Parameter | Description |
---|---|
arg | The number to find the cosine for. |
Return value
The cosine of the specified number.
Remarks
The value of the arg parameter must be in radians.
Example
The following code example displays 0.76.
static void cosExample(Args _arg)
{
real r;
;
r = cos(15);
print strFmt("Cos of 15 is %1", r);
pause;
}
cosh
Retrieves the hyperbolic cosine of a real number.
Note
Argument values that are outside the -250 to 250 range cause the following run-time error: "Argument for trigonometric function out of range."
Syntax
real cosh(real arg)
Parameters
Parameter | Description |
---|---|
arg | The hyperbolic number to calculate the cosine for. |
Return value
The hyperbolic cosine of the specified number.
Remarks
The value of the arg parameter must be in radians.
Example
static void coshExample(Args _arg)
{
real r;
;
r = cosh(0.1);
print "The hyperbolic cosine of 0.1 is " + num2Str(r, 2, 2, 1, 1);
pause;
}
decRound
Rounds a number to the specified number of decimal places.
Syntax
real decRound(real figure, int decimals)
Parameters
Parameter | Description |
---|---|
figure | The number to round. |
decimals | The number of decimal places to round to. |
Return value
The value of the specified number, rounded to the specified number of decimal places.
Remarks
The value of the decimals parameter can be positive, 0 (zero), or negative.
- decRound(1234.6574,2) returns the value 1234.66.
- decRound(1234.6574,0) returns the value 1235.
- decRound(1234.6574,-2) returns the value 1200.
- decRound(12345.6789,1) returns the value 12345.70.
- decRound(12345.6789,-1) returns the value 12350.00.
exp
Retrieves the natural antilogarithm of the specified real number.
Syntax
real exp(real arg)
Parameters
Parameter | Description |
---|---|
arg | The real number to calculate the natural antilogarithm for. |
Return value
The natural antilogarithm of the specified real number.
Remarks
The calculated natural antilogarithm is the natural logarithm e raised to the power that is indicated by the arg parameter.
Example
static void expExample(Args _arg)
{
real r1;
real r2;
;
r1 = exp(2.302585093);
r2 = exp10(2.302585093);
print strFmt("exp of 2.302585093 is %1", r1);
print strFmt("exp10 of 230258 is %1", r2);
pause;
}
exp10
Retrieves the base-10 antilogarithm of the specified real number.
Syntax
real exp10(real decimal)
Parameters
Parameter | Description |
---|---|
decimal | The real number to calculate the base-10 antilogarithm for. |
Return value
The 10-based antilogarithm of the value of the decimal parameter.
Example
static void exp10Example(Args _arg)
{
real r1;
real r2;
;
r1 = exp(2.302585093);
r2 = exp10(2.302585093);
print strFmt("exp of 2.302585093 is %1", r1);
print strFmt("exp10 of 230258 is %1", r2);
pause;
}
frac
Retrieves the decimal part of a real number.
Syntax
real frac(real decimal)
Parameters
Parameter | Description |
---|---|
decimal | The real number to retrieve the decimal part for. |
Return value
The decimal part of the specified number.
Remarks
frac(12.345) returns the value 0.345.
log10
Retrieves the 10-digit logarithm of a real number.
Syntax
real log10(real arg)
Parameters
Parameter | Description |
---|---|
arg | The number to calculate the logarithm for. |
Return value
The base-10 logarithm of the specified number.
Remarks
log10(200) returns the value 2.30.
logN
Retrieves the natural logarithm of the specified real number.
Syntax
real logN(real arg)
Parameters
Parameter | Description |
---|---|
arg | The number to calculate the natural logarithm for. |
Return value
The natural logarithm of the specified number.
Remarks
logN(45) returns the value 3.81.
max
Retrieves the larger of two specified values.
anytype max(anytype object1, anytype object2)
Parameters
Parameter | Description |
---|---|
object1 | The first value. |
object2 | The second value. |
Return value
The larger of the two values that are specified by the object1 and object2 parameters.
Remarks
- max(12.0,12.1) returns the value 12.1.
- max(2,33) returns the value 33.
min
Retrieves the smaller of two specified values.
anytype min(anytype object1, anytype object2)
Parameters
Parameter | Description |
---|---|
object1 | The first value. |
object2 | The second value. |
Return value
The smaller of the two values that are specified by the object1 and object2 parameters.
Remarks
min(2,33) returns the value 2.
Example
static void minExample(Args _arg)
{
anytype a;
real r = 3.0;
real s = 2.0;
a = min(r, s);
print num2Str(a, 1, 2, 1, 1) + " is less than the other number.";
}
power
Raises a real number to the power of another real number.
Syntax
real power(real arg, real exponent)
Parameters
Parameter | Description |
---|---|
arg | The number to calculate the power of. |
exponent | The number to raise the number that is specified by the arg parameter to. |
Return value
The real number that is the number specified by the arg parameter to the power of the number specified by the exponent parameter.
Remarks
- power(5.0,2.0) returns the value 25.0.
- power(4.0,0.5) returns the value 2.0.
round
Rounds a real number to the nearest multiple of another real number.
Syntax
real round(real _arg, real _decimals)
Parameters
Parameter | Description |
---|---|
_arg | The original number. |
_decimals | The number that the value of the _arg parameter must be rounded to a multiple of. |
Return value
The number that is a multiple of the value specified by the _decimals parameter and is closest to the value specified by the _arg parameter.
Remarks
To round a real number to a specified number of decimal places, use the decround function.
Remarks
- round(123.45,5.00) returns the value 125.00.
- round(7.45,1.05) returns the value 7.35.
- round(23.9,5.0) returns the value 25.00.
- round(26.1,5.0) returns the value 25.00.
sin
Retrieves the sine of a real number.
Syntax
real sin(real _arg)
Parameters
Parameter | Description |
---|---|
_arg | The number to calculate the sine for. |
Return value
The sine of the specified real number.
Remarks
The value of the _arg parameter must be in radians.
Example
static void sinExample(Args _arg)
{
real angleDegrees = 15.0;
real angleRadians;
real pi = 3.14;
real r;
;
angleRadians = pi * angleDegrees / 180;
r = sin(angleRadians);
print "sin of a "
+ num2Str(angleDegrees, 2, 2, 1, 1)
+ " degree angle is "
+ num2Str(r, 2, 10, 1, 1);
pause;
}
sinh
Retrieves the hyperbolic sine of a real number.
Syntax
real sinh(real _arg)
Parameters
Parameter | Description |
---|---|
_arg | The number to calculate the hyperbolic sine for. |
Return value
The hyperbolic sine of the specified real number.
Remarks
Values for the _arg parameter that are outside the -250 to 250 range cause the following run-time error: "Argument for trigonometric function out of range."
Example
The following example illustrates the sinh function.
static void sinhExample(Args _arg)
{
real angleDegrees = 45.0;
real angleRadians;
real pi = 3.14;
real r;
;
angleRadians = pi * angleDegrees / 180;
r = sinh(angleRadians);
print "sinh of a "
+ num2Str(angleDegrees, 2, 2, 1, 1)
+ " degree angle is "
+ num2Str(r, 2, 15, 1, 1);
pause;
}
tan
Retrieves the tangent of a real number.
Syntax
real tan(real arg)
Parameters
Parameter | Description |
---|---|
arg | The real number to calculate the tangent for. |
Return value
The tangent of the specified real number.
Remarks
Values for the arg parameter that are outside the -250 to 250 range cause the following run-time error: "Argument for trigonometric function out of range."
Example
The following example illustrates the tan function.
static void tanExample(Args _arg)
{
real r;
;
r = tan(250);
print strFmt("Tan of 250 is %1", r);
pause;
}
tanh
Retrieves the hyperbolic tangent of a real number.
Syntax
real tanh(real _arg)
Parameters
Parameter | Description |
---|---|
_arg | The number to calculate the hyperbolic tangent for. |
Return value
The hyperbolic tangent of the specified real number.
Example
The following example illustrates the tanh function.
static void tanhExample(Args _arg)
{
real r;
;
r = tanh(0.1);
print "The hyperbolic tangent of angle 0.1 is "
+ num2Str(r, 2, 10, 1, 1);
pause;
}
trunc
Truncates a real number by removing any decimal places.
Syntax
real trunc(real _decimal)
Parameters
Parameter | Description |
---|---|
_decimal | The number to truncate. |
Return value
A number that is equivalent to the value of the _decimal parameter after the decimal places have been removed.
Remarks
This function always rounds numbers down to a complete integer.
Example
The following example truncates 2.7147 to 2.00.
static void truncExample(Args _arg)
{
real r;
;
r = trunc(2.7147);
print strFmt("r = %1", r);
pause;
}