2D Graphics C#

using System;
using System.Collections.Generic;
using System.Text;
public class Matrix
{
    public static double[,] Mul(double[,] a, double[,] b)
    {
        if (a.GetLength(1) != b.GetLength(0))
            throw new ArgumentException();
        double[,] reuslt = new double[a.GetLength(0), b.GetLength(1)];
        for (int i = 0; i < a.GetLength(0); i++)
            for (int j = 0; j < b.GetLength(1); j++)
            {
                for (int k = 0; k < a.GetLength(1); k++)
                {
                    reuslt[i, j] += a[i, k] * b[k, j];
                }
            }
        return reuslt;
    }
    public static double[,] MulDiag(double[,] a, double[] b)
    {
        if (a.GetLength(1) != b.GetLength(0))
            throw new ArgumentException();
        double[,] reuslt = new double[a.GetLength(0), b.GetLength(0)];
        for (int i = 0; i < a.GetLength(0); i++)
            for (int j = 0; j < b.GetLength(0); j++)
                reuslt[i, j] = a[i, j] * b[j];
        return reuslt;
    }
}