You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							130 lines
						
					
					
						
							2.4 KiB
						
					
					
				
			
		
		
	
	
							130 lines
						
					
					
						
							2.4 KiB
						
					
					
				// 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();
 | 
						|
} |