[d565449] | 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 | } |
---|