function CompactAdjacencyMatrix( N ) {
	if ( !( this instanceof CompactAdjacencyMatrix ) ) {
		return new CompactAdjacencyMatrix( N );
	}
	if ( !isNonNegativeInteger( N ) ) {
		throw new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', N ) );
	}
	this._N = N; // number of vertices
	this._M = 0; // number of edges
	this._buffer = new Int32Array( ceil( N*N/NBITS ) ); // square matrix
	return this;
}
Compact adjacency matrix constructor.

@constructor
@param {NonNegativeInteger} N - number of vertices
@throws {TypeError} must provide a nonnegative integer
@returns {CompactAdjacencyMatrix} adjacency matrix instance

@example
var adj = new CompactAdjacencyMatrix( 4 );
// returns <CompactAdjacencyMatrix>

adj.addEdge( 0, 1 );
adj.addEdge( 0, 2 );
adj.addEdge( 1, 2 );
adj.addEdge( 2, 3 );