/// <summary> /// Check if matrices are multiplication compatible /// </summary> /// <param name="left">Left hand side matrix.</param> /// <param name="right">Right hand side matrix.</param> /// <exception cref="DimensionMismatchException"> if matrices are not multiplication /// compatible.</exception> public static void checkMultiplicationCompatible(AnyMatrix left, AnyMatrix right) { if (left.getColumnDimension() != right.getRowDimension()) { throw new DimensionMismatchException(left.getColumnDimension(), right.getRowDimension()); } }
/// <summary> /// Check if matrices are subtraction compatible /// </summary> /// <param name="left">Left hand side matrix.</param> /// <param name="right">Right hand side matrix.</param> /// <exception cref="MatrixDimensionMismatchException"> if the matrices are not addition /// compatible.</exception> public static void checkSubtractionCompatible(AnyMatrix left, AnyMatrix right) { if ((left.getRowDimension() != right.getRowDimension()) || (left.getColumnDimension() != right.getColumnDimension())) { throw new MatrixDimensionMismatchException(left.getRowDimension(), left.getColumnDimension(), right.getRowDimension(), right.getColumnDimension()); } }
/// <summary> /// Check if a row index is valid. /// </summary> /// <param name="m">Matrix.</param> /// <param name="row">Row index to check.</param> /// <exception cref="OutOfRangeException"> if <c>row</c> is not a valid index.</exception> public static void checkRowIndex(AnyMatrix m, int row) { if (row < 0 || row >= m.getRowDimension()) { throw new OutOfRangeException <Int32>(new LocalizedFormats("ROW_INDEX"), row, 0, m.getRowDimension() - 1); } }