1 //------------------------------------------------------------------------------
2 // GB_sel: hard-coded functions for selection operators
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 // If this file is in the Generated/ folder, do not edit it (auto-generated).
11
12 #include "GB_select.h"
13 #include "GB_ek_slice.h"
14 #include "GB_sel__include.h"
15
16 // The selection is defined by the following types and operators:
17
18 // functions:
19 // phase1: GB (_sel_phase1__(none))
20 // phase2: GB (_sel_phase2__nonzombie_uint64)
21 // bitmap: GB (_sel_bitmap__(none))
22
23 // A type: uint64_t
24
25 // kind
26 #define GB_ENTRY_SELECTOR
27
28 #define GB_ATYPE \
29 uint64_t
30
31 // test value of Ax [p]
32 #define GB_TEST_VALUE_OF_ENTRY(p) \
33 GB_IS_NOT_ZOMBIE (Ai, p)
34
35 // get the vector index (user select operators only)
36 #define GB_GET_J \
37 ;
38
39 // Cx [pC] = Ax [pA], no typecast
40 #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) \
41 Cx [pC] = Ax [pA]
42
43 //------------------------------------------------------------------------------
44 // GB_sel_phase1
45 //------------------------------------------------------------------------------
46
47 #if 0
48
49 void GB (_sel_phase1__(none))
50 (
51 int64_t *restrict Zp,
52 int64_t *restrict Cp,
53 int64_t *restrict Wfirst,
54 int64_t *restrict Wlast,
55 const GrB_Matrix A,
56 const bool flipij,
57 const int64_t ithunk,
58 const uint64_t *restrict xthunk,
59 const GxB_select_function user_select,
60 const int64_t *A_ek_slicing, const int A_ntasks, const int A_nthreads
61 )
62 {
63 ;
64 #include "GB_select_phase1.c"
65 }
66
67 #endif
68
69 //------------------------------------------------------------------------------
70 // GB_sel_phase2
71 //------------------------------------------------------------------------------
72
GB(_sel_phase2__nonzombie_uint64)73 void GB (_sel_phase2__nonzombie_uint64)
74 (
75 int64_t *restrict Ci,
76 uint64_t *restrict Cx,
77 const int64_t *restrict Zp,
78 const int64_t *restrict Cp,
79 const int64_t *restrict Cp_kfirst,
80 const GrB_Matrix A,
81 const bool flipij,
82 const int64_t ithunk,
83 const uint64_t *restrict xthunk,
84 const GxB_select_function user_select,
85 const int64_t *A_ek_slicing, const int A_ntasks, const int A_nthreads
86 )
87 {
88 ;
89 #include "GB_select_phase2.c"
90 }
91
92 //------------------------------------------------------------------------------
93 // GB_sel_bitmap
94 //------------------------------------------------------------------------------
95
96 #if 0
97
98 void GB (_sel_bitmap__(none))
99 (
100 int8_t *Cb,
101 uint64_t *restrict Cx,
102 int64_t *cnvals_handle,
103 GrB_Matrix A,
104 const bool flipij,
105 const int64_t ithunk,
106 const uint64_t *restrict xthunk,
107 const GxB_select_function user_select,
108 const int nthreads
109 )
110 {
111 ;
112 #include "GB_bitmap_select_template.c"
113 }
114
115 #endif
116