| // 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(); | 
 | } |