Math
Functions
def PI : {v : Float | 3.1415926 < v && v < 3.1415927}
def E : {v : Float | 2.7182818 < v && v < 2.7182819}
def TAU : {v : Float | 6.2831853 < v && v < 6.2831854}
def toFloat (i: Int) : Float
def toInt (i: Float) : Int
def min (i: Int) (j: Int) : Int
def max (i: Int) (j: Int) : Int
def abs (i: Int) : {v : Int | v >= 0}
def pow (i: Int) (j: {v : Int | v >= 0}) : Int
def floor_division (i: Int) (j: {v : Int | v != 0}) : Int
def gcd (i: Int) (j: Int) : {v : Int | v >= 0}
def lcm (i: Int) (j: Int) : {v : Int | v >= 0}
def factorial (i: {v : Int | v >= 0}) : {v : Int | v >= 1}
def comb (n: {v : Int | v >= 0}) (k: {v : Int | v >= 0}) : {v : Int | v >= 0}
def perm (n: {v : Int | v >= 0}) (k: {v : Int | v >= 0}) : {v : Int | v >= 0}
def minf (i: Float) (j: Float) : Float
def maxf (i: Float) (j: Float) : Float
def absf (i: Float) : {v : Float | v >= 0.0}
def powf (i: Float) (j: Float) : Float
def remainder (i: Float) (j: {v : Float | v != 0.0}) : Float
def fmod (i: Float) (j: {v : Float | v != 0.0}) : Float
def round (i: Float) : Int
def ceil (i: Float) : Int
def floor (i: Float) : Int
def trunc (i: Float) : Int
def sqrt (i: {v : Int | v >= 0}) : {v : Float | v >= 0.0}
def sqrtf (i: {v : Float | v >= 0.0}) : {v : Float | v >= 0.0}
def isqrt (i: {v : Int | v >= 0}) : {v : Int | v >= 0}
def cbrt (i: Float) : Float
def exp (i: Float) : {v : Float | v > 0.0}
def expm1 (i: Float) : Float
def exp2 (i: Float) : {v : Float | v > 0.0}
def log (i: {v : Float | v > 0.0}) : Float
def log10 (i: {v : Float | v > 0.0}) : Float
def log2 (i: {v : Float | v > 0.0}) : Float
def log1p (i: {v : Float | v > -1.0}) : Float
def sin (i: Float) : Float
def cos (i: Float) : Float
def tan (i: Float) : Float
def asin (i: {v : Float | -1.0 <= v && v <= 1.0}) : Float
def acos (i: {v : Float | -1.0 <= v && v <= 1.0}) : Float
def atan (i: Float) : Float
def atan2 (sinVal: Float) (cosVal: Float) : Float
def radians (deg: Float) : Float
def degrees (rad: Float) : Float
def hypot (x: Float) (y: Float) : {v : Float | v >= 0.0}
def sinh (i: Float) : Float
def cosh (i: Float) : {v : Float | v >= 1.0}
def tanh (i: Float) : Float
def asinh (i: Float) : Float
def acosh (i: {v : Float | v >= 1.0}) : {v : Float | v >= 0.0}
def atanh (i: {v : Float | -1.0 < v && v < 1.0}) : Float
def erf (i: Float) : Float
def erfc (i: Float) : Float
def lgamma (i: Float) : Float
def gamma (i: {v : Float | v > 0.0}) : {v : Float | v > 0.0}
def isfinite (i: Float) : Bool
def isinf (i: Float) : Bool
def isnan (i: Float) : Bool
def sign (i: Int) : {v : Int | v >= 0 - 1 && v <= 1}
def signf (i: Float) : {v : Int | v >= 0 - 1 && v <= 1}
def clamp (x: Int) (lo: Int) (hi: {v : Int | v >= lo}) : {v : Int | v >= lo && v <= hi}
def clampf (x: Float) (lo: Float) (hi: {v : Float | v >= lo}) : {v : Float | v >= lo && v <= hi}