internal DenseDoubleMatrixImplementor( int numberOfRows, int numberOfColumns, double[] data, StorageOrder storageOrder) { Debug.Assert(numberOfRows > 0); Debug.Assert(numberOfColumns > 0); Debug.Assert(data is not null); Debug.Assert( (StorageOrder.ColumnMajor == storageOrder) || (StorageOrder.RowMajor == storageOrder)); int matrixLength = numberOfRows * numberOfColumns; Debug.Assert(data.Length == matrixLength); this.storage = new double[matrixLength]; data.CopyTo(this.storage, 0); if (StorageOrder.RowMajor == storageOrder) { ImplementationServices.ConvertStorageToColMajorOrdered( numberOfRows, numberOfColumns, this.storage); } this.numberOfRows = numberOfRows; this.numberOfColumns = numberOfColumns; this.storageOrder = StorageOrder.ColumnMajor; this.storageScheme = StorageScheme.Dense; }
public void Main() { // Set matrix dimensions. int numberOfRows = 3; int numberOfColumns = 2; // Create the data. var data = new double[6] { 1, 2, 3, 4, 5, 6 }; // Assume the data as RowMajor ordered. StorageOrder storageOrder = StorageOrder.RowMajor; // Create the matrix. var matrix = DoubleMatrix.Dense( numberOfRows, numberOfColumns, data, storageOrder); Console.WriteLine("Assuming RowMajor ordered data."); Console.WriteLine("The data matrix:"); Console.WriteLine(matrix); // Assume the data as ColMajor ordered. storageOrder = StorageOrder.ColumnMajor; // Create the matrix. matrix = DoubleMatrix.Dense( numberOfRows, numberOfColumns, data, storageOrder); Console.WriteLine("Assuming ColMajor ordered data."); Console.WriteLine("The data matrix:"); Console.WriteLine(matrix); }
internal DenseDoubleMatrixImplementor( int numberOfRows, int numberOfColumns, double[] data, bool copyData) { Debug.Assert(numberOfRows > 0); Debug.Assert(numberOfColumns > 0); Debug.Assert(data is not null); int matrixLength = numberOfRows * numberOfColumns; Debug.Assert(data.Length == matrixLength); if (copyData) { this.storage = new double[matrixLength]; data.CopyTo(this.storage, 0); } else { this.storage = data; } this.numberOfRows = numberOfRows; this.numberOfColumns = numberOfColumns; this.storageOrder = StorageOrder.ColumnMajor; this.storageScheme = StorageScheme.Dense; }
internal DenseDoubleMatrixImplementor(double[,] data) { Debug.Assert(data is not null); int numberOfRows = data.GetLength(0); int numberOfColumns = data.GetLength(1); Debug.Assert(numberOfRows > 0); Debug.Assert(numberOfColumns > 0); this.numberOfRows = numberOfRows; this.numberOfColumns = numberOfColumns; this.storageOrder = StorageOrder.ColumnMajor; this.storageScheme = StorageScheme.Dense; this.storage = new double[data.Length]; int offset; int firstDataRow = data.GetLowerBound(0); int dataColumn = data.GetLowerBound(1); for (int j = 0; j < this.numberOfColumns; j++, dataColumn++) { offset = j * this.numberOfRows; int dataRow = firstDataRow; for (int i = 0; i < this.numberOfRows; i++, dataRow++) { this.storage[i + offset] = (double)(data.GetValue(dataRow, dataColumn)); } } }
public void Main() { // Set matrix dimensions. int numberOfRows = 3; int numberOfColumns = 2; // Create the data. var data = new Complex[6] { new Complex(1, -1), new Complex(5, -5), new Complex(2, -2), new Complex(6, -6), new Complex(3, -3), new Complex(7, -7) }; // Assume the data as RowMajor ordered. StorageOrder storageOrder = StorageOrder.RowMajor; // Create the matrix. var matrix = ComplexMatrix.Dense( numberOfRows, numberOfColumns, data, storageOrder); Console.WriteLine("Assuming RowMajor ordered data."); Console.WriteLine("The data matrix:"); Console.WriteLine(matrix); // Assume the data as ColMajor ordered. storageOrder = StorageOrder.ColumnMajor; // Create the matrix. matrix = ComplexMatrix.Dense( numberOfRows, numberOfColumns, data, storageOrder); Console.WriteLine("Assuming ColMajor ordered data."); Console.WriteLine("The data matrix:"); Console.WriteLine(matrix); }
internal DenseDoubleMatrixImplementor(int numberOfRows, int numberOfColumns) { Debug.Assert(numberOfRows > 0); Debug.Assert(numberOfColumns > 0); this.storage = new double[numberOfRows * numberOfColumns]; this.numberOfRows = numberOfRows; this.numberOfColumns = numberOfColumns; this.storageOrder = StorageOrder.ColumnMajor; this.storageScheme = StorageScheme.Dense; }
public void ResetOrder(int userid) { var session = HttpContext.Current.Session; session["CurrentOrder"] = new StorageOrder() { CurrentOrder = new OrderDto() { UserID = userid, Message = "" } }; }
internal DenseDoubleMatrixImplementor( int numberOfRows, int numberOfColumns, IEnumerable <double> data, StorageOrder storageOrder) { Debug.Assert(numberOfRows > 0); Debug.Assert(numberOfColumns > 0); Debug.Assert(data is not null); Debug.Assert( (StorageOrder.ColumnMajor == storageOrder) || (StorageOrder.RowMajor == storageOrder)); int matrixLength = numberOfRows * numberOfColumns; Debug.Assert(data.Count() == matrixLength); double[] dataStorage = new double[matrixLength]; int l = 0; foreach (double d in data) { dataStorage[l] = d; l++; } if (StorageOrder.RowMajor == storageOrder) { ImplementationServices.ConvertStorageToColMajorOrdered( numberOfRows, numberOfColumns, dataStorage); } this.storage = dataStorage; this.numberOfRows = numberOfRows; this.numberOfColumns = numberOfColumns; this.storageOrder = StorageOrder.ColumnMajor; this.storageScheme = StorageScheme.Dense; }
public void SetOrder(StorageOrder value) { var session = HttpContext.Current.Session; session["CurrentOrder"] = value; }