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); }
public override MatrixMethod Subtract(MatrixMethod matrix) { if (matrix.GetType() != typeof(Triangle)) { base.Add(matrix); } Triangle triangle = new Triangle(size, UsePointers); triangle.StopWatchReset(); triangle.sw.Start(); for (int i = 0; i < data.Length; i++) { triangle.data[i] = data[i] - matrix.data[i]; } triangle.sw.Stop(); return(triangle); }
public override MatrixMethod Add(MatrixMethod matrix) { if (matrix.GetType() != typeof(Block)) { base.Add(matrix); } Block triangle = new Block(size, UsePointers); triangle.StopWatchReset(); triangle.sw.Start(); for (int i = 0; i < data.Length; i++) { triangle.data[i] = data[i] + matrix.data[i]; } triangle.sw.Stop(); return(triangle); }
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); }