Difference between revisions of "LavishScript:Mathematical Formulae"

From Lavish Software Wiki
Jump to navigation Jump to search
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
== Introduction ==
 
== Introduction ==
Mathematical formulae are evaluated whenever a command, object or control structure calls for a formula or condition.  Formulae allow only numeric operations, they may not be used on text strings ([[DataType:string|string]] provides members for working with text strings).
+
Mathematical formulae (math operators) are evaluated whenever a command, object or control structure calls for a formula or condition.  Formulae allow only numeric operations, they may not be used on text strings ([[DataType:string|string]] provides members for working with text strings).
  
 
== Operators ==
 
== Operators ==
Line 82: Line 82:
 
== Keywords ==
 
== Keywords ==
 
Certain keywords are treated as specific numbers in mathematical formulae.  '''TRUE''' is treated as '''1'''.  '''FALSE''' and '''NULL''' are treated as '''0'''.
 
Certain keywords are treated as specific numbers in mathematical formulae.  '''TRUE''' is treated as '''1'''.  '''FALSE''' and '''NULL''' are treated as '''0'''.
 +
 +
== Notes ==
 +
* The == and != operators, when used in floating point math as opposed to Math.Calc64, treat any two numbers within 0.00000001 of each other as equal.
 +
* Note that Calc64 is a misnomer, as its purpose is to provide 64-bit integer math, whereas Math.Calc and all other calculations use 64-bit floating point math.
  
 
[[Category:LavishScript]]
 
[[Category:LavishScript]]

Latest revision as of 19:12, 2 December 2020

Introduction

Mathematical formulae (math operators) are evaluated whenever a command, object or control structure calls for a formula or condition. Formulae allow only numeric operations, they may not be used on text strings (string provides members for working with text strings).

Operators

The following table lists operators in order of precedence -- topmost are evaluated first. Consecutive items colored equally in the table are evaluated left to right with the same precedence.

Operator Operation
! Logical NOT - X (result is 0 or 1)
~ Bitwise NOT - X (flips every bit. e.g. 1 becomes -2)
^^ Power - X to Y
* Multiply - X by Y
/ Divide - X by Y
\ Divide (Integer) - X by Y. (Remember to escape it! x\\y)
% Modulus - X by Y
+ Add - X and Y
- Subtract - Y from X
<< Bitwise shift left - X by Y
>> Bitwise shift right - X by Y
> Greater than - X vs Y (result is 0 or 1)
>= Greater than or equal to - X vs Y (result is 0 or 1)
< Less than - X vs Y (result is 0 or 1)
<= Less than or equal to - X vs Y (result is 0 or 1)
== Equal - X vs Y (result is 0 or 1)
!= Not equal - X vs Y (result is 0 or 1)
& Bitwise AND - X and Y
^ Bitwise XOR - X xor Y
| Bitwise OR - X or Y
&& Logical AND - X and Y (result is 0 or 1)
|| Logical OR - X or Y (result is 0 or 1)

Grouping

Operations can be grouped with parentheses ( and ) in standard form. The enclosed expression will be evaluated first, thus providing a way to change the order of operations in a formula.

Note that in contrast to algebraic form, ( and ) next to another expression without an operator is not an implied multiplication. You must explicitly specify the operation to use with the parentheses.

Keywords

Certain keywords are treated as specific numbers in mathematical formulae. TRUE is treated as 1. FALSE and NULL are treated as 0.

Notes

  • The == and != operators, when used in floating point math as opposed to Math.Calc64, treat any two numbers within 0.00000001 of each other as equal.
  • Note that Calc64 is a misnomer, as its purpose is to provide 64-bit integer math, whereas Math.Calc and all other calculations use 64-bit floating point math.