!function(){var Collection=function(values){"use strict";var collection=Array.isArray(values)?values:Array.prototype.slice.call(arguments);0===Array.prototype.slice.call(arguments).length&&(collection=[]);var result=function(value,callback){return callback?callback(value):value};return Object.defineProperty(collection,"extend",{value:function(methods,callback){for(var method in methods)Object.defineProperty(this,method,{value:methods[method],writable:!0,enumerable:!1});return result(this,callback)},writable:!0,enumerable:!1}),collection.extend({indexOf:function(element,callback){for(var index=-1,i=0;i=i;i++)this[i]===element&&indices.push(i);return result(indices,callback)},indicesBy:function(predicate,callback){var start=0,end=this.length-1,indices=new Collection;if(start===end)indices.push(start);else for(var i=start;end>=i;i++)predicate(this[i])&&indices.push(i);return result(indices,callback)},lastIndexBy:function(predicate,callback){for(var index=-1,i=this.length-1;i>=0;i--)if(predicate(this[i])){index=i;break}return result(index,callback)},find:function(predicate,callback){var results=new Collection,comparator=function(e){return e===!0};if("object"==typeof predicate)for(var i=0;icount?(modes=new Collection(e),count=map[e]):map[e]==count&&(modes.push(e),count=map[e])}return 1===modes.length&&(modes=modes[0]),result(modes,callback)},frequency:function(element,callback){var freq=0;if(-1!==this.indexOf(element)){var buffer=this.copy().sort();freq=buffer.lastIndexOf(element)-buffer.indexOf(element)+1}return result(freq,callback)},distribution:function(format,callback){for(var array=this.copy().sort(),distribution={},i=0;ithis||this>that);return result(equality,callback)},clone:function(callback){var object=Array.isArray(this)?[]:{};for(var i in this)"clone"!==i&&(this[i]&&"object"==typeof this[i]?object[i]=this[i].clone():object[i]=this[i]);return result(object,callback)},copy:function(callback){var copy=new Collection(this.slice());return result(copy,callback)},toArray:function(callback){var array=Array.prototype.slice.call(this);return result(array,callback)},concat:function(){var args=Array.prototype.slice.call(arguments),end=args[args.length-1];return"function"==typeof end?end("number"!=typeof args[0]?new Collection(this.toArray().concat(args[0])):new Collection(this.toArray().concat(args.slice(0,args.length-1)))):new Collection("number"!=typeof args[0]?this.toArray().concat(args[0]):this.toArray().concat(args))},slice:function(begin,end,callback){var args=Array.prototype.slice.call(arguments);return 3===args.length?callback(new Collection(this.toArray().slice(begin,end))):2===args.length?"function"==typeof args[1]?callback(new Collection(this.toArray().slice(begin))):new Collection(this.toArray().slice(begin,end)):new Collection(1===args.length?this.toArray().slice(begin):this.toArray().slice())},split:function(predicate,callback){var split=new Collection;return split.push(this.toArray().filter(function(e){return!predicate(e)})),split.push(this.toArray().filter(predicate)),result(split,callback)},unique:function(callback){for(var array=this.copy().sort(),unique=new Collection,i=0;i0&&(percentile=buffer[Math.floor(this.length*percent)]),result(percentile,callback)},density:function(percent,callback){var slice,buffer=this.copy();if(buffer.sort(asc),1===percent)slice=buffer;else{var begin=Math.round(this.length*(.5-percent/2)-1),end=Math.round(this.length*(.5+percent/2)-1);slice=new Vector(buffer.slice(begin,end))}return result(slice,callback)},quantile:function(quantity,callback){var buffer=this.copy();buffer.sort(asc);var increment=1/quantity,results=new Vector;if(quantity>this.length)throw new RangeError("Subset quantity is greater than the Vector length");for(var i=increment;1>i;i+=increment){var index=Math.round(buffer.length*i)-1;indexb[1]?1:0},byDate:function(a,b){return a[0]b[0]?1:0},times:function(callback){var times=new Vector(Array.prototype.map.call(this,function(i){return i[0]}));return result(times,callback)},values:function(callback){var values=new Vector(Array.prototype.map.call(this,function(i){return i[1]}));return result(values,callback)}}),timeseries.extend({every:Collection.every,append:Collection.append}),timeseries};Array.prototype.toTimeSeries=function(){return new TimeSeries(this)},"undefined"!=typeof window?(window.gauss="undefined"==typeof window.gauss?{}:window.gauss,window.gauss.TimeSeries=TimeSeries):exports=module.exports=TimeSeries}(); !function(gauss){"function"==typeof define&&define.amd&&define("gauss",[],function(){return gauss})}(window.gauss);