var numbers={};numbers.EPSILON=0.001;var basic={};basic.addition=function(arr){if(Object.prototype.toString.call(arr)==='[object Array]'){var total=0;for(var i=0;i=0;i--){if(typeof(arr[i])==='number') total-=arr[i];else throw new Error('All elements in array must be numbers');} return total;}else{throw new Error('Input must be of type Array');}};basic.product=function(arr){if(Object.prototype.toString.call(arr)==='[object Array]'){var total=arr[0];for(var i=1;i=0&&k===0)return 1;if(n===0&&k>0)return 0;if(arr[n]&&arr[n][k]>0)return arr[n][k];if(!arr[n]) arr[n]=[];return arr[n][k]=_binomial(n-1,k-1)+_binomial(n-1,k);} return _binomial(n,k);};basic.factorial=function(num){var arr=[];function _factorial(n){if(n===0||n===1)return 1;if(arr[n]>0)return arr[n];else return arr[n]=_factorial(n-1)*n;} return _factorial(num);};basic.gcd=function(num1,num2){var result;if(num1>num2){for(var i=0;i<=num2;i++){if(num2%i===0){if(num1%i===0){result=i;}}} return result;}else if(num2>num1){for(var j=0;j<=num2;j++){if(num1%j===0){if(num2%j===0){result=j;}}} return result;}else{result=num1*num2/num1;return result;}};basic.lcm=function(num1,num2){return Math.abs(num1*num2)/basic.gcd(num1,num2);};basic.random=function(arr,quant){if(arr.length<=quant){throw new Error('Quantity requested exceeds size of array');}else if(arr.length===0){throw new Error('Empty array');}else{return basic.shuffle(arr).slice(0,quant);}};basic.shuffle=function(array){var m=array.length,t,i;while(m){i=Math.floor(Math.random()*m--);t=array[m];array[m]=array[i];array[i]=t;} return array;};basic.max=function(array){return Math.max.apply(Math,array);};basic.min=function(array){return Math.min.apply(Math,array);};basic.range=function(start,stop,step){var array,i=0,len;if(arguments.length<=1){stop=start||0;start=0;} step=step||1;if(stopcounts[highest]) highest=number;}} return Number(highest);};statistic.randomSample=function(lower,upper,n){var sample=[];var temp=0;for(var i=0;ilower) sample[i]=temp;} return sample;};statistic.standardDev=function(arr){var count=arr.length;var mean=statistic.mean(arr);var squaredArr=[];for(var i=0;i