1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
//------------------------------------------------------------------------------
// GB_bitmap_M_scatter_whole_template: scatter M into/from the C bitmap
//------------------------------------------------------------------------------
// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2025, All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
//------------------------------------------------------------------------------
// This method only handles the full assign case, where there are no I and J
// index lists. The C and M matrices must have the same size.
// C is bitmap. M is sparse or hypersparse, and may be jumbled.
#define GB_NO_CNVALS
{
switch (operation)
{
case GB_BITMAP_M_SCATTER_PLUS_2 : // Cb (i,j) += 2
#undef GB_MASK_WORK
#define GB_MASK_WORK(pC) Cb [pC] += 2
#include "template/GB_bitmap_assign_M_all_template.c"
break ;
case GB_BITMAP_M_SCATTER_MINUS_2 : // Cb (i,j) -= 2
#undef GB_MASK_WORK
#define GB_MASK_WORK(pC) Cb [pC] -= 2
#include "template/GB_bitmap_assign_M_all_template.c"
break ;
case GB_BITMAP_M_SCATTER_SET_2 : // Cb (i,j) = 2
#undef GB_MASK_WORK
#define GB_MASK_WORK(pC) Cb [pC] = 2
#include "template/GB_bitmap_assign_M_all_template.c"
break ;
default: ;
}
}
#undef GB_NO_CNVALS
|