Skip to content

Expression 2 Number

shadow7483147 edited this page Aug 4, 2020 · 18 revisions

This is a full list of functions provided by E2's number extension. It will also include syntax for comparison operations and bitwise ops.

Table of Contents

Comparison

Syntax Example Description
> if ( A>8 ) {} Greater than comparison. Returns 1 when the left value is greater than the right value.
< if ( A<4 ) {} Less than comparison. Returns 1 when the left value is less than the right value.
>= if ( A>=6 ) {} Returns 1 when the right value is either greater than or equal to the left value.
<= if ( A<=14 ) {} Returns 1 when the right value is either less than or equal to the left value.
Function Returns Description
inrange(N₁,N₂,N₃) Returns 1 when the value N₁ is in between the arguments N₂ and N₃.
max(N,N[,N,N]) Selects the closest number to positive infinity and returns it.

Selection

These functions pick the highest or lowest value of a set of numbers, and returns that.

Function Returns Description
min(N,N[,N,N]) Selects the closest number to negative infinity and returns it.
Requires 2 arguments, maximum of 4 arguments.
max(N,N[,N,N]) Selects the closest number to positive infinity and returns it.
Requires 2 arguments, maximum of 4 arguments.
clamp(N₁,N₂,N₃) Clamps the value N₁ to a minimum and maximum amount N₂ and N₃, and returns the clamped amount.

Infinity

Pray you don't have to use these.

Function Returns Description
isfinite(N) Returns 1 (true) if the given value is a finite number.
isinf(N) Returns 1 if the number is positive infinity, or -1 when it is negative infinity. Finite numbers return 0.
isnan(N) Returns 1 when the given value is not a number (NaN).

Arithmetic

haha numbers go wheeeeeeee

Syntax Example Description
+ 3 + 8 Adds two values together and returns the result.
- A - B Subtracts the right value from the left value, and returns the result.
* C * D Multiplies the right and left values together, and returns the result. This can also multiply vectors as a scalar magnitude!
/ E / F Divides the left value over the right value and returns an exact decimal answer.
% E % F Divides the left value over the right value, and returns the remainder of the division.
^ 4 ^ N Raises the left value to the Nth power exponent, and returns the result.
Function Returns Description
sqrt(N) Returns the square root of the given value.
cbrt(N) Returns the cubic root of the given value.
root(N₁,N₂) Returns the N₂th root of the value N₁
ln(N) Performs a logarithm with base e on the given value.
log(N₁,N₂) Performs a logarithm with an N₂th base on the given value N₁.
log2(N) Performs a logarithm based 2 on the given value.
log10(N) Performs a logarithm based 10 on the given value.
frexp(N) Returns the mantissa and exponent of the given floating-point number as a vector2 (X component holds a mantissa, and Y component holds an exponent)
frac(N) Returns the decimal (fractional) component of a number.
-1.4 returns -0.4, 2.6 returns 0.6.

Assignment

Number variables can be reassigned a new value based on one of the basic arithmetic operators by simply appending an equal sign after it.
The format A += B, is equivalent to doing A = A + B. This works for any arithmetic operation.

There is also a shorthand form of this to increment/decrement a variable by just 1.

Syntax Example Description
++ A++ Increments variable A by 1 directly.
-- B-- Decrements variable B by 1 directly.
+= A += B - C Sets the variable A equal to itself, plus B-C.
-= A -= B + C Sets the variable A equal to itself, minus B+C.
*= A *= D Sets A equal to A * D.
/= A /= E Sets A equal to A / E.
%= A %= G Sets A equal to A % G.
^= A ^= H Sets A equal to A to the power of H.

Rounding

Rounds to the nearest integer.

Function Returns Description
round(N₁[,N₂]) Rounds to the nearest integer, optionally up to N₂ number of decimal places, from .5 up and anything below down.
floor(N₁[,N₂]) Rounds a number down towards -infinity, optionally up to N₂ number of decimal places.
-1.4 returns -2, 2.6 returns 2.
ceil(N₁[,N₂]) Rounds a number up towards +infinity, optionally up to N₂ number of decimal places.
-1.4 returns -1, 2.6 returns 3.
int(N) Rounds a number towards 0 to the nearest integer.
-1.4 returns -1, 2.6 returns 2.
frac(N) Returns the decimal (fractional) component of a number.
-1.4 returns -0.4, 2.6 returns 0.6.

Manipulation

General arithmetic functions that are used to modify & manipulate values which don't fit into the other categories

Function Returns Description
abs(N) Returns the positive form (magnitude) of the value, aka, the absolute value of the number.
sign(N) Returns the sign of the given value. 1 for positive values, -1 for negative values, and 0 for anything else.
wrap(N₁,N₂) Performs (N₁+N₂) % (N₂*2) - N₂.
Performs a wrapping calculation around 0 with a range of N₂.
wrap(89,90) returns 89, wrap(92,90) returns -88.
isnan(N) Returns 1 when the given value is not a number (NaN).

Trigonometric/Geometric

Scattah. A gift! For you!

(Note that trig functions in E2 work with degree-based values.)

Function Returns Description
toRad(N) Converts the value's unit from degrees into radians. 90° == 𝜋/2
toDeg(N) Converts the value's unit from radians into degrees. 𝜋 radians == 180°
sin(N) Returns the sine of value N. sin(90) = 1
cos(N) Returns the cosine of value N. cos(0) = 1
tan(N) Returns the tangent of value N. tan(45) = 1
asin(N) Returns the sine inverse (arc sine) of value N.
acos(N) Returns the cosine inverse (arc cosine) of value N.
atan(N) Returns the tangent inverse (arc tangent) of value N.
isnan(N) Returns 1 when the given value is not a number (NaN).

Mathematical Constants

Function Returns Description
inf()
pi() 𝜋
exp(N) Returns e to the power of the Argument (same as e()^N but shorter and faster this way)

Bitwise

Developed by: asiekierka, TomyLobo (made xor), and Divran (added operators)

Bitwise operators act on numbers as if they were decimal-represented binary numbers.The individual bits of a number have operations taken against them. Wikipedia has a good explanation of each function: http://en.wikipedia.org/wiki/Bitwise_operation

Tip: You can also use N:toString(2) and S:toNumber(2) to perform bitwise manipulation using the string functions.

Function Returns Description
bOr(N,N) Performs bitwise OR against the two numbers (Operator: N || N)
bAnd(N,N) Performs bitwise AND against the two numbers (Operator: N && N)
bXor(N,N) Performs bitwise XOR against the two numbers (Operator: N ^^ N)
bShl(N,N) Performs bitwise shift left on the first number by the amount of the second (Operator: N << N)
bShr(N,N) Performs bitwise shift right on the first number by the amount of the second (Operator: N >> N)
bNot(N) Performs a binary Not
bNot(N,N) Performs a binary Not. The second argument is the length of the number you wish to perform Not on in bits.

General function list

Expression 2 ⚙️

Getting Started 🕊

Guides (In learning order) 🎓

Tools 🛠️

Click To Expand

Advanced

Beacon 💡

Control 🎛️

Data 💿

Detection 👀

Display 💻

Render 🖌

I/O 🔌

Physics 🚀

Utilities 🛠️

RFID 💳

Wireless 🛜

Gates 🚥

Click To Expand

TBD

Extras 🔭

Clone this wiki locally