function createBenchmark( fcn, size, N ) {
	var strides;
	var buffer;
	var shape;
	var x;

	buffer = new Float64Array( size );
	shape = [ N, N ];
	strides = [ N, 1 ];
	x = ndarray( 'float64', buffer, shape, strides, 0, 'row-major' );

	return benchmark;

	/**
	* Benchmark function.
	*
	* @private
	* @param {Benchmark} b - benchmark instance
	*/
	function benchmark( b ) {
		var bool;
		var n;
		var i;
		var j;

		// Compute the index of the last checked element...
		n = floor( N/2.0 );
		if ( isOdd( N ) ) {
			j = ( n*N ) + n - 1;
		} else {
			j = n * N;
		}

		b.tic();
		for ( i = 0; i < b.iterations; i++ ) {
			// Note: we are testing the worst case scenario where a function must scan the entire matrix before finding a failing value.
			buffer[ j ] = i + 3.14;
			bool = fcn( x );
			if ( bool !== false ) {
				b.fail( 'should return false' );
			}
		}
		b.toc();
		if ( !isBoolean( bool ) ) {
			b.fail( 'should return a boolean' );
		}
		b.pass( 'benchmark finished' );
		b.end();
	}
}
Creates a benchmark function.

@private
@param {Function} fcn - function to benchmark
@param {PositiveInteger} size - matrix size
@param {PositiveInteger} N - matrix order
@returns {Function} benchmark function