# X++ math runtime functions

This topic 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 pi = 3.14;
real r;
;
angleRadians = pi * angleDegrees / 180;
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 pi = 3.14;
real r;
;
angleRadians = pi * angleDegrees / 180;
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;
}
``````