_math.c 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #include <math.h>
  2. #include "_math.h"
  3. #define PI (3.141592653589793115997963468544185161590576171875l)
  4. #define E (2.718281828459045090795598298427648842334747314453125l)
  5. void _math___init__(PikaObj* self) {
  6. obj_setFloat(self, "pi", PI);
  7. obj_setFloat(self, "e", E);
  8. }
  9. pika_float _math_acos(PikaObj* self, pika_float x) {
  10. return acos(x);
  11. }
  12. pika_float _math_asin(PikaObj* self, pika_float x) {
  13. return asin(x);
  14. }
  15. pika_float _math_atan(PikaObj* self, pika_float x) {
  16. return atan(x);
  17. }
  18. pika_float _math_atan2(PikaObj* self, pika_float x, pika_float y) {
  19. return atan2(x, y);
  20. }
  21. int _math_ceil(PikaObj* self, pika_float x) {
  22. return ceil(x);
  23. }
  24. pika_float _math_cos(PikaObj* self, pika_float x) {
  25. return cos(x);
  26. }
  27. pika_float _math_cosh(PikaObj* self, pika_float x) {
  28. return cosh(x);
  29. }
  30. pika_float _math_degrees(PikaObj* self, pika_float x) {
  31. return x * 180.0 / PI;
  32. }
  33. pika_float _math_exp(PikaObj* self, pika_float x) {
  34. return exp(x);
  35. }
  36. pika_float _math_fabs(PikaObj* self, pika_float x) {
  37. return fabs(x);
  38. }
  39. int _math_floor(PikaObj* self, pika_float x) {
  40. return floor(x);
  41. }
  42. pika_float _math_fmod(PikaObj* self, pika_float x, pika_float y) {
  43. return fmod(x, y);
  44. }
  45. pika_float _math_log(PikaObj* self, pika_float x) {
  46. return log(x);
  47. }
  48. pika_float _math_log10(PikaObj* self, pika_float x) {
  49. return log10(x);
  50. }
  51. pika_float _math_log2(PikaObj* self, pika_float x) {
  52. return log2(x);
  53. }
  54. pika_float _math_pow(PikaObj* self, pika_float x, pika_float y) {
  55. return pow(x, y);
  56. }
  57. pika_float _math_radians(PikaObj* self, pika_float x) {
  58. return x * PI / 180.0;
  59. }
  60. pika_float _math_remainder(PikaObj* self, pika_float x, pika_float y) {
  61. return remainder(x, y);
  62. }
  63. pika_float _math_sin(PikaObj* self, pika_float x) {
  64. return sin(x);
  65. }
  66. pika_float _math_sinh(PikaObj* self, pika_float x) {
  67. return sinh(x);
  68. }
  69. pika_float _math_sqrt(PikaObj* self, pika_float x) {
  70. return sqrt(x);
  71. }
  72. pika_float _math_tan(PikaObj* self, pika_float x) {
  73. return tan(x);
  74. }
  75. pika_float _math_tanh(PikaObj* self, pika_float x) {
  76. return tanh(x);
  77. }
  78. pika_float _math_trunc(PikaObj* self, pika_float x) {
  79. return trunc(x);
  80. }