Class DenseCsrFieldOps

java.lang.Object
org.flag4j.linalg.ops.dense_sparse.csr.field_ops.DenseCsrFieldOps

public final class DenseCsrFieldOps extends Object
This class contains low-level ops which act on a dense and a sparse CSR field matrix.
  • Method Details

    • applyBinOpp

      public static <T extends Field<T>> AbstractDenseFieldMatrix<?,?,T> applyBinOpp(AbstractCsrFieldMatrix<?,?,?,T> src1, AbstractDenseFieldMatrix<?,?,T> src2, BinaryOperator<T> opp, UnaryOperator<T> uOpp)
      Applies the specified binary operator element-wise to the two matrices.
      Parameters:
      src1 - First matrix in element-wise binary operation.
      src2 - Second matrix in element-wise binary operation.
      opp - Binary operator to apply element-wise to the two matrices.
      uOpp - Unary operator for use with binary ops which are not commutative such as subtraction. If the operation is commutative this should be null. If the binary operation is not commutative, it needs to be decomposable to one commutative binary operation opp and one unary operation uOpp such that it is equivalent to opp.apply(x, uOpp.apply(y)).
      Returns:
      A matrix containing the result from applying opp element-wise to the two matrices.
    • applyBinOpp

      public static <T extends Field<T>> AbstractDenseFieldMatrix<?,?,T> applyBinOpp(AbstractDenseFieldMatrix<?,?,T> src1, AbstractCsrFieldMatrix<?,?,?,T> src2, BinaryOperator<T> opp)
      Applies the specified binary operator element-wise to the two matrices.
      Parameters:
      src1 - First matrix in element-wise binary operation.
      src2 - Second matrix in element-wise binary operation.
      opp - Binary operator to apply element-wise to the two matrices.
      Returns:
      A matrix containing the result from applying opp element-wise to the two matrices.
    • applyBinOpp

      public static <T extends Field<T>> AbstractDenseFieldMatrix<?,?,T> applyBinOpp(AbstractCsrFieldMatrix<?,?,?,T> src1, double b, BinaryOperator<T> opp, UnaryOperator<Double> uOpp)
      Applies the specified binary operator element-wise to a matrix and a scalar.
      Parameters:
      src1 - First matrix in element-wise binary operation.
      b - Scalar to apply element-wise using the specified operation.
      opp - Binary operator to apply element-wise to the two matrices.
      uOpp - Unary operator for use with binary ops which are not commutative such as subtraction. If the operation is commutative this should be null. If the binary operation is not commutative, it needs to be decomposable to one commutative binary operation opp and one unary operation uOpp such that it is equivalent to opp.apply(x, uOpp.apply(y)).
      Returns:
      A matrix containing the result from applying opp element-wise to the two matrices.
    • applyBinOpp

      public static <T extends Field<T>> AbstractDenseFieldMatrix<?,?,T> applyBinOpp(AbstractCsrFieldMatrix<?,?,?,T> src1, T b, BinaryOperator<T> opp, UnaryOperator<T> uOpp)
      Applies the specified binary operator element-wise to a matrix and a scalar.
      Parameters:
      src1 - First matrix in element-wise binary operation.
      b - Scalar to apply element-wise using the specified operation.
      opp - Binary operator to apply element-wise to the two matrices.
      uOpp - Unary operator for use with binary ops which are not commutative such as subtraction. If the operation is commutative this should be null. If the binary operation is not commutative, it needs to be decomposable to one commutative binary operation opp and one unary operation uOpp such that it is equivalent to opp.apply(x, uOpp.apply(y)).
      Returns:
      A matrix containing the result from applying opp element-wise to the two matrices.
    • applyBinOppToSparse

      public static <T extends Field<T>> AbstractCsrFieldMatrix<?,?,?,T> applyBinOppToSparse(AbstractDenseFieldMatrix<?,?,T> src1, AbstractCsrFieldMatrix<?,?,?,T> src2, BinaryOperator<T> opp)
      Applies an element-wise binary operation to a real dense and real sparse CSR matrix under the assumption that opp.apply(x, 0d) = 0d and opp.apply(0d, x) = 0d.
      Parameters:
      src1 - The first matrix in the operation.
      src2 - Second matrix in the operation.
      opp - Operation to apply to the matrices.
      Returns:
      The result of applying the operation element-wise to the matrices. Result is a sparse CSR matrix.
    • add

      public static <T extends Field<T>> AbstractDenseFieldMatrix<?,?,T> add(AbstractCsrFieldMatrix<?,?,?,T> a, AbstractDenseFieldMatrix<?,?,T> b)
      Computes the element-wise sum of two matrices.
      Parameters:
      a - First matrix in sum.
      b - Second matrix in sum.
      Returns:
      The element-wise sum of a and b.
    • sub

      public static <T extends Field<T>> AbstractDenseFieldMatrix<?,?,T> sub(AbstractCsrFieldMatrix<?,?,?,T> a, AbstractDenseFieldMatrix<?,?,T> b)
      Computes the element-wise difference of two matrices.
      Parameters:
      a - First matrix in difference.
      b - Second matrix in difference.
      Returns:
      The element-wise difference of a and b.
    • sub

      public static <T extends Field<T>> AbstractDenseFieldMatrix<?,?,T> sub(AbstractDenseFieldMatrix<?,?,T> a, AbstractCsrFieldMatrix<?,?,?,T> b)
      Computes the element-wise difference of two matrices.
      Parameters:
      a - First matrix in difference.
      b - Second matrix in difference.
      Returns:
      The element-wise difference of a and b.