Numeric Functions
Integer Functions
The following standard functions are defined.
| Function | Not available under | Package | Description |
|---|---|---|---|
is_odd method and property | ArithmeticPackage | returns true if the value is an odd number, otherwise false | |
is_even method and property | ArithmeticPackage | returns true if the value is an even number, otherwise false | |
min | LogicPackage | returns the smaller of two numbers | |
max | LogicPackage | returns the larger of two numbers | |
to_float | no_float | BasicMathPackage | convert the value into f64 (f32 under f32_float) |
to_decimal | non-decimal | BasicMathPackage | convert the value into Decimal |
Signed Numeric Functions
The following standard functions are defined in the ArithmeticPackage
(excluded when using a raw Engine) and operate on i8, i16, i32, i64, f32, f64 and
Decimal (requires decimal) only.
| Function | Description |
|---|---|
abs | absolute value |
sign | returns (INT) −1 if negative, +1 if positive, 0 if zero |
is_zero method and property | returns true if the value is zero, otherwise false |
Floating-Point Functions
The following standard functions are defined in the BasicMathPackage
(excluded when using a raw Engine) and operate on f64 (f32 under f32_float) and
Decimal (requires decimal) only.
| Category | Supports Decimal | Functions |
|---|---|---|
| Trigonometry | yes | sin, cos, tan |
| Trigonometry | no | sinh, cosh, tanh in radians, hypot(x,y) |
| Arc-trigonometry | no | asin, acos, atan(v), atan(x,y), asinh, acosh, atanh in radians |
| Square root | yes | sqrt |
| Exponential | yes | exp (base e) |
| Logarithmic | yes | ln (base e) |
| Logarithmic | yes | log (base 10) |
| Logarithmic | no | log(x,base) |
| Rounding | yes | floor, ceiling, round, int, fraction methods and properties |
| Conversion | yes | to_int, to_decimal (requires decimal), to_float (not under no_float) |
| Conversion | no | to_degrees, to_radians |
| Comparison | yes | min, max (also inter-operates with integers) |
| Testing | no | is_nan, is_finite, is_infinite methods and properties |
Decimal Rounding Functions
The following rounding methods are defined in the BasicMathPackage
(excluded when using a raw Engine) and operate on Decimal only,
which requires the decimal feature.
| Rounding type | Behavior | Methods |
|---|---|---|
| None | floor, ceiling, int, fraction methods and properties | |
| Banker’s rounding | round to integer | round method and property |
| Banker’s rounding | round to specified number of decimal points | round(decimal points) |
| Round up | away from zero | round_up(decimal points) |
| Round down | towards zero | round_down(decimal points) |
| Round half-up | mid-point away from zero | round_half_up(decimal points) |
| Round half-down | mid-point towards zero | round_half_down(decimal points) |
Parsing Functions
The following standard functions are defined in the BasicMathPackage
(excluded when using a raw Engine) to parse numbers.
| Function | No available under | Description |
|---|---|---|
parse_int | converts a string to INT with an optional radix | |
parse_float | no_float and non-decimal | converts a string to FLOAT (Decimal under no_float and decimal) |
parse_decimal | non-decimal | converts a string to Decimal |
Formatting Functions
The following standard functions are defined in the BasicStringPackage
(excluded when using a raw Engine) to convert integer numbers into a string of hex, octal
or binary representations.
| Function | Description |
|---|---|
to_binary | converts an integer number to binary |
to_octal | converts an integer number to octal |
to_hex | converts an integer number to hex |
These formatting functions are defined for all available integer numbers – i.e. INT, u8,
i8, u16, i16, u32, i32, u64, i64, u128 and i128 unless disabled by feature flags.
Floating-point Constants
The following functions return standard mathematical constants.
| Function | Description |
|---|---|
PI | returns the value of π |
E | returns the value of e |
Numerical Functions for Scientific Computing
Check out the rhai-sci crate for more numerical functions.