//IO library #ifndef INCLUDE_MATH_H #define INCLUDE_MATH_H #print "[include <math.h>]\n" #ifndef INCLUDE_KOLIBRI_H #include "../lib/kolibri.h" #endif :struct MATH { float pi(); float cos(float x); float sin(float x); float sqrt(float x); float tan(float x); float abs(float x); float floor(float x); signed round(float x); signed ceil(float x); }math; :signed MATH::round(float x) { x+=0.6; return x; } :signed MATH::ceil(float x) { dword z; float tmp; z = x; tmp = z; IF(tmp<x)z++; return z; } :float MATH::floor(float x) { signed long z; z = x; IF(z==x)return x; IF(z<0) return z-1; return z; } :float MATH::abs(float x) { IF(x<0)return -x; return x; } :float MATH::cos(float x) { float r; asm { fld x fcos fstp r } return r; } :float MATH::sin(float x) { float r; asm { fld x fsin fstp r } return r; } :float MATH::sqrt(float x) { float r; asm { fld x fsqrt fstp r } return r; } :float MATH::tan(float x) { float r; asm { fld x fld1 fpatan fstp r } return r; } #endif