function rotateY$1(out, a, rad) {
	    var s = Math.sin(rad),
	        c = Math.cos(rad),
	        a00 = a[0],
	        a01 = a[1],
	        a02 = a[2],
	        a03 = a[3],
	        a20 = a[8],
	        a21 = a[9],
	        a22 = a[10],
	        a23 = a[11];

	    if (a !== out) { // If the source and destination differ, copy the unchanged rows
	        out[4]  = a[4];
	        out[5]  = a[5];
	        out[6]  = a[6];
	        out[7]  = a[7];
	        out[12] = a[12];
	        out[13] = a[13];
	        out[14] = a[14];
	        out[15] = a[15];
	    }

	    // Perform axis-specific matrix multiplication
	    out[0] = a00 * c - a20 * s;
	    out[1] = a01 * c - a21 * s;
	    out[2] = a02 * c - a22 * s;
	    out[3] = a03 * c - a23 * s;
	    out[8] = a00 * s + a20 * c;
	    out[9] = a01 * s + a21 * c;
	    out[10] = a02 * s + a22 * c;
	    out[11] = a03 * s + a23 * c;
	    return out;
	}
/**
	 * Rotates a matrix by the given angle around the Y axis not using SIMD
	 *
	 * @param {mat4} out the receiving matrix
	 * @param {mat4} a the matrix to rotate
	 * @param {Number} rad the angle to rotate the matrix by
	 * @returns {mat4} out
	 */
Rotates a matrix by the given angle around the Y axis not using SIMD
@param {mat4} out the receiving matrix
@param {mat4} a the matrix to rotate
@param {Number} rad the angle to rotate the matrix by
@returns {mat4} out
Rotates a matrix by the given angle around the Y axis not using SIMD @param { mat4 } out the receiving matrix @param { mat4 } a the matrix to rotate @param { Number } rad the angle to rotate the matrix by @returns { mat4 } out
function rotateY$1(out, a, rad) {
	    var s = Math.sin(rad),
	        c = Math.cos(rad),
	        a00 = a[0],
	        a01 = a[1],
	        a02 = a[2],
	        a03 = a[3],
	        a20 = a[8],
	        a21 = a[9],
	        a22 = a[10],
	        a23 = a[11];
	    if (a !== out) { 
	        out[4]  = a[4];
	        out[5]  = a[5];
	        out[6]  = a[6];
	        out[7]  = a[7];
	        out[12] = a[12];
	        out[13] = a[13];
	        out[14] = a[14];
	        out[15] = a[15];
	    }
	    out[0] = a00 * c - a20 * s;
	    out[1] = a01 * c - a21 * s;
	    out[2] = a02 * c - a22 * s;
	    out[3] = a03 * c - a23 * s;
	    out[8] = a00 * s + a20 * c;
	    out[9] = a01 * s + a21 * c;
	    out[10] = a02 * s + a22 * c;
	    out[11] = a03 * s + a23 * c;
	    return out;
	}
function rotateY$1 ( out , a , rad ) { var s = Math . sin ( rad ) , c = Math . cos ( rad ) , a00 = a [ 0 ] , a01 = a [ 1 ] , a02 = a [ 2 ] , a03 = a [ 3 ] , a20 = a [ 8 ] , a21 = a [ 9 ] , a22 = a [ 10 ] , a23 = a [ 11 ] ; if ( a !== out ) { out [ 4 ] = a [ 4 ] ; out [ 5 ] = a [ 5 ] ; out [ 6 ] = a [ 6 ] ; out [ 7 ] = a [ 7 ] ; out [ 12 ] = a [ 12 ] ; out [ 13 ] = a [ 13 ] ; out [ 14 ] = a [ 14 ] ; out [ 15 ] = a [ 15 ] ; } out [ 0 ] = a00 * c - a20 * s ; out [ 1 ] = a01 * c - a21 * s ; out [ 2 ] = a02 * c - a22 * s ; out [ 3 ] = a03 * c - a23 * s ; out [ 8 ] = a00 * s + a20 * c ; out [ 9 ] = a01 * s + a21 * c ; out [ 10 ] = a02 * s + a22 * c ; out [ 11 ] = a03 * s + a23 * c ; return out ; }
Rotates a matrix by the given angle around the Y axis not using SIMD
 @param {mat4} out the receiving matrix
 @param {mat4} a the matrix to rotate
 @param {Number} rad the angle to rotate the matrix by
 @returns {mat4} out
Rotates a matrix by the given angle around the Y axis not using SIMD @param { mat4 } out the receiving matrix @param { mat4 } a the matrix to rotate @param { Number } rad the angle to rotate the matrix by @returns { mat4 } out
// If the source and destination differ, copy the unchanged rows // Perform axis-specific matrix multiplication