applyByRow method

Matrix<T> applyByRow(
  1. T operator(
    1. T a,
    2. T b
    ),
  2. Vector<T> vector, {
  3. Matrix<T>? target,
  4. DataType<T>? dataType,
  5. MatrixFormat? format,
})

Applies an operator and a vector over each row of this matrix.

Implementation

Matrix<T> applyByRow(T Function(T a, T b) operator, Vector<T> vector,
    {Matrix<T>? target, DataType<T>? dataType, MatrixFormat? format}) {
  final result = createMatrix<T>(this, target, dataType, format);
  if (rowCount != vector.count) {
    throw ArgumentError.value(vector, 'vector',
        'Vector must have $rowCount elements, but it has ${vector.count}.');
  }
  for (var r = 0; r < rowCount; r++) {
    for (var c = 0; c < colCount; c++) {
      result.setUnchecked(
          r, c, operator(getUnchecked(r, c), vector.getUnchecked(r)));
    }
  }
  return result;
}