All pastes #794656 Raw Edit

Someone

public text v1 · immutable
#794656 ·published 2007-11-23 10:00 UTC
rendered paste body
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);
            }
        }
    }
}