home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / vbcc / machines / amiga68k / include / math.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-12-30  |  2.0 KB  |  64 lines

  1. /*  Die Library ist auch noch unvollstaendig    */
  2.  
  3. #ifndef __MATH_H
  4. #define __MATH_H 1
  5.  
  6. #ifndef PI
  7. #define PI            3.14159265358979323846
  8. #endif
  9. #ifndef PI_2
  10. #define PI_2          1.57079632679489661923
  11. #endif
  12.  
  13. #if defined(_M68881)||defined(_M68040)||defined(_M68060)
  14. double sqrt(__reg("fp0") double)="\tfsqrt.x\tfp0";
  15. double fabs(__reg("fp0") double)="\tfabs.x\tfp0";
  16. double floor(__reg("fp0") double)="\tfmove.l\tfpcr,d1\n\tmoveq\t#32,d0\n\tor.l\td1,d0\n\tand.b\t#255-16,d0\n\tfmove.l\td0,fpcr\n\tfint.x\tfp0\n\tfmove.l\td1,fpcr";
  17. double ceil(__reg("fp0") double)="\tfmove.l\tfpcr,d1\n\tmoveq\t#48,d0\n\tor.l\td1,d0\n\tfmove.l\td0,fpcr\n\tfint.x\tfp0\n\tfmove.l\td1,fpcr";
  18. #else
  19. double sqrt(double);
  20. double fabs(double);
  21. double floor(double);
  22. double ceil(double);
  23. #endif
  24.  
  25. #ifdef _M68881
  26. double acos(__reg("fp0") double)="\tfacos.x\tfp0";
  27. double asin(__reg("fp0") double)="\tfasin.x\tfp0";
  28. double atan(__reg("fp0") double)="\tfatan.x\tfp0";
  29. double cos(__reg("fp0") double)="\tfcos.x\tfp0";
  30. double cosh(__reg("fp0") double)="\tfcosh.x\tfp0";
  31. double exp(__reg("fp0") double)="\tfetox.x\tfp0";
  32. double log(__reg("fp0") double)="\tflogn.x\tfp0";
  33. double log10(__reg("fp0") double)="\tflog10.x\tfp0";
  34. double modf(__reg("fp0") double,__reg("a0") double *)="\tfintrz.x\tfp0,fp1\n\tfmove.d\tfp1,(a0)\n\tfsub.x\tfp1,fp0";
  35. double pow(__reg("fp0") double,__reg("fp1") double)="\tfmul.x\tfp1,fp0\n\tfetox.x\tfp0";
  36. double sin(__reg("fp0") double)="\tfsin.x\tfp0";
  37. double sinh(__reg("fp0") double)="\tfsinh.x\tfp0";
  38. double tan(__reg("fp0") double)="\tftan.x\tfp0";
  39. double tanh(__reg("fp0") double)="\tftanh.x\tfp0";
  40. #else
  41. double sin(double);
  42. double cos(double);
  43. double tan(double);
  44. double sinh(double);
  45. double cosh(double);
  46. double tanh(double);
  47. double asin(double);
  48. double acos(double);
  49. double atan(double);
  50. double exp(double);
  51. double log(double);
  52. double log10(double);
  53. double pow(double,double);
  54. double modf(double,double *);
  55. #endif
  56.  
  57. double atan2(double,double);
  58. double ldexp(double,int);
  59. double frexp(double,int *);
  60. double fmod(double,double);
  61.  
  62. #endif
  63.  
  64.