130 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // 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();
 | |
| } |