1 //------------------------------------------------------------------------------
2 // GB_assign.h: definitions for GB_assign and related functions
3 //------------------------------------------------------------------------------
4 
5 // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
6 // SPDX-License-Identifier: Apache-2.0
7 
8 //------------------------------------------------------------------------------
9 
10 #ifndef GB_ASSIGN_H
11 #define GB_ASSIGN_H
12 #include "GB.h"
13 
14 GrB_Info GB_assign                  // C<M>(Rows,Cols) += A or A'
15 (
16     GrB_Matrix C,                   // input/output matrix for results
17     bool C_replace,                 // descriptor for C
18     const GrB_Matrix M_in,          // optional mask for C
19     const bool Mask_comp,           // true if mask is complemented
20     const bool Mask_struct,         // if true, use the only structure of M
21     const bool M_transpose,         // true if the mask should be transposed
22     const GrB_BinaryOp accum,       // optional accum for accum(C,T)
23     const GrB_Matrix A_in,          // input matrix
24     const bool A_transpose,         // true if A is transposed
25     const GrB_Index *Rows,          // row indices
26     const GrB_Index nRows_in,       // number of row indices
27     const GrB_Index *Cols,          // column indices
28     const GrB_Index nCols_in,       // number of column indices
29     const bool scalar_expansion,    // if true, expand scalar to A
30     const void *scalar,             // scalar to be expanded
31     const GB_Type_code scalar_code, // type code of scalar to expand
32     int assign_kind,                // row, col, or matrix/vector assign
33     GB_Context Context
34 ) ;
35 
36 GrB_Info GB_assign_scalar           // C<M>(Rows,Cols) += x
37 (
38     GrB_Matrix C,                   // input/output matrix for results
39     const GrB_Matrix M,             // mask for C(Rows,Cols), unused if NULL
40     const GrB_BinaryOp accum,       // accum for Z=accum(C(Rows,Cols),T)
41     const void *scalar,             // scalar to assign to C(Rows,Cols)
42     const GB_Type_code scalar_code, // type code of scalar to assign
43     const GrB_Index *Rows,          // row indices
44     const GrB_Index nRows,          // number of row indices
45     const GrB_Index *Cols,          // column indices
46     const GrB_Index nCols,          // number of column indices
47     const GrB_Descriptor desc,      // descriptor for C and M
48     GB_Context Context
49 ) ;
50 
51 #endif
52