This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// PriorityQueue.js MIT License © 2014 James Abney http://github.com/jabney | |
(function(ex) { | |
'use strict'; | |
// --------------------------------------------------------------- | |
// PriorityQueue Constructor | |
// A heap-based priority queue. | |
// --------------------------------------------------------------- | |
ex.PriorityQueue = function PriorityQueue(compare) { | |
var compare = compare || function(a, b) { return a < b; }, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// shuffle.js © 2014 James Abney http://github.com/jabney | |
(function(ex) { | |
'use strict'; | |
// Export shuffle to 'random' namespace. | |
var random = ex.random || (ex.random = Object.create(null)); | |
// Shuffle an array in place so that the positions of its values are random. | |
random.shuffle = function shuffle(a) { | |
var i, r, tmp, len = a.length; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// setOps.js MIT License © 2014 James Abney http://github.com/jabney | |
// Set operations union, intersection, symmetric difference, | |
// relative complement, equals. Set operations are fast. | |
(function(so) { | |
'use strict'; | |
var uidList = [], uid; | |
// Create and push the uid identity method. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// encode.js MIT License © 2014 James Abney http://github.com/jabney | |
// Encode built-in type as a numeric value. | |
// | |
// typeOf(null); // => 'Null' | |
// typeOf(undefined); // => 'Undefined' | |
// typeOf([]); // => 'Array' | |
// | |
// encodeType(null); // => 1 | |
// encodeType(undefined); // => 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// declare.js MIT License © 2014 James Abney http://github.com/jabney | |
// An experiment with "forward type checking". Register types | |
// using 'declare' along with corresponding methods. The methods | |
// get called depending upon the type of the passed object. | |
// | |
// // Create a new declare object. | |
// var logByType = fwdType.declare(); | |
// | |
// // Register types and methods. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// entropy.js MIT License © 2014 James Abney http://github.com/jabney | |
/*************************************** | |
* ES2015 | |
***************************************/ | |
// Shannon entropy in bits per symbol. | |
function entropy(str) { | |
const len = str.length | |
NewerOlder