code: public static void add(double alpha, DMatrixSparseCSC A, double beta, DMatrixSparseCSC B, DMatrixSparseCSC C,
                             @Nullable IGrowArray gw, @Nullable DGrowArray gx)
      {
          double []x = adjust(gx,A.numRows);
          int []w = adjust(gw,A.numRows,A.numRows);
  
          C.indicesSorted = false;
          C.nz_length = 0;
  
          for (int col = 0; col < A.numCols; col++) {
              C.col_idx[col] = C.nz_length;
  
              multAddColA(A,col,alpha,C,col+1,x,w);
              multAddColA(B,col,beta,C,col+1,x,w);
  
              // take the values in the dense vector 'x' and put them into 'C'
              int idxC0 = C.col_idx[col];
              int idxC1 = C.col_idx[col+1];
  
              for (int i = idxC0; i < idxC1; i++) {
                  C.nz_values[i] = x[C.nz_rows[i]];
              }
          }
      }
docs: Performs matrix addition:<br>
  C = &alpha;A + &beta;B
  
  @param alpha scalar value multiplied against A
  @param A Matrix
  @param beta scalar value multiplied against B
  @param B Matrix
  @param C Output matrix.
  @param gw (Optional) Storage for internal workspace.  Can be null.
  @param gx (Optional) Storage for internal workspace.  Can be null.