static float[] MatrixVectorMultiply(float[] mtx, float[] vec) { var ret = new float[4]; for (var j = 0; j < 4; j++) { ret[j] = 0; for (var k = 0; k < 4; k++) ret[j] += mtx[4 * k + j] * vec[k]; } return ret; }