Subversion Repositories Kolibri OS

Rev

Rev 5730 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. //IO library
  2. #ifndef INCLUDE_MATH_H
  3. #define INCLUDE_MATH_H
  4.  
  5. #ifndef INCLUDE_KOLIBRI_H
  6. #include "../lib/kolibri.h"
  7. #endif
  8.  
  9. :struct MATH
  10. {
  11.         float pi();
  12.         float cos(float x);
  13.         float sin(float x);
  14.         float sqrt(float x);
  15.         float tan(float x);
  16.         float abs(float x);
  17. }math;
  18. :float MATH::abs(float x)
  19. {
  20.         IF(x<0)return -x;
  21.         return x;
  22. }
  23.        
  24. :float MATH::cos(float x)
  25. {
  26.         float r;
  27.         asm
  28.         {
  29.                 fld x
  30.                 fcos
  31.                 fstp r
  32.         }
  33.         return r;
  34. }
  35. :float MATH::sin(float x)
  36. {
  37.         float r;
  38.         asm
  39.         {
  40.                 fld x
  41.                 fsin
  42.                 fstp r
  43.         }
  44.         return r;
  45. }
  46. :float MATH::sqrt(float x)
  47. {
  48.         float r;
  49.         asm
  50.         {
  51.                 fld x
  52.                 fsqrt
  53.                 fstp r
  54.         }
  55.         return r;
  56. }
  57. :float MATH::tan(float x)
  58. {
  59.         float r;
  60.         asm
  61.         {
  62.                 fld x
  63.                 fld1
  64.                 fpatan
  65.                 fstp r
  66.         }
  67.         return r;
  68. }
  69. #endif