function mpow( A, eA, n ) {
		var eB;
		var B;
		var i;

		if ( n === 1 ) {
			for ( i = 0; i < m*m; i++ ) {
				Q[ i ] = A[ i ];
				eQ = eA;
			}
			return;
		}
		mpow( A, eA, floor( n/2 ) );
		B = mmult( Q, Q );
		eB = 2 * eQ;
		if ( n % 2 === 0 ) {
			for ( i = 0; i < m*m; i++ ) {
				Q[ i ] = B[ i ];
			}
			eQ = eB;
		} else {
			Q = mmult( A, B );
			eQ = eA + eB;
		}
		if ( Q[ (floor(m/2) * m) + floor(m/2) ] > 1e140 ) {
			for ( i = 0; i < m*m; i++ ) {
				Q[ i ] *= 1e-140;
			}
			eQ += 140;
		}
	}
Matrix exponentiation. Mutates Q matrix.

@private
@param {Float64Array} A - input matrix
@param {number} eA - matrix power
@param {number} n - number of variates