diff --git a/src/Data.Matlab/Formatter.cs b/src/Data.Matlab/Formatter.cs index 442c658e..22db8ed7 100644 --- a/src/Data.Matlab/Formatter.cs +++ b/src/Data.Matlab/Formatter.cs @@ -105,17 +105,17 @@ namespace MathNet.Numerics.Data.Matlab { if (matrix == null) { - throw new ArgumentNullException("matrix"); + throw new ArgumentNullException(nameof(matrix)); } if (string.IsNullOrEmpty(name)) { - throw new ArgumentException("String parameter cannot be empty or null.", "name"); + throw new ArgumentException("String parameter cannot be empty or null.", nameof(name)); } if (name.IndexOf(' ') > -1) { - throw new ArgumentException(string.Format("Name cannot contain a space.name: {0}", name), "name"); + throw new ArgumentException($"Name cannot contain a space.name: {name}", nameof(name)); } var dataType = typeof(T); @@ -167,7 +167,7 @@ namespace MathNet.Numerics.Data.Matlab writer.Write((byte)(sparse ? ArrayClass.Sparse : doublePrecision ? ArrayClass.Double : ArrayClass.Single)); writer.Write((byte)(complex ? ArrayFlags.Complex : 0)); writer.Write((short)0); - writer.Write((int)sparseNonZeroValues); + writer.Write(sparseNonZeroValues); // Dimensions Array tag: data type + size (8 bytes) writer.Write((int)DataType.Int32); @@ -178,11 +178,10 @@ namespace MathNet.Numerics.Data.Matlab writer.Write(matrix.ColumnCount); // Array Name: - bool smallBlock; var nameBytes = Encoding.ASCII.GetBytes(name); - WriteElementTag(writer, DataType.Int8, nameBytes.Length, out smallBlock); + WriteElementTag(writer, DataType.Int8, nameBytes.Length, out var isSmallBlock); writer.Write(nameBytes); - PadElement(writer, nameBytes.Length, smallBlock); + PadElement(writer, nameBytes.Length, isSmallBlock); if (sparse) { @@ -203,9 +202,8 @@ namespace MathNet.Numerics.Data.Matlab { int count = matrix.RowCount*matrix.ColumnCount; - bool smallBlock; int size = doublePrecision ? count*8 : count*4; - WriteElementTag(writer, doublePrecision ? DataType.Double : DataType.Single, size, out smallBlock); + WriteElementTag(writer, doublePrecision ? DataType.Double : DataType.Single, size, out var isSmallBlock); var data = ((DenseColumnMajorMatrixStorage)matrix.Storage).Data; @@ -219,14 +217,14 @@ namespace MathNet.Numerics.Data.Matlab } else if (doublePrecision) { - WriteComplexArray(writer, (Complex[])(object)data, data.Length, size, ref smallBlock); + WriteComplexArray(writer, (Complex[])(object)data, data.Length, size, ref isSmallBlock); } else { - WriteComplex32Array(writer, (Complex32[])(object)data, data.Length, size, ref smallBlock); + WriteComplex32Array(writer, (Complex32[])(object)data, data.Length, size, ref isSmallBlock); } - PadElement(writer, size, smallBlock); + PadElement(writer, size, isSmallBlock); } static void WriteSparseMatrix(BinaryWriter writer, Matrix matrix, bool complex, bool doublePrecision) @@ -235,32 +233,31 @@ namespace MathNet.Numerics.Data.Matlab var transposed = matrix.Transpose(); var storage = (SparseCompressedRowMatrixStorage)transposed.Storage; - bool smallBlock; int nzcount = storage.ValueCount; // row data array var ir = storage.ColumnIndices; - WriteElementTag(writer, DataType.Int32, nzcount*4, out smallBlock); + WriteElementTag(writer, DataType.Int32, nzcount*4, out var isSmallBlock); for (var i = 0; i < nzcount; i++) { writer.Write(ir[i]); } - PadElement(writer, nzcount*4, smallBlock); + PadElement(writer, nzcount*4, isSmallBlock); // column data array var jc = storage.RowPointers; - WriteElementTag(writer, DataType.Int32, jc.Length*4, out smallBlock); + WriteElementTag(writer, DataType.Int32, jc.Length*4, out isSmallBlock); for (var i = 0; i < jc.Length; i++) { writer.Write(jc[i]); } - PadElement(writer, jc.Length*4, smallBlock); + PadElement(writer, jc.Length*4, isSmallBlock); // values int size = doublePrecision ? nzcount*8 : nzcount*4; - WriteElementTag(writer, doublePrecision ? DataType.Double : DataType.Single, size, out smallBlock); + WriteElementTag(writer, doublePrecision ? DataType.Double : DataType.Single, size, out isSmallBlock); if (doublePrecision && !complex) { @@ -272,14 +269,14 @@ namespace MathNet.Numerics.Data.Matlab } else if (doublePrecision) { - WriteComplexArray(writer, (Complex[])(object)storage.Values, nzcount, size, ref smallBlock); + WriteComplexArray(writer, (Complex[])(object)storage.Values, nzcount, size, ref isSmallBlock); } else { - WriteComplex32Array(writer, (Complex32[])(object)storage.Values, nzcount, size, ref smallBlock); + WriteComplex32Array(writer, (Complex32[])(object)storage.Values, nzcount, size, ref isSmallBlock); } - PadElement(writer, size, smallBlock); + PadElement(writer, size, isSmallBlock); } static void WriteDoubleArray(BinaryWriter writer, double[] data, int count) @@ -348,7 +345,7 @@ namespace MathNet.Numerics.Data.Matlab } } - static void PadElement(BinaryWriter writer, int size, bool smallBlock, byte padValue = (byte)0) + static void PadElement(BinaryWriter writer, int size, bool smallBlock, byte padValue = 0) { var blockSize = smallBlock ? SmallBlockSize : LargeBlockSize; var offset = 0; @@ -364,7 +361,7 @@ namespace MathNet.Numerics.Data.Matlab } } - static void Pad(BinaryWriter writer, int count, byte padValue = (byte)0) + static void Pad(BinaryWriter writer, int count, byte padValue = 0) { for (var i = 0; i < count; i++) { diff --git a/src/Data.Matlab/Parser.cs b/src/Data.Matlab/Parser.cs index 21945cda..b32f7270 100644 --- a/src/Data.Matlab/Parser.cs +++ b/src/Data.Matlab/Parser.cs @@ -89,10 +89,7 @@ namespace MathNet.Numerics.Data.Matlab // small format: size (2 bytes), type (2 bytes), data (4 bytes) // long format: type (4 bytes), size (4 bytes), data (size, aligned to 8 bytes) - DataType type; - int size; - bool smallBlock; - ReadElementTag(reader, out type, out size, out smallBlock); + ReadElementTag(reader, out var type, out var size, out var isSmallBlock); // read element data of the size provided in the element header // uncompress if compressed @@ -105,7 +102,7 @@ namespace MathNet.Numerics.Data.Matlab { data = new byte[size]; reader.Read(data, 0, size); - SkipElementPadding(reader, size, smallBlock); + SkipElementPadding(reader, size, isSmallBlock); } if (type == DataType.Matrix) @@ -169,12 +166,9 @@ namespace MathNet.Numerics.Data.Matlab var columns = reader.ReadInt32(); // Array name - DataType type; - int size; - bool smallBlock; - ReadElementTag(reader, out type, out size, out smallBlock); + ReadElementTag(reader, out _, out var size, out var isSmallBlock); reader.BaseStream.Seek(size, SeekOrigin.Current); - SkipElementPadding(reader, size, smallBlock); + SkipElementPadding(reader, size, isSmallBlock); // Data switch (arrayClass) @@ -209,12 +203,8 @@ namespace MathNet.Numerics.Data.Matlab var count = rows*columns; var data = new T[count]; - DataType type; - int size; - bool smallBlock; - // read real part array - ReadElementTag(reader, out type, out size, out smallBlock); + ReadElementTag(reader, out var type, out var size, out var isSmallBlock); // direct copy if possible if ((type == DataType.Double && dataType == typeof(double)) || (type == DataType.Single && dataType == typeof(float))) @@ -241,18 +231,18 @@ namespace MathNet.Numerics.Data.Matlab } else if (dataType == typeof(Complex)) { - PopulateComplexArray(reader, (Complex[])(object)data, complex, type, ref size, ref smallBlock); + PopulateComplexArray(reader, (Complex[])(object)data, complex, type, ref size, ref isSmallBlock); } else if (dataType == typeof(Complex32)) { - PopulateComplex32Array(reader, (Complex32[])(object)data, complex, type, ref size, ref smallBlock); + PopulateComplex32Array(reader, (Complex32[])(object)data, complex, type, ref size, ref isSmallBlock); } else { throw new NotSupportedException(); } - SkipElementPadding(reader, size, smallBlock); + SkipElementPadding(reader, size, isSmallBlock); return Matrix.Build.Dense(rows, columns, data); } @@ -273,22 +263,18 @@ namespace MathNet.Numerics.Data.Matlab // MATLAB sparse matrices are actually stored as CSC, so just read the data and then transpose. var storage = matrix.Storage as SparseCompressedRowMatrixStorage; - DataType type; - int size; - bool smallBlock; - // populate the row data array - ReadElementTag(reader, out type, out size, out smallBlock); + ReadElementTag(reader, out var type, out var size, out var isSmallBlock); var ir = storage.ColumnIndices = new int[size/4]; for (var i = 0; i < ir.Length; i++) { ir[i] = reader.ReadInt32(); } - SkipElementPadding(reader, size, smallBlock); + SkipElementPadding(reader, size, isSmallBlock); // populate the column data array - ReadElementTag(reader, out type, out size, out smallBlock); + ReadElementTag(reader, out type, out size, out isSmallBlock); var jc = storage.RowPointers; if (jc.Length != size/4) { @@ -300,10 +286,10 @@ namespace MathNet.Numerics.Data.Matlab jc[j] = reader.ReadInt32(); } - SkipElementPadding(reader, size, smallBlock); + SkipElementPadding(reader, size, isSmallBlock); // populate the values - ReadElementTag(reader, out type, out size, out smallBlock); + ReadElementTag(reader, out type, out size, out isSmallBlock); var dataType = typeof(T); var data = storage.Values = new T[jc[columns]]; @@ -327,18 +313,18 @@ namespace MathNet.Numerics.Data.Matlab } else if (dataType == typeof(Complex)) { - PopulateComplexArray(reader, (Complex[])(object)data, complex, type, ref size, ref smallBlock); + PopulateComplexArray(reader, (Complex[])(object)data, complex, type, ref size, ref isSmallBlock); } else if (dataType == typeof(Complex32)) { - PopulateComplex32Array(reader, (Complex32[])(object)data, complex, type, ref size, ref smallBlock); + PopulateComplex32Array(reader, (Complex32[])(object)data, complex, type, ref size, ref isSmallBlock); } else { throw new NotSupportedException(); } - SkipElementPadding(reader, size, smallBlock); + SkipElementPadding(reader, size, isSmallBlock); return matrix.Transpose(); } diff --git a/src/Data.Text/DelimitedWriter.cs b/src/Data.Text/DelimitedWriter.cs index 1a6cae0f..815b3f8c 100644 --- a/src/Data.Text/DelimitedWriter.cs +++ b/src/Data.Text/DelimitedWriter.cs @@ -59,12 +59,12 @@ namespace MathNet.Numerics.Data.Text { if (matrix == null) { - throw new ArgumentNullException("matrix"); + throw new ArgumentNullException(nameof(matrix)); } if (writer == null) { - throw new ArgumentNullException("writer"); + throw new ArgumentNullException(nameof(writer)); } if (columnHeaders != null && columnHeaders.Count > 0) diff --git a/src/Data.Text/MatrixMarketReader.cs b/src/Data.Text/MatrixMarketReader.cs index d3e250c4..d11111e4 100644 --- a/src/Data.Text/MatrixMarketReader.cs +++ b/src/Data.Text/MatrixMarketReader.cs @@ -123,9 +123,7 @@ namespace MathNet.Numerics.Data.Text public static Matrix ReadMatrix(TextReader reader) where T : struct, IEquatable, IFormattable { - bool complex, sparse; - MatrixMarketSymmetry symmetry; - ExpectHeader(reader, true, out complex, out sparse, out symmetry); + ExpectHeader(reader, true, out var complex, out var sparse, out var symmetry); var parse = CreateValueParser(complex); @@ -200,9 +198,7 @@ namespace MathNet.Numerics.Data.Text public static Vector ReadVector(TextReader reader) where T : struct, IEquatable, IFormattable { - bool complex, sparse; - MatrixMarketSymmetry symmetry; - ExpectHeader(reader, false, out complex, out sparse, out symmetry); + ExpectHeader(reader, false, out var complex, out var sparse, out _); var parse = CreateValueParser(complex);