GPC Developer Guides
...
Functions
Internal Functions

Math Functions

In this section are the GPC functions used to perform specific mathematical operations. Two important things to note when working while performing math computations in GPC is that it is a signed 16bit environment so all operations must work within that range which is -32768 to +32767 and GPC only supports integer values which means any fractions will be rounded down to a whole value.

Function

Description

abs

Returns an absolute value of a number.

inv

Returns the inverse value of a number.

pow

Raise and value to the specified power.

isqrt

Calculates an integer square root.

random

Generates a random value between the specified range.

clamp

The clamp() function clamps a value between an upper and lower bound. clamp() enables selecting a middle value within a range of values between a defined minimum and maximum. It takes three parameters: a minimum value, a preferred value, and a maximum allowed value.

min

Gets the minimum of two values.

max

Gets the maximum of two values.

abs

abs command returns the absolute value of an expression. An absolute value is a number without regard for its sign, for example, the absolute value of 8 and -8 is 8. An absolute value can also be thought of as its distance from zero which is always a positive value.

One of the popular uses for the abs command is when working with axis to start combos. Such as in fighting games where many users tend to use the right stick to start a combo. So if you wished for the same combo to be run if the right stick was pushed left or right, instead of using the 'or' ( || ) operator or using two if commands you could just do this:

GPC


🔴 Syntax

abs ( <expression> );

Parameters

<expression> : any expression which has a value

🔵 Returns

The absolute value of the expression

inv

inv returns the inverted value of an expression or number. This means a positive value will be turned into a negative value and vice versa, which is the same as multiplying the value by -1. For example;

GPC


One of the popular uses for this command is to invert the right sticks Y-axis. For example, if you prefer to play with an inverted aim but come across a game that doesn't support it, with one line of code you can have the Cronus invert the axis for you. Like so:

GPC


🔴 Syntax

inv( <expression> );

Parameters

<expression> : any expression which has a value.

🔵 Returns

The inverted value of the expression

GPC


Info: This function must be used with caution as there is a risk of an integer overflow when using it. This would occur when the function attempts to return a value greater than 32767 which is the maximum value for a signed 16 bit integer.

🔴 Syntax

pow ( <base_value> , <power_value> );

Parameters

<base_value> : base number .

<power_value> : power raised to the base value.

🔵 Returns

It returns the base value raised to the power of the exponent.

isqrt

isqrt returns the square root of a given value. The square root of a value is the value that when multiplied by itself equals the given value. For example, the square root of 25 is 5 (5 * 5 = 25). The return value is an integer which means any fractions will be dropped. As shown below:

GPC


🔴 Syntax

isqrt ( <expression> );

Parameters

<expression> : any expression which has a value. 🔵 Returns

The square root of the given expression

random

random generates a random int between two numbers (minimum -32768 and maximum 32767)

Info: This function is only available with Cronus Zen

GPC


🔴 Syntax

random ( <min_value> , <max_value> );

Parameters

<min_value> : the minimum integer value to start your random number (minimum value -32768) <max_value> : the maximum integer value to start your random number (maximum value 32767)

🔵 Returns

Generates a random int value between the <min_value> and the <max_value> parameters.