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