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 | } |
---|