function createBenchmark2( shapeA, shapeB, shapeC ) {
	var abuf;
	var bbuf;
	var cbuf;
	var A;
	var B;
	var C;

	abuf = filled2dBy( shapeA, randi( 0, 10 ) );
	bbuf = filled2dBy( shapeB, randi( 0, 10 ) );
	cbuf = filled2dBy( shapeC, randi( 0, 10 ) );

	A = mathjs.matrix( abuf );
	B = mathjs.matrix( bbuf );
	C = mathjs.matrix( cbuf );

	return benchmark;

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

		b.tic();
		for ( i = 0; i < b.iterations; i++ ) {
			out = mathjs.add( mathjs.multiply( A, B ), C );
			if ( isnan( out.get( [ i%shapeC[0], i%shapeC[1] ] ) ) ) {
				b.fail( 'should not return NaN' );
			}
		}
		b.toc();
		if ( isnan( out.get( [ i%shapeC[0], i%shapeC[1] ] ) ) ) {
			b.fail( 'should not return NaN' );
		}
		b.pass( 'benchmark finished' );
		b.end();
	}
}
Creates a benchmark function.

@private
@param {PositiveIntegerArray} shapeA - shape of the first array
@param {PositiveIntegerArray} shapeB - shape of the second array
@param {PositiveIntegerArray} shapeC - shape of the third array
@returns {Function} benchmark function