3.6 KiB
3.6 KiB
Operators
Precedence
Same as in C++.
| Priority | Operations |
|---|---|
| Highest 0 |
power, not, calls, indexing, dot,... |
| 1 | % * / |
| 2 | + - |
| 3 | bit shifts (NI) |
| 4 | <=> (1) |
| 5 | <= >= < > |
| 6 | == != |
| 7 | bitwise and & (NI) |
| 9 | bitwise or | (NI) |
| 10 | && |
| 11 lowest |
|| |
- (NI)
- not yet implemented.
- (1)
- Shuttle operator:
a <=> breturns 0 if a == b, negative Int if a < b and positive Int otherwise. It is necessary to override shuttle operator to make a class comparable.
Operators
+ - * / % : if both operand is Int, calculates as int. Otherwise, as real:
// integer division:
3 / 2
>>> 1
but:
3 / 2.0
>>> 1.5
Round and range
The following functions return its argument if it is Int,
or transformed Real otherwise.
| name | description |
|---|---|
| floor(x) | Computes the largest integer value not greater than x |
| ceil(x) | Computes the least integer value value not less than x |
| round(x) | Rounds x |
| x.roundToInt() | shortcut to round(x).toInt() |
Lyng math functions
| name | meaning |
|---|---|
| sin(x) | sine |
| cos(x) | cosine |
| tan(x) | tangent |
| asin(x) | sin^{-1}(x) |
| acos(x) | cos^{-1}(x) |
| atan(x) | tg^{-1}(x) |
| sinh(x) | hyperbolic sine |
| cosh(x) | hyperbolic cosine |
| tanh(x) | hyperbolic tangent |
| asinh(x) | sinh^{-1}(x) |
| acosh(x) | cosh^{-1}(x) |
| atanh(x) | tgh^{-1}(x) |
| ln(x) | ln(x), log_e(x) |
| exp(x) | e^x |
| log10(x) | log_{10}(x) |
| pow(x, y) | {x^y} |
| sqrt(x) | \sqrt {x} |
| abs(x) | absolute value of x. Int if x is Int, Real otherwise |
For example:
assert( sin(π/2) == 1.0)
assert( cos(π/2) < 0.000001)
assert( abs(ln(exp(1))) - 1 < 0.00001)
// abs() keeps the argument type:
assert( abs(-1) is Int)
assert( abs(-2.21) == 2.21 )
>>> void
Scientific constant
| name | meaning |
|---|---|
Math.PI: Real or π |
3.1415926... |