home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Exec 5 / CD_Magazyn_EXEC_nr_5.iso / Programy / Programowanie / vbcc07e.lzx / vbcc / amiga68k / include / math.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-11-18  |  2.0 KB  |  57 lines

  1. #ifndef __MATH_H
  2. #define __MATH_H 1
  3.  
  4. #define HUGE_VAL        1e500
  5.  
  6. #if defined(__M68881)||defined(__M68882)
  7. double sqrt(__reg("fp0") double)="\tfsqrt.x\tfp0";
  8. double fabs(__reg("fp0") double)="\tfabs.x\tfp0";
  9. 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";
  10. 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";
  11. #else
  12. double sqrt(double);
  13. double fabs(double);
  14. double floor(double);
  15. double ceil(double);
  16. #endif
  17.  
  18. #if (defined(__M68881)||defined(__M68882)) && !defined(__M68040) && !defined(__M68060)
  19. double acos(__reg("fp0")double)="\tfacos.x\tfp0";
  20. double asin(__reg("fp0")double)="\tfasin.x\tfp0";
  21. double atan(__reg("fp0")double)="\tfatan.x\tfp0";
  22. double cos(__reg("fp0")double)="\tfcos.x\tfp0";
  23. double cosh(__reg("fp0")double)="\tfcosh.x\tfp0";
  24. double exp(__reg("fp0")double)="\tfetox.x\tfp0";
  25. double log(__reg("fp0")double)="\tflogn.x\tfp0";
  26. double log10(__reg("fp0")double)="\tflog10.x\tfp0";
  27. double modf(__reg("fp0")double,__reg("a0") double *)="\tfintrz.x\tfp0,fp1\n\tfmove.d\tfp1,(a0)\n\tfsub.x\tfp1,fp0";
  28. double pow(__reg("fp0")double,__reg("fp1") double)="\tflogn.x\tfp0\n\tfmul.x\tfp1,fp0\n\tfetox.x\tfp0";
  29. double sin(__reg("fp0")double)="\tfsin.x\tfp0";
  30. double sinh(__reg("fp0")double)="\tfsinh.x\tfp0";
  31. double tan(__reg("fp0")double)="\tftan.x\tfp0";
  32. double tanh(__reg("fp0")double)="\tftanh.x\tfp0";
  33. double fmod(__reg("fp0")double,__reg("fp1")double)="\tfmod.x\tfp1,fp0";
  34. #else
  35. double sin(double);
  36. double cos(double);
  37. double tan(double);
  38. double sinh(double);
  39. double cosh(double);
  40. double tanh(double);
  41. double asin(double);
  42. double acos(double);
  43. double atan(double);
  44. double exp(double);
  45. double log(double);
  46. double log10(double);
  47. double pow(double,double);
  48. double modf(double,double *);
  49. double fmod(double,double);
  50. #endif
  51.  
  52. double atan2(double,double);
  53. double ldexp(double,int);
  54. double frexp(double,int *);
  55.  
  56. #endif
  57.