fn abs(x: Int) Int { if x < 0 { return -x; } return x; } fn fabs(x: Float) Float { if x < 0.0 { return -x; } return x; } fn max(x: Int, y: Int) Int { if x > y { return x; } return y; } fn min(x: Int, y: Int) Int { if x < y { return x; } return y; } fn fmax(x: Float, y: Float) Float { if x > y { return x; } return y; } fn fmin(x: Float, y: Float) Float { if x < y { return x; } return y; } fn pow(x: Float, y: Float) Float { var power: Float = x; while y > 1.0 { x = power*x; y = y-1.0; } return x; } fn floor(x: Float) Int{ return as_int(x - fabs(x % 1.0)); } fn ceil(x: Float) Int { if x < 0.0 { return floor(x) - 1; } return floor(x) + 1; } fn round(x: Float) Int { var ret: Int = floor(x); if fabs(x % 1.0) >= 0.5 { ret = ceil(x); } return ret; }