using Microsoft.Xna.Framework; namespace MatrixMultiplyCS { class Program { static void Main(string[] args) { Matrix mW = Matrix.Identity; Matrix mV = Matrix.Identity; Matrix mP = Matrix.Identity; Matrix mWVP; for (int i = 0; i < 10000000; i++) { mWVP.M11 = (((mW.M11 * mV.M11) + (mW.M12 * mV.M21)) + (mW.M13 * mV.M31)) + (mW.M14 * mV.M41); mWVP.M12 = (((mW.M11 * mV.M12) + (mW.M12 * mV.M22)) + (mW.M13 * mV.M32)) + (mW.M14 * mV.M42); mWVP.M13 = (((mW.M11 * mV.M13) + (mW.M12 * mV.M23)) + (mW.M13 * mV.M33)) + (mW.M14 * mV.M43); mWVP.M14 = (((mW.M11 * mV.M14) + (mW.M12 * mV.M24)) + (mW.M13 * mV.M34)) + (mW.M14 * mV.M44); mWVP.M21 = (((mW.M21 * mV.M11) + (mW.M22 * mV.M21)) + (mW.M23 * mV.M31)) + (mW.M24 * mV.M41); mWVP.M22 = (((mW.M21 * mV.M12) + (mW.M22 * mV.M22)) + (mW.M23 * mV.M32)) + (mW.M24 * mV.M42); mWVP.M23 = (((mW.M21 * mV.M13) + (mW.M22 * mV.M23)) + (mW.M23 * mV.M33)) + (mW.M24 * mV.M43); mWVP.M24 = (((mW.M21 * mV.M14) + (mW.M22 * mV.M24)) + (mW.M23 * mV.M34)) + (mW.M24 * mV.M44); mWVP.M31 = (((mW.M31 * mV.M11) + (mW.M32 * mV.M21)) + (mW.M33 * mV.M31)) + (mW.M34 * mV.M41); mWVP.M32 = (((mW.M31 * mV.M12) + (mW.M32 * mV.M22)) + (mW.M33 * mV.M32)) + (mW.M34 * mV.M42); mWVP.M33 = (((mW.M31 * mV.M13) + (mW.M32 * mV.M23)) + (mW.M33 * mV.M33)) + (mW.M34 * mV.M43); mWVP.M34 = (((mW.M31 * mV.M14) + (mW.M32 * mV.M24)) + (mW.M33 * mV.M34)) + (mW.M34 * mV.M44); mWVP.M41 = (((mW.M41 * mV.M11) + (mW.M42 * mV.M21)) + (mW.M43 * mV.M31)) + (mW.M44 * mV.M41); mWVP.M42 = (((mW.M41 * mV.M12) + (mW.M42 * mV.M22)) + (mW.M43 * mV.M32)) + (mW.M44 * mV.M42); mWVP.M43 = (((mW.M41 * mV.M13) + (mW.M42 * mV.M23)) + (mW.M43 * mV.M33)) + (mW.M44 * mV.M43); mWVP.M44 = (((mW.M41 * mV.M14) + (mW.M42 * mV.M24)) + (mW.M43 * mV.M34)) + (mW.M44 * mV.M44); mWVP.M11 = (((mWVP.M11 * mP.M11) + (mWVP.M12 * mP.M21)) + (mWVP.M13 * mP.M31)) + (mWVP.M14 * mP.M41); mWVP.M12 = (((mWVP.M11 * mP.M12) + (mWVP.M12 * mP.M22)) + (mWVP.M13 * mP.M32)) + (mWVP.M14 * mP.M42); mWVP.M13 = (((mWVP.M11 * mP.M13) + (mWVP.M12 * mP.M23)) + (mWVP.M13 * mP.M33)) + (mWVP.M14 * mP.M43); mWVP.M14 = (((mWVP.M11 * mP.M14) + (mWVP.M12 * mP.M24)) + (mWVP.M13 * mP.M34)) + (mWVP.M14 * mP.M44); mWVP.M21 = (((mWVP.M21 * mP.M11) + (mWVP.M22 * mP.M21)) + (mWVP.M23 * mP.M31)) + (mWVP.M24 * mP.M41); mWVP.M22 = (((mWVP.M21 * mP.M12) + (mWVP.M22 * mP.M22)) + (mWVP.M23 * mP.M32)) + (mWVP.M24 * mP.M42); mWVP.M23 = (((mWVP.M21 * mP.M13) + (mWVP.M22 * mP.M23)) + (mWVP.M23 * mP.M33)) + (mWVP.M24 * mP.M43); mWVP.M24 = (((mWVP.M21 * mP.M14) + (mWVP.M22 * mP.M24)) + (mWVP.M23 * mP.M34)) + (mWVP.M24 * mP.M44); mWVP.M31 = (((mWVP.M31 * mP.M11) + (mWVP.M32 * mP.M21)) + (mWVP.M33 * mP.M31)) + (mWVP.M34 * mP.M41); mWVP.M32 = (((mWVP.M31 * mP.M12) + (mWVP.M32 * mP.M22)) + (mWVP.M33 * mP.M32)) + (mWVP.M34 * mP.M42); mWVP.M33 = (((mWVP.M31 * mP.M13) + (mWVP.M32 * mP.M23)) + (mWVP.M33 * mP.M33)) + (mWVP.M34 * mP.M43); mWVP.M34 = (((mWVP.M31 * mP.M14) + (mWVP.M32 * mP.M24)) + (mWVP.M33 * mP.M34)) + (mWVP.M34 * mP.M44); mWVP.M41 = (((mWVP.M41 * mP.M11) + (mWVP.M42 * mP.M21)) + (mWVP.M43 * mP.M31)) + (mWVP.M44 * mP.M41); mWVP.M42 = (((mWVP.M41 * mP.M12) + (mWVP.M42 * mP.M22)) + (mWVP.M43 * mP.M32)) + (mWVP.M44 * mP.M42); mWVP.M43 = (((mWVP.M41 * mP.M13) + (mWVP.M42 * mP.M23)) + (mWVP.M43 * mP.M33)) + (mWVP.M44 * mP.M43); mWVP.M44 = (((mWVP.M41 * mP.M14) + (mWVP.M42 * mP.M24)) + (mWVP.M43 * mP.M34)) + (mWVP.M44 * mP.M44); } } } }