public static void ArraySet <[AnyPrimitive] TScalar>( MFullArray <TScalar> array, double rowIndex, double columnIndex, double sliceIndex, TScalar value) { var index = LinearizeIndex(array.shape, ToInt(rowIndex), ToInt(columnIndex), ToInt(sliceIndex)); array[index - 1] = value; }
public static void ArraySet <[AnyPrimitive] TScalar>( MFullArray <TScalar> array, double rowIndex, double columnIndex, TScalar value) { // Performance critical method! Contract.Requires(array != null); int rowIndexInt = ToInt(rowIndex); if (rowIndexInt < 1) { throw new ArgumentOutOfRangeException("rowIndex"); } int rowCount = array.shape.RowCount; int columnIndexInt = ToInt(columnIndex); if (rowIndexInt > rowCount || columnIndexInt > array.shape.ColumnCount) { if (array.shape.IsHigherDimensional) { throw new ArgumentOutOfRangeException(); } if (rowIndexInt > rowCount) { rowCount = rowIndexInt; } int columnCount = Math.Max(array.shape.ColumnCount, columnIndexInt); array.Resize(new MArrayShape(rowCount, columnCount)); } array.elements[(columnIndexInt - 1) * rowCount + (rowIndexInt - 1)] = value; }
public static void ArraySet <[AnyPrimitive] TScalar>( MFullArray <TScalar> array, int rowIndex, int columnIndex, TScalar value) { // Performance critical method! Contract.Requires(array != null); if (rowIndex < 1) { throw new ArgumentOutOfRangeException("rowIndex"); } if (columnIndex < 1) { throw new ArgumentOutOfRangeException("columnIndex"); } int rowCount = array.shape.RowCount; if (rowIndex > array.RowCount || columnIndex > array.ColumnCount) { // Array needs resizing // TODO: zeros(2, 2, 2) (3, 3) = 5 should work and produce a 3x2x2 matrix if (array.IsHigherDimensional) { throw new ArgumentOutOfRangeException(); } if (rowIndex > rowCount) { rowCount = rowIndex; } int columnCount = Math.Max(array.shape.ColumnCount, columnIndex); array.Resize(new MArrayShape(rowCount, columnCount)); } array.elements[(columnIndex - 1) * rowCount + (rowIndex - 1)] = value; }
public static void ArraySet <[AnyPrimitive] TScalar>( MFullArray <TScalar> array, int index, TScalar value) { Contract.Requires(array != null); if (index < 1) { throw new ArgumentOutOfRangeException("index"); } if (index > array.Count) { // Must resize, only works if the array is empty, a scalar or a vector // - Empty, scalar or row vector: grows in columns // - Column vector: grows in rows // - Otherwise: throws if (array.IsHigherDimensional) { throw new ArgumentOutOfRangeException("index"); } else if (array.RowCount <= 1) { array.Resize(new MArrayShape(1, index)); } else if (array.ColumnCount == 1) { array.Resize(new MArrayShape(index, 1)); } else { throw new ArgumentOutOfRangeException("index"); } } array[index - 1] = value; }
public static void ArraySet <[AnyPrimitive] TScalar>( MFullArray <TScalar> array, TScalar value) { Contract.Requires(array != null); int count = array.Count; for (int i = 0; i < count; ++i) { array[i] = value; } }
public static void ArraySet <[AnyPrimitive] TScalar>( MFullArray <TScalar> array, MFullArray <double> indices, TScalar value) { Contract.Requires(array != null); Contract.Requires(indices != null); var indicesShape = indices.shape; if (!indicesShape.IsVector) { throw MArrayShapeException.CreateFormatted("Array index must be a vector but has shape {0}.", indicesShape); } int indexCount = indices.Count; for (int i = 0; i < indexCount; i++) { array[ToInt(indices[i]) - 1] = value; } }
public static void ArraySet <[AnyPrimitive] TScalar>( MFullArray <TScalar> array, double index, TScalar value) { Contract.Requires(array != null); ArraySet(array, ToInt(index), value); }
public static MFullArray <TScalar> Expand <[AnyPrimitive] TScalar>(TScalar value, double rowCount, double columnCount) { var shape = MArrayShape.FromDoubles(rowCount, columnCount); return(MFullArray <TScalar> .ExpandScalar(value, shape)); }
public static MFullArray <TScalar> vertcat <[AnyPrimitive] TScalar>( TScalar value1, TScalar value2, TScalar value3, TScalar value4, TScalar value5) { return(MFullArray <TScalar> .CreateColumnVector(value1, value2, value3, value4, value5)); }
public static MFullArray <TScalar> horzcat <[AnyPrimitive] TScalar>( TScalar value1, TScalar value2, TScalar value3, TScalar value4) { return(MFullArray <TScalar> .CreateRowVector(value1, value2, value3, value4)); }
public static TScalar uplus <[AnyNumeric] TScalar>(TScalar value) { return(value); }
internal static TScalar transpose <[AnyPrimitive] TScalar>(TScalar value) { return(value); }