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