| // Generated by LiveScript 1.6.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(); | |
| }
 |