Object.extend(Math,{sum:function(list){var sum=0;for(var i=0,len=list.length;i=0)},isPrime:function(){var sqrtOfThis=Math.sqrt(this);var somePrimes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101];if(!this.isNatural(true)||sqrtOfThis.isInteger()){return false}if(somePrimes.include(this))return true;for(var i=0,len=somePrimes.length;isqrtOfThis){return true}if((this%somePrimes[i]).isNull()){return false}}for(var i=103;i<=sqrtOfThis;i+=2){if((this%i).isNull()){return false}}return true},compute:function(fn){return fn(this)}});Object.extend(Array.prototype,{swap:function(index1,index2){var swap=this[index1];this[index1]=this[index2];this[index2]=swap;return this},shuffle:function(inline,times){var list=(inline!=false?this:this.clone());for(var i=0,len=list.length*(times||4);i=list.length){return list}var sample=[];for(var i=1;i<=items;i++){if(list.length>0){sample.push(list.shift())}else{return sample}}return sample}});Object.extend(Object,{numericValues:function(object){return Object.values(object).select(Object.isNumber)}});