Math#
Introduction#
The C++ standard library provides basic math functionality through , which is supported in VEXcode V5. These functions let you perform common mathematical operations such as trigonometry, rounding, exponentiation, and more.
Use them for calculating positions, angles, distances, or performing conversions between degrees and radians.
Below is a list of available math functions, constants, and utilities:
Common Math Functions – Common math tools.
abs– Returns the absolute value of a number.fmin– Returns the smallest of the input values.fmax– Returns the largest of the input values.pow– Raises a number to a power.
Constants – Predefined values from .
Trigonometry – Calculate angles and relationships between sides.
sin– Sine of an angle in radians.cos– Cosine of an angle in radians.tan– Tangent of an angle in radians.atan– Arctangent of a value in radians.atan2– Arctangent of y/x in radians, considering the quadrant.asin– Arcsine of a value in radians.acos– Arccosine of a value in radians.
Rounding & Absolute Value – Adjust precision or direction.
ceil– Rounds up to the nearest integer.floor– Rounds down to the nearest integer.trunc– Removes the decimal portion.
Exponents & Logarithms – Power, root, and log calculations.
sqrt– Returns the square root.exp– Calculates e to the power of x.log– Natural logarithm (base e).log10– Base-10 logarithm.
Floating Point Operations – Inspect or decompose float values.
Common Math Functions#
abs#
Returns the absolute value of a number, removing any negative sign.
Available Functions1 — Returns the absolute value of an integer.
int abs( int x );
Parameters2 — Returns the absolute value of a double.
double abs( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
An integer or double. |
Returns the absolute value of the input as the same type.
Examples// Display the absolute value of -10
Brain.Screen.print("%d", abs(-10));
// Output: 10
fmin#
Returns the lower of two values as a double.
Available Functionsdouble fmin( double value1, double value2 );
Parameter |
Type |
Description |
|---|---|---|
|
|
The first value to compare. |
|
|
The second value to compare. |
Returns a double representing the smaller of the two input values.
// Display the lower of two values
Brain.Screen.print("%f", fmin(7, 4));
// Output: 4.000000
fmax#
Returns the higher of two values as a double.
Available Functionsdouble fmax( double value1, double value2 );
Parameter |
Type |
Description |
|---|---|---|
|
|
The first value to compare. |
|
|
The second value to compare. |
Returns a double representing the larger of the two input values.
// Display the higher of two values
Brain.Screen.print("%f", fmax(7, 4));
// Output: 7.000000
pow#
Returns a number raised to a power as a double.
Available Functionsdouble pow( double base, double exponent );
Parameter |
Type |
Description |
|---|---|---|
|
|
The base number. |
|
|
The exponent. |
Returns a double representing the base raised to the power of the exponent.
// Display 2 to the power of 3
Brain.Screen.print("%f", pow(2, 3));
// Output: 8.000000
Constants#
Constants are predefined values that remain fixed during a project. They can be used in calculations without requiring any definition or assignment.
M_PI#
M_PI gives the mathematical constant π, the ratio of a circle’s circumference to its diameter.
const double M_PI;
This constant does not have parameters.
Return ValuesReturns the mathematical constant π as a double.
// Calculate the area of a circle with radius 5
double area = M_PI * 5 * 5;
Brain.Screen.print("%f", area);
// Output: 78.539816
M_E#
The mathematical constant e (Euler’s number), the base of the natural logarithm.
Available Constantsconst double M_E;
This constant does not have parameters.
Return ValuesReturns the mathematical constant e as a double.
// Calculate e raised to the power of 2
double result = pow(M_E, 2);
Brain.Screen.print("%f", result);
// Output: 7.389056
Trigonometry#
sin#
Calculates the sine of an angle in radians and returns a double.
Available Functionsdouble sin( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A double representing an angle in radians. |
Returns a double representing the sine of the angle.
// Convert 30 degrees to radians
double radians = 30 * M_PI / 180.0;
// Display the sine of 30 degrees
Brain.Screen.print("%f", sin(radians));
// Output: 0.500000
cos#
Calculates the cosine of an angle in radians and returns a double.
Available Functionsdouble cos( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A double representing an angle in radians. |
Returns a double representing the cosine of the angle.
// Convert 60 degrees to radians
double radians = 60 * M_PI / 180.0;
// Display the cosine of 60 degrees
Brain.Screen.print("%f", cos(radians));
// Output: 0.500000
tan#
Calculates the tangent of an angle in radians and returns a double.
Available Functionsdouble tan( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A double representing an angle in radians. |
Returns a double representing the tangent of the angle.
// Convert 45 degrees to radians
double radians = 45 * M_PI / 180.0;
// Compute tangent of 45 degrees
Brain.Screen.print("%f", tan(radians));
// Output: 1.000000
atan#
Calculates the inverse tangent (arc tangent) of a number and returns a double representing the angle in radians.
Available Functionsdouble atan( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A double value. |
Returns a double representing the arc tangent in radians.
// Calculate the arc tangent of 1 in degrees
double degrees = atan(1.0) * 180.0 / M_PI;
Brain.Screen.print("%f", degrees);
// Output: 45.000000
atan2#
Calculates the principal value of the inverse tangent of y/x and returns a double representing the angle in radians.
Available Functionsdouble atan2( double y, double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A double representing the y-coordinate. |
|
|
A double representing the x-coordinate. |
Returns a double representing the arc tangent of y/x in radians.
// Calculate the inverse tangent of 1/1 in degrees
double degrees = atan2(1.0, 1.0) * 180.0 / M_PI;
Brain.Screen.print("%f", degrees);
// Output: 45.000000
asin#
Calculates the inverse sine (arc sine) of a number and returns a double representing the angle in radians.
Available Functionsdouble asin( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A double between -1 and 1. |
Returns a double representing the arc sine in radians.
// Calculate the arc sine of 0.5 in degrees
double degrees = asin(0.5) * 180.0 / M_PI;
Brain.Screen.print("%f", degrees);
// Output: 30.000000
acos#
Calculates the inverse cosine (arc cosine) of a number and returns a double representing the angle in radians.
Available Functionsdouble acos( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A double between -1 and 1. |
Returns a double representing the arc cosine in radians.
// Calculate the arc cosine of 0.5 in degrees
double degrees = acos(0.5) * 180.0 / M_PI;
Brain.Screen.print("%f", degrees);
// Output: 60.000000
Rounding & Absolute Value#
ceil#
Returns a number rounded up as a double.
Available Functionsdouble ceil( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A double to be rounded up. |
Returns a double representing the smallest integer greater than or equal to x.
// Round up 9.7
Brain.Screen.print("%f", ceil(9.7));
// Output: 10.000000
floor#
Returns a number rounded down as a double.
Available Functionsdouble floor( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A double to be rounded down. |
Returns a double representing the largest integer less than or equal to x.
// Round down 9.7
Brain.Screen.print("%f", floor(9.7));
// Output: 9.000000
trunc#
Returns a number as a double, with its decimal portion set to zero.
Available Functionsdouble trunc( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A double to be truncated. |
Returns a double with the decimal portion removed.
// Truncate 9.7
Brain.Screen.print("%f", trunc(9.7));
// Output: 9.000000
Exponents & Logarithms#
sqrt#
Returns the square root of a number as a float.
Available Functionsdouble sqrt( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A non-negative double. |
Returns a double representing the square root of x.
// Display the square root of 121
Brain.Screen.print("%f", sqrt(121));
// Output: 11.000000
exp#
Calculates the exponential of a number and returns a float.
Available Functionsdouble exp( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A double to calculate the exponential of. |
Returns a double representing e raised to the power of x.
// Calculate e raised to the power of 1
double result = exp(1);
Brain.Screen.print("%f", result);
// Output: 2.718282
log#
Calculates the natural logarithm of a number and returns a float.
Available Functionsdouble log( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A positive double. |
Returns a double representing the natural logarithm of x.
// Calculate the natural logarithm (base e) of e
double result = log(M_E);
Brain.Screen.print("%f", result);
// Output: 1.000000
log10#
Calculates the base-10 logarithm of a number and returns a float.
Available Functionsdouble log10( double x );
Parameter |
Type |
Description |
|---|---|---|
|
|
A positive double. |
Returns a double representing the base-10 logarithm of x.
// Calculate the base-10 logarithm of 1000
double result = log10(1000);
Brain.Screen.print("%f", result);
// Output: 3.000000
Floating Point Operations#
fmod#
Returns the remainder of division while keeping the sign of the dividend.
Available Functionsdouble fmod( double x, double y );
Parameter |
Type |
Description |
|---|---|---|
|
|
The dividend. |
|
|
The divisor. |
Returns a double representing the remainder of x/y with the sign of x.
// Calculate remainder of 10 / -3
// that preserves the sign of 10
double result = fmod(10.0, -3.0);
Brain.Screen.print("%f", result);
// Output: 1.000000
copysign#
Returns a number with the magnitude of x and the sign of y.
Available Functionsdouble copysign( double x, double y );
Parameter |
Type |
Description |
|---|---|---|
|
|
The value whose magnitude will be used. |
|
|
The value whose sign will be used. |
Returns a double with the magnitude of x and the sign of y.
// Return-10 with the sign of -3 (negative)
double result = copysign(10, -3);
Brain.Screen.print("%f", result);
// Output: -10.000000