public virtual CompressedColumnStorage <T> ParallelMultiply(CompressedColumnStorage <T> other) { return(Multiply(other)); }
internal abstract int Scatter(int j, T beta, int[] w, T[] x, int mark, CompressedColumnStorage <T> mat, int nzz);
/// <summary> /// Sparse matrix multiplication, C = A*B /// </summary> /// <param name="other">column-compressed matrix</param> /// <returns>C = A*B, null on error</returns> public abstract CompressedColumnStorage <T> Multiply(CompressedColumnStorage <T> other);
/// <summary> /// Adds two matrices, C = alpha*A + beta*B, where A is current instance. /// </summary> /// <param name="alpha">Scalar factor for A, current instance.</param> /// <param name="beta">Scalar factor for B, other instance.</param> /// <param name="other">The matrix added to this instance.</param> /// <param name="result">Contains the sum.</param> /// <remarks> /// The (result) matrix has to be fully initialized and provide enough space for /// the nonzero entries of the sum. An upper bound is the sum of the nonzeros count /// of (this) and (other). /// </remarks> public abstract void Add(T alpha, T beta, CompressedColumnStorage <T> other, CompressedColumnStorage <T> result);
/// <summary> /// Transpose this matrix and store the result in given matrix. /// </summary> /// <param name="result">Storage for the tranposed matrix.</param> public void Transpose(CompressedColumnStorage <T> result) { this.Transpose(result, false); }
/// <summary> /// Sparse matrix multiplication, C = A*B /// </summary> /// <param name="other">The sparse matrix multiplied to this instance.</param> /// <param name="options">Parallel options (optional).</param> /// <returns>C = A*B</returns> public virtual CompressedColumnStorage <T> ParallelMultiply(CompressedColumnStorage <T> other, System.Threading.Tasks.ParallelOptions options = null) { return(Multiply(other)); }
/// <summary> /// Sparse matrix multiplication, C = A*B /// </summary> /// <param name="other">The sparse matrix multiplied to this instance.</param> /// <param name="result">Contains the matrix product.</param> /// <remarks> /// The <paramref name="result"/> matrix has to be fully initialized, but doesn't have /// to provide enough space for the nonzero entries of the product. The storage will be /// automatically expanded if necessary. /// </remarks> public abstract void Multiply(CompressedColumnStorage <T> other, CompressedColumnStorage <T> result);