This module implements various mathematical functions.

Except when explicitly noted otherwise, all return values are floats. The underlying implementations works on double precision floats that are converted back to single precision if the VM does not support double precision.

No exceptions are raised: in case of error, the return value can be infinite or NaN. Such cases can be checked with the provided functions.

The following constants are defined:

  • pi 3.14159265
  • e 2.71828182

Return the tangent of x radians.


Return the cosine of x radians.


Return the sine of x radians.

atan2(y, x)

Return atan(y / x), in radians. The result is between -pi and pi. The vector in the plane from the origin to point (x, y) makes this angle with the positive X axis. The point of atan2() is that the signs of both inputs are known to it, so it can compute the correct quadrant for the angle. For example, atan(1) and atan2(1, 1) are both pi/4, but atan2(-1, -1) is -3*pi/4.


Return the arc tangent of x, in radians.


Return the arc cosine of x, in radians.


Return the arc sine of x, in radians.


Converts rad from radians to degrees.


Converts degree from degrees to radians.


Return e**x.

log(x[, base])

With one argument or with base non positive, return the natural logarithm of x (to base e).

With two arguments, return the logarithm of x to the given base, calculated as log(x)/log(base).

pow(x, y)

Return x raised to the power y.

Unlike the built-in ** operator, math.pow() converts both its arguments to type float. Use ** or the built-in pow() function for computing exact integer powers.


Return the square root of x.


Return True if x is a NaN (not a number), and False otherwise.


Return True if x is a positive or negative infinity, and False otherwise.


Return the floor of x, the largest integer less than or equal to x.


Return the ceiling of x, the smallest integer greater than or equal to x.