コード例 #1
0
ファイル: Builder.cs プロジェクト: PurpleGray/matrix-solver
        public override Matrix <int> CopyOf(Matrix <int> matrix)
        {
            var dataContainer = MatrixDataContainer.OfSize(matrix.RowCount, matrix.ColumnCount);

            matrix.Storage.CopyTo(dataContainer);
            return(new Matrix(dataContainer));
        }
コード例 #2
0
ファイル: Builder.cs プロジェクト: PurpleGray/matrix-solver
        /// <summary>
        /// Creates matrix from specially formatted string
        /// </summary>
        /// <param name="rawString">Example: 3 4 5\r\n2 1 4\r\n4 9 3</param>
        /// <returns>Matrix</returns>
        public override Matrix <int> FromFormattedString(string rawString)
        {
            // Delimit string by rows
            var strRows = rawString.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
            // Get matrix sizes
            var rowCount = strRows.Length;
            var colCount = strRows[0].Trim().Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries).Length;

            var matrixContainer = MatrixDataContainer.OfSize(rowCount, colCount);

            // Fill the matrix storage
            for (var i = 0; i < strRows.Length; i++)
            {
                // Get column values
                var columnValues =
                    strRows[i].Trim().Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);

                // Fill row
                for (var j = 0; j < columnValues.Length; j++)
                {
                    matrixContainer.SetAt(i, j, int.Parse(columnValues[j]));
                }
            }

            return(new Matrix(matrixContainer));
        }
コード例 #3
0
ファイル: Builder.cs プロジェクト: PurpleGray/matrix-solver
        public override Matrix <int> Random(int rowCount, int columnCount, int minVal = 0, int maxVal = 500)
        {
            var dataContainer = MatrixDataContainer.OfSize(rowCount, columnCount);

            for (var i = 0; i < rowCount; i++)
            {
                for (var j = 0; j < columnCount; j++)
                {
                    dataContainer.SetAt(i, j, RandomGenerator.Next(minVal, maxVal));
                }
            }

            return(new Matrix(dataContainer));
        }
コード例 #4
0
ファイル: Builder.cs プロジェクト: PurpleGray/matrix-solver
 public override Matrix <int> SameAs(Matrix <int> matrix)
 {
     return(new Matrix(MatrixDataContainer.OfSize(matrix.RowCount, matrix.ColumnCount)));
 }
コード例 #5
0
ファイル: Builder.cs プロジェクト: PurpleGray/matrix-solver
 public override Matrix <int> FromDimensions(int rowCount, int columnCount)
 {
     return(new Matrix(MatrixDataContainer.OfSize(rowCount, columnCount)));
 }
コード例 #6
0
ファイル: Builder.cs プロジェクト: PurpleGray/matrix-solver
 public override Matrix <int> FromArray(int[,] arr)
 {
     return(new Matrix(MatrixDataContainer.OfArray(arr)));
 }
コード例 #7
0
ファイル: Matrix.cs プロジェクト: PurpleGray/matrix-solver
 public Matrix(MatrixDataContainer <int> storage) : base(storage)
 {
 }