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