if (window.$) { $.fn.int = function(){ return parseInt($(this).val(),10) } $.fn.float = function(){ return parseFloat($(this).val()) } $.fn.string = function(){ return trim($(this).val()) } $.fn.enable = function() { return $(this).attr("disabled",null) } $.fn.disable = function() { return $(this).attr("disabled","disabled") } } function trim(s){ return s.replace(/^\s+/,"").replace(/\s+$/,"") } var E = Math.E var PI = Math.PI var PHI = (1+Math.sqrt(5))/2 function clamp(n,a,b){ return n= a) + 0 // ^^ bool -> int } function julestep (a,b,n) { return clamp((n - a) / (b - a), 0.0, 1.0); } // hermite curve apparently function smoothstep(min,max,n){ var t = clamp((n - min) / (max - min), 0.0, 1.0); return t * t * (3.0 - 2.0 * t) } function shuffle(a){ for (var i = a.length; i > 0; i--){ var r = randint(i) var swap = a[i-1] a[i-1] = a[r] a[r] = swap } return a } function reverse(a){ var reversed = [] for (var i = 0, _len = a.length-1; i <= _len; i++){ reversed[i] = a[_len-i] } return reversed } function deinterlace(a){ var odd = [], even = [] for (var i = 0, _len = a.length; i < _len; i++) { if (i % 2) even.push(a[i]) else odd.push(a[i]) } return [even, odd] } function weave(a){ var aa = deinterlace(a) var b = [] aa[0].forEach(function(el){ b.push(el) }) reverse(aa[1]).forEach(function(el){ b.push(el) }) return b }