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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
//------------------------------------------------------------------------------
// GB_sel: hard-coded functions for selection operators
//------------------------------------------------------------------------------
// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2025, All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
//------------------------------------------------------------------------------
#include "select/GB_select.h"
#include "FactoryKernels/GB_sel__include.h"
#define GB_ENTRY_SELECTOR
#define GB_A_TYPE uint16_t
#define GB_Y_TYPE uint16_t
#define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] > y)
#define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA]
#include "select/include/GB_select_shared_definitions.h"
//------------------------------------------------------------------------------
// GB_sel_phase1
//------------------------------------------------------------------------------
GrB_Info GB (_sel_phase1__gt_thunk_uint16)
(
GrB_Matrix C,
uint64_t *restrict Wfirst,
uint64_t *restrict Wlast,
const GrB_Matrix A,
const GB_void *restrict ythunk,
const int64_t *A_ek_slicing,
const int A_ntasks,
const int A_nthreads
)
{
GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ;
#include "select/template/GB_select_entry_phase1_template.c"
return (GrB_SUCCESS) ;
}
//------------------------------------------------------------------------------
// GB_sel_phase2
//------------------------------------------------------------------------------
GrB_Info GB (_sel_phase2__gt_thunk_uint16)
(
GrB_Matrix C,
const uint64_t *restrict Cp_kfirst,
const GrB_Matrix A,
const GB_void *restrict ythunk,
const int64_t *A_ek_slicing,
const int A_ntasks,
const int A_nthreads
)
{
GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ;
#include "select/template/GB_select_phase2_template.c"
return (GrB_SUCCESS) ;
}
//------------------------------------------------------------------------------
// GB_sel_bitmap
//------------------------------------------------------------------------------
GrB_Info GB (_sel_bitmap__gt_thunk_uint16)
(
GrB_Matrix C,
const GrB_Matrix A,
const GB_void *restrict ythunk,
const int nthreads
)
{
GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ;
#include "select/template/GB_select_bitmap_template.c"
return (GrB_SUCCESS) ;
}
|