//------------------------------------------------------------------------------ // GB_bitmap_assign_methods.h: definitions for GB_bitmap_assign* methods //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #ifndef GB_BITMAP_ASSIGN_METHODS_H #define GB_BITMAP_ASSIGN_METHODS_H #include "GB_callback_proto.h" #include "GB_bitmap_assign.h" #include "GB_ek_slice.h" #include "GB_ij.h" #include "GB_subassign_IxJ_slice.h" #include "GB_unused.h" #include "GB_bitmap_scatter.h" //------------------------------------------------------------------------------ // prototypes //------------------------------------------------------------------------------ GrB_Info GB_bitmap_assign_fullM_accum ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C const GrB_Index *I, // I index list const int64_t nI, const int Ikind, const int64_t Icolon [3], const GrB_Index *J, // J index list const int64_t nJ, const int Jkind, const int64_t Jcolon [3], const GrB_Matrix M, // mask matrix, which is not NULL here const bool Mask_comp, // true for !M, false for M const bool Mask_struct, // true if M is structural, false if valued const GrB_BinaryOp accum, // present here const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar const int assign_kind, // row assign, col assign, assign, or subassign GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_fullM_accum_whole ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C const GrB_Matrix M, // mask matrix, which is present here const bool Mask_comp, // true for !M, false for M const bool Mask_struct, // true if M is structural, false if valued const GrB_BinaryOp accum, // present here const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_fullM_noaccum ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format const bool C_replace, // descriptor for C // inputs: const GrB_Index *I, // I index list const int64_t nI, const int Ikind, const int64_t Icolon [3], const GrB_Index *J, // J index list const int64_t nJ, const int Jkind, const int64_t Jcolon [3], const GrB_Matrix M, // mask matrix, which is present here const bool Mask_comp, // true for !M, false for M const bool Mask_struct, // true if M is structural, false if valued // const GrB_BinaryOp accum, // not present const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar const int assign_kind, // row assign, col assign, assign, or subassign GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_fullM_noaccum_whole ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format const bool C_replace, // descriptor for C // inputs: const GrB_Matrix M, // mask matrix, which is present here const bool Mask_comp, // true for !M, false for M const bool Mask_struct, // true if M is structural, false if valued // const GrB_BinaryOp accum, // not present const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_M_accum ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C const GrB_Index *I, // I index list const int64_t nI, const int Ikind, const int64_t Icolon [3], const GrB_Index *J, // J index list const int64_t nJ, const int Jkind, const int64_t Jcolon [3], const GrB_Matrix M, // mask matrix, which is not NULL here // const bool Mask_comp, // false here const bool Mask_struct, // true if M is structural, false if valued const GrB_BinaryOp accum, // present here const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar const int assign_kind, // row assign, col assign, assign, or subassign GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_M_accum_whole ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C const GrB_Matrix M, // mask matrix, which is not NULL here // const bool Mask_comp, // false here const bool Mask_struct, // true if M is structural, false if valued const GrB_BinaryOp accum, // present here const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_M_noaccum ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C const GrB_Index *I, // I index list const int64_t nI, const int Ikind, const int64_t Icolon [3], const GrB_Index *J, // J index list const int64_t nJ, const int Jkind, const int64_t Jcolon [3], const GrB_Matrix M, // mask matrix, which is not NULL here // const bool Mask_comp, // false here const bool Mask_struct, // true if M is structural, false if valued // const GrB_BinaryOp accum, // not present const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar const int assign_kind, // row assign, col assign, assign, or subassign GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_M_noaccum_whole ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C const GrB_Matrix M, // mask matrix, which is not NULL here // const bool Mask_comp, // false here const bool Mask_struct, // true if M is structural, false if valued // const GrB_BinaryOp accum, // not present const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_noM_accum ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C const GrB_Index *I, // I index list const int64_t nI, const int Ikind, const int64_t Icolon [3], const GrB_Index *J, // J index list const int64_t nJ, const int Jkind, const int64_t Jcolon [3], // const GrB_Matrix M, // mask matrix, not present here const bool Mask_comp, // true for !M, false for M const bool Mask_struct, // true if M is structural, false if valued const GrB_BinaryOp accum, // present const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar const int assign_kind, // row assign, col assign, assign, or subassign GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_noM_accum_whole ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C // const GrB_Matrix M, // mask matrix, not present here const bool Mask_comp, // true for !M, false for M const bool Mask_struct, // true if M is structural, false if valued const GrB_BinaryOp accum, // present const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_noM_noaccum ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C const GrB_Index *I, // I index list const int64_t nI, const int Ikind, const int64_t Icolon [3], const GrB_Index *J, // J index list const int64_t nJ, const int Jkind, const int64_t Jcolon [3], // const GrB_Matrix M, // mask matrix, not present here const bool Mask_comp, // true for !M, false for M const bool Mask_struct, // true if M is structural, false if valued // const GrB_BinaryOp accum, // not present const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar const int assign_kind, // row assign, col assign, assign, or subassign GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_noM_noaccum_whole ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C // const GrB_Matrix M, // mask matrix, not present here const bool Mask_comp, // true for !M, false for M const bool Mask_struct, // true if M is structural, false if valued // const GrB_BinaryOp accum, // not present const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_notM_accum ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C const GrB_Index *I, // I index list const int64_t nI, const int Ikind, const int64_t Icolon [3], const GrB_Index *J, // J index list const int64_t nJ, const int Jkind, const int64_t Jcolon [3], const GrB_Matrix M, // mask matrix // const bool Mask_comp, // true here, for !M only const bool Mask_struct, // true if M is structural, false if valued const GrB_BinaryOp accum, // present const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar const int assign_kind, // row assign, col assign, assign, or subassign GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_notM_accum_whole ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C const GrB_Matrix M, // mask matrix // const bool Mask_comp, // true here, for !M only const bool Mask_struct, // true if M is structural, false if valued const GrB_BinaryOp accum, // present const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_notM_noaccum ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C const GrB_Index *I, // I index list const int64_t nI, const int Ikind, const int64_t Icolon [3], const GrB_Index *J, // J index list const int64_t nJ, const int Jkind, const int64_t Jcolon [3], const GrB_Matrix M, // mask matrix // const bool Mask_comp, // true here, for !M only const bool Mask_struct, // true if M is structural, false if valued // const GrB_BinaryOp accum, // not present const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar const int assign_kind, // row assign, col assign, assign, or subassign GB_Werk Werk ) ; GrB_Info GB_bitmap_assign_notM_noaccum_whole ( // input/output: GrB_Matrix C, // input/output matrix in bitmap format // inputs: const bool C_replace, // descriptor for C const GrB_Matrix M, // mask matrix // const bool Mask_comp, // true here, for !M only const bool Mask_struct, // true if M is structural, false if valued // const GrB_BinaryOp accum, // not present const GrB_Matrix A, // input matrix, not transposed const void *scalar, // input scalar const GrB_Type scalar_type, // type of input scalar GB_Werk Werk ) ; void GB_bitmap_assign_to_full // set all C->b to 1, or free it and make C full ( GrB_Matrix C, int nthreads_max ) ; #endif