Math
Built-in mathematical functions. The Math object can be accessed simply by typing Math.
Examples:
// Math functions
two = Math.sqrt(4); // square root of 4
eight = Math.pow(2, 3); // 2 raised to the 3rd power
zero = Math.sin(0); // sine of 0
seven = Math.max(5, 7); // maximum of 5 and 7
Properties
pi
pi: number, read-only.
An approximation of pi (3.1415926535...)
epsilon
epsilon: number, read-only.
The difference between 1 and the smallest floating point number that is greater than 1.
infinity
infinity: number, read-only.
A floating point representation of positive infinity.
NaN
NaN: number, read-only.
A numeric data type representing Not-a-Number.
Available since: SurgeScript 0.5.3
Functions
sqrt
sqrt(x)
Square root function.
Arguments
x: number.
Returns
The square root of x.
pow
pow(x, p)
Raise to power.
Arguments
x: number. The base.p: number. The exponent.
Returns
Returns x raised to the p power.
exp
e(x)
Exponential function.
Arguments
x: number.
Returns
Returns e raised to the x power.
log
log(x)
Natural logarithm.
Arguments
x: number.
Returns
The natural logarithm (base e) of x.
log10
log10(x)
Base 10 logarithm.
Arguments
x: number.
Returns
The base 10 logarithm of x.
sin
sin(x)
Sine function.
Arguments
x: number. Angle in radians.
Returns
The sine of x.
cos
cos(x)
Cosine function.
Arguments
x: number. Angle in radians.
Returns
The cosine of x.
tan
tan(x)
Tangent function.
Arguments
x: number. Angle in radians.
Returns
The tangent of x.
asin
asin(x)
Arc-sine function.
Arguments
x: number.
Returns
The angle in radians whose sine is x.
acos
acos(x)
Arc-cosine function.
Arguments
x: number.
Returns
The angle in radians whose cosine is x.
atan
atan(x)
Arc-tangent function.
Arguments
x: number.
Returns
The angle in radians whose tangent is x.
atan2
atan2(y, x)
Function atan2.
Arguments
y: number.x: number.
Returns
The angle, in radians, between the positive x-axis and the (x, y) vector.
deg2rad
deg2rad(degrees)
Converts degrees to radians.
Available since: SurgeScript 0.5.3
Arguments
degrees: number.
Returns
The converted value.
rad2deg
rad2deg(radians)
Converts radians to degrees.
Available since: SurgeScript 0.5.3
Arguments
radians: number.
Returns
The converted value.
random
random()
Random value.
Returns
A random number between 0 (inclusive) and 1 (exclusive).
floor
floor(x)
Floor function.
Arguments
x: number.
Returns
The largest integer less or equal than x.
ceil
ceil(x)
Ceiling function.
Arguments
x: number.
Returns
The smallest integer greater or equal than x.
round
round(x)
Round to the nearest integer.
Arguments
x: number.
Returns
Returns x rounded to the nearest integer.
If the fraction of x is 0.5, this function uses the commercial rounding tie-breaking method.
trunc
trunc(x)
Truncate to integer.
Available since: SurgeScript 0.6.0
Arguments
x: number.
Returns
The nearest integer not greater in magnitude than x.
mod
mod(x, y)
Modulo operation. This is used to get the value x mod y - the modulo - defined as the remainder of the division of x by y that has the sign of the divisor y.
Info
The modulo x mod y may differ from the remainder x % y. The former has the sign of the divisor y, whereas the latter has the sign of the dividend x. When x and y have the same sign, the modulo and the remainder are equal. When the signs differ, modulo and remainder differ by y.
Arguments
x: number. The dividend.y: number. The divisor.
Returns
The modulo x mod y.
Note
The modulo x mod y is returned since SurgeScript 0.6.0. The remainder x % y was returned on SurgeScript 0.5.x.
Example
x = 5;
y = 3;
Console.print(Math.mod(x, y)); // 2
Console.print(x % y); // 2
Console.print(Math.mod(-x, -y)); // -2
Console.print(-x % -y); // -2
Console.print(Math.mod(-x, y)); // 1
Console.print(-x % y); // -2
Console.print(Math.mod(x, -y)); // -1
Console.print(x % -y); // 2
sign
sign(x)
The sign of x: 1 if x is non-negative, -1 otherwise.
Arguments
x: number.
Returns
Returns 1 if x is positive or zero; or -1 if x is negative.
signum
signum(x)
Function signum(x) returns 1 if x is positive, 0 if is x is zero, or -1 if x is negative.
Available since: SurgeScript 0.5.4
Arguments
x: number.
Returns
Returns 1 if x is positive, 0 if is x is zero, or -1 if x is negative.
abs
abs(x)
Absolute value of x.
Arguments
x: number.
Returns
Returns -x if x is negative, or x otherwise.
min
min(x, y)
The minimum of two values.
Arguments
x: number.y: number.
Returns
Returns the minimum of x and y.
max
max(x, y)
The maximum of two values.
Arguments
x: number.y: number.
Returns
Returns the maximum of x and y.
clamp
clamp(val, min, max)
Clamps a value between a minimum and a maximum.
Arguments
val: number. The value to be clamped.min: number. Minimum value.max: number. Maximum value.
Returns
Returns val clamped between min and max. Function clamp behave as follows:
- if
val<min, it returnsmin - if
val>max, it returnsmax - otherwise, it returns
val
approximately
approximately(x, y)
Compares two floating point values. Since comparing two floating point numbers for equality directly may result in inaccuracies, this is a handy function.
Arguments
x: number.y: number.
Returns
Returns true if x and y are "approximately" equal.
lerp
lerp(a, b, t)
Linear interpolation.
Arguments
a: number.b: number.t: number. A value between 0 and 1.
Returns
Returns the linear interpolation between a and b by t.
Value t is clamped automatically to the [0, 1] range. As an example, note that lerp:
- returns
aiftis 0 - returns
biftis 1 - returns
(a + b) / 2iftis 0.5
smoothstep
smoothstep(a, b, t)
Interpolation smoothing at the limits.
Arguments
a: number.b: number.t: number. A value between 0 and 1.
Returns
Returns an interpolated value between a and b by t. Unlike lerp, smoothstep is smooth at the limits. This is useful to create smooth transitions and animations.
Value t is clamped automatically to the [0, 1] range.
lerpAngle
lerpAngle(alpha, beta, t)
Linear interpolation of angles alpha and beta given in degrees. Unlike lerp, lerpAngle can interpolate angles when they wrap around 360 degrees.
Available since: SurgeScript 0.5.4.1
Arguments
alpha: number. A value in degrees.beta: number. A value in degrees.t: number. A value between 0 and 1.
Returns
Returns the linear interpolation between angles alpha and beta, given in degrees, by t.
deltaAngle
deltaAngle(alpha, beta)
The shortest difference between angles alpha and beta given in degrees.
Available since: SurgeScript 0.5.4.1
Arguments
alpha: number. A value in degrees.beta: number. A value in degrees.
Returns
Returns, in degrees, the shortest difference between the angles.