Math#

Introduction#

The C++ standard library provides basic math functionality through {code}, 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 {code}.

  • M_PI – The constant π (pi).

  • M_E – Euler’s number, base of the natural log.

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.

  • fmod – Remainder with sign of the dividend.

  • copysign – Returns a value with the sign of another.

Common Math Functions#

abs#

Returns the absolute value of a number, removing any negative sign.

Available Functions

1 Returns the absolute value of an integer.

int abs( int x );

2 Returns the absolute value of a double.

double abs( double x );

Parameters

Parameter

Type

Description

x

int or double

An integer or double.

Return Values

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 Functions
double fmin( double value1, double value2 );

Parameters

Parameter

Type

Description

value1

double

The first value to compare.

value2

double

The second value to compare.

Return Values

Returns a double representing the smaller of the two input values.

Examples
// 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 Functions
double fmax( double value1, double value2 );

Parameters

Parameter

Type

Description

value1

double

The first value to compare.

value2

double

The second value to compare.

Return Values

Returns a double representing the larger of the two input values.

Examples
// 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 Functions
double pow( double base, double exponent );

Parameters

Parameter

Type

Description

base

double

The base number.

exponent

double

The exponent.

Return Values

Returns a double representing the base raised to the power of the exponent.

Examples
// 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.

Available Constants
const double M_PI;

Parameters

This constant does not have parameters.

Return Values

Returns the mathematical constant π as a double.

Examples
// 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 Constants
const double M_E;

Parameters

This constant does not have parameters.

Return Values

Returns the mathematical constant e as a double.

Examples
// 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 Functions
double sin( double x );

Parameters

Parameter

Type

Description

x

double

A double representing an angle in radians.

Return Values

Returns a double representing the sine of the angle.

Examples
// 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 Functions
double cos( double x );

Parameters

Parameter

Type

Description

x

double

A double representing an angle in radians.

Return Values

Returns a double representing the cosine of the angle.

Examples
// 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 Functions
double tan( double x );

Parameters

Parameter

Type

Description

x

double

A double representing an angle in radians.

Return Values

Returns a double representing the tangent of the angle.

Examples
// 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 Functions
double atan( double x );

Parameters

Parameter

Type

Description

x

double

A double value.

Return Values

Returns a double representing the arc tangent in radians.

Examples
// 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 Functions
double atan2( double y, double x );

Parameters

Parameter

Type

Description

y

double

A double representing the y-coordinate.

x

double

A double representing the x-coordinate.

Return Values

Returns a double representing the arc tangent of y/x in radians.

Examples
// 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 Functions
double asin( double x );

Parameters

Parameter

Type

Description

x

double

A double between -1 and 1.

Return Values

Returns a double representing the arc sine in radians.

Examples
// 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 Functions
double acos( double x );

Parameters

Parameter

Type

Description

x

double

A double between -1 and 1.

Return Values

Returns a double representing the arc cosine in radians.

Examples
// 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 Functions
double ceil( double x );

Parameters

Parameter

Type

Description

x

double

A double to be rounded up.

Return Values

Returns a double representing the smallest integer greater than or equal to x.

Examples
// Round up 9.7
Brain.Screen.print("%f", ceil(9.7));

// Output: 10.000000

floor#

Returns a number rounded down as a double.

Available Functions
double floor( double x );

Parameters

Parameter

Type

Description

x

double

A double to be rounded down.

Return Values

Returns a double representing the largest integer less than or equal to x.

Examples
// 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 Functions
double trunc( double x );

Parameters

Parameter

Type

Description

x

double

A double to be truncated.

Return Values

Returns a double with the decimal portion removed.

Examples
// 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 Functions
double sqrt( double x );

Parameters

Parameter

Type

Description

x

double

A non-negative double.

Return Values

Returns a double representing the square root of x.

Examples
// 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 Functions
double exp( double x );

Parameters

Parameter

Type

Description

x

double

A double to calculate the exponential of.

Return Values

Returns a double representing e raised to the power of x.

Examples
// 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 Functions
double log( double x );

Parameters

Parameter

Type

Description

x

double

A positive double.

Return Values

Returns a double representing the natural logarithm of x.

Examples
// 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 Functions
double log10( double x );

Parameters

Parameter

Type

Description

x

double

A positive double.

Return Values

Returns a double representing the base-10 logarithm of x.

Examples
// 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 Functions
double fmod( double x, double y );

Parameters

Parameter

Type

Description

x

double

The dividend.

y

double

The divisor.

Return Values

Returns a double representing the remainder of x/y with the sign of x.

Examples
// 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 Functions
double copysign( double x, double y );

Parameters

Parameter

Type

Description

x

double

The value whose magnitude will be used.

y

double

The value whose sign will be used.

Return Values

Returns a double with the magnitude of x and the sign of y.

Examples
// Return-10 with the sign of -3 (negative)
double result = copysign(10, -3);

Brain.Screen.print("%f", result);  
  
// Output: -10.000000