25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

129 satır
2.4 KiB

4 yıl önce
  1. // Generated by LiveScript 1.6.0
  2. var max, min, negate, abs, signum, quot, rem, div, mod, recip, pi, tau, exp, sqrt, ln, pow, sin, tan, cos, asin, acos, atan, atan2, truncate, round, ceiling, floor, isItNaN, even, odd, gcd, lcm;
  3. max = curry$(function(x$, y$){
  4. return x$ > y$ ? x$ : y$;
  5. });
  6. min = curry$(function(x$, y$){
  7. return x$ < y$ ? x$ : y$;
  8. });
  9. negate = function(x){
  10. return -x;
  11. };
  12. abs = Math.abs;
  13. signum = function(x){
  14. if (x < 0) {
  15. return -1;
  16. } else if (x > 0) {
  17. return 1;
  18. } else {
  19. return 0;
  20. }
  21. };
  22. quot = curry$(function(x, y){
  23. return ~~(x / y);
  24. });
  25. rem = curry$(function(x$, y$){
  26. return x$ % y$;
  27. });
  28. div = curry$(function(x, y){
  29. return Math.floor(x / y);
  30. });
  31. mod = curry$(function(x$, y$){
  32. var ref$;
  33. return ((x$) % (ref$ = y$) + ref$) % ref$;
  34. });
  35. recip = (function(it){
  36. return 1 / it;
  37. });
  38. pi = Math.PI;
  39. tau = pi * 2;
  40. exp = Math.exp;
  41. sqrt = Math.sqrt;
  42. ln = Math.log;
  43. pow = curry$(function(x$, y$){
  44. return Math.pow(x$, y$);
  45. });
  46. sin = Math.sin;
  47. tan = Math.tan;
  48. cos = Math.cos;
  49. asin = Math.asin;
  50. acos = Math.acos;
  51. atan = Math.atan;
  52. atan2 = curry$(function(x, y){
  53. return Math.atan2(x, y);
  54. });
  55. truncate = function(x){
  56. return ~~x;
  57. };
  58. round = Math.round;
  59. ceiling = Math.ceil;
  60. floor = Math.floor;
  61. isItNaN = function(x){
  62. return x !== x;
  63. };
  64. even = function(x){
  65. return x % 2 === 0;
  66. };
  67. odd = function(x){
  68. return x % 2 !== 0;
  69. };
  70. gcd = curry$(function(x, y){
  71. var z;
  72. x = Math.abs(x);
  73. y = Math.abs(y);
  74. while (y !== 0) {
  75. z = x % y;
  76. x = y;
  77. y = z;
  78. }
  79. return x;
  80. });
  81. lcm = curry$(function(x, y){
  82. return Math.abs(Math.floor(x / gcd(x, y) * y));
  83. });
  84. module.exports = {
  85. max: max,
  86. min: min,
  87. negate: negate,
  88. abs: abs,
  89. signum: signum,
  90. quot: quot,
  91. rem: rem,
  92. div: div,
  93. mod: mod,
  94. recip: recip,
  95. pi: pi,
  96. tau: tau,
  97. exp: exp,
  98. sqrt: sqrt,
  99. ln: ln,
  100. pow: pow,
  101. sin: sin,
  102. tan: tan,
  103. cos: cos,
  104. acos: acos,
  105. asin: asin,
  106. atan: atan,
  107. atan2: atan2,
  108. truncate: truncate,
  109. round: round,
  110. ceiling: ceiling,
  111. floor: floor,
  112. isItNaN: isItNaN,
  113. even: even,
  114. odd: odd,
  115. gcd: gcd,
  116. lcm: lcm
  117. };
  118. function curry$(f, bound){
  119. var context,
  120. _curry = function(args) {
  121. return f.length > 1 ? function(){
  122. var params = args ? args.concat() : [];
  123. context = bound ? context || this : this;
  124. return params.push.apply(params, arguments) <
  125. f.length && arguments.length ?
  126. _curry.call(context, params) : f.apply(context, params);
  127. } : f;
  128. };
  129. return _curry();
  130. }