예제 #1
0
        public MatrixMethod MatrixMultiplication(MatrixMethod matrixB)
        {
            if (size != matrixB.size)
            {
                MessageBox.Show("Неверное кол-во сток в матрицах!");
                return(null);
            }


            Normal matrixC = new Normal(size, false);

            matrixC.StopWatchReset();
            matrixC.sw.Start();
            for (var i = 0; i < size; i++)
            {
                for (var j = 0; j < size; j++)
                {
                    matrixC.Fulldata[i, j] = 0;

                    for (var k = 0; k < size; k++)
                    {
                        matrixC.Fulldata[i, j] += this.ReadFromMatrix(i, k) * matrixB.ReadFromMatrix(k, j);
                    }
                }
            }
            matrixC.sw.Stop();
            return(matrixC);
        }
예제 #2
0
        public virtual MatrixMethod Subtract(MatrixMethod matrixB)
        {
            if (size != matrixB.size)
            {
                MessageBox.Show("Неверное кол-во сток в матрицах!");
                return(null);
            }

            sw.Start();
            Normal matrixC = new Normal(size, false);

            matrixC.StopWatchReset();
            for (var i = 0; i < size; i++)
            {
                for (var j = 0; j < size; j++)
                {
                    matrixC.Fulldata[i, j] = this.ReadFromMatrix(i, j) - matrixB.ReadFromMatrix(i, j);
                }
            }
            sw.Stop();
            return(matrixC);
        }