Math
The math library adds methods to the primitive data types of int, double, long, and complex.
For example, instead of
public int x;
formula a_x = Math.abs(x);
developers can instead use
public int x;
formula a_x = x.abs();
Also, many math functions also work on maybe types since some mathematical operators may be undefined (i.e. division by zero). Operating on maybe types, while inefficient, allows for expressive compute.
Type: int
| Method | Description | Result type |
|---|---|---|
| abs() | Returns the absolute value of the given integer. | int |
Type: long
| Method | Description | Result type |
|---|---|---|
| abs() | Returns the absolute value of the given long. | long |
Type: double, maybe<double>
| Method | Description | Result type |
|---|---|---|
| abs() | Returns the absolute value of the given double. | double |
| sqrt() | Returns the square root | complex |
| ceil() | - | double |
| floor() | - | double |
| ceil(double precision) | - | double |
| floor(double precision) | - | double |
| round() | - | double |
| round(double precision) | - | double |
| roundTo(int digits) | - | double |
Note; while many math functions are supported; they don't yet operate on maybe types; see #124
Type: complex, maybe<compex>
| Method | Description | Result type |
|---|---|---|
| conj() | Returns the complex conjugate. | complex |
| length() | Returns the length of the complex number per the pythagorean theorem. | double |