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__eq_thunk_int64)
20 // phase2: GB (_sel_phase2__eq_thunk_int64)
21 // bitmap: GB (_sel_bitmap__eq_thunk_int64)
22 
23 // A type: int64_t
24 
25 // kind
26 #define GB_ENTRY_SELECTOR
27 
28 #define GB_ATYPE \
29     int64_t
30 
31 // test value of Ax [p]
32 #define GB_TEST_VALUE_OF_ENTRY(p)                       \
33     Ax [p] == thunk
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] = thunk
42 
43 //------------------------------------------------------------------------------
44 // GB_sel_phase1
45 //------------------------------------------------------------------------------
46 
47 
48 
GB(_sel_phase1__eq_thunk_int64)49 void GB (_sel_phase1__eq_thunk_int64)
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 int64_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     int64_t thunk = (*xthunk) ;
64     #include "GB_select_phase1.c"
65 }
66 
67 
68 
69 //------------------------------------------------------------------------------
70 // GB_sel_phase2
71 //------------------------------------------------------------------------------
72 
GB(_sel_phase2__eq_thunk_int64)73 void GB (_sel_phase2__eq_thunk_int64)
74 (
75     int64_t *restrict Ci,
76     int64_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 int64_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     int64_t thunk = (*xthunk) ;
89     #include "GB_select_phase2.c"
90 }
91 
92 //------------------------------------------------------------------------------
93 // GB_sel_bitmap
94 //------------------------------------------------------------------------------
95 
96 
97 
GB(_sel_bitmap__eq_thunk_int64)98 void GB (_sel_bitmap__eq_thunk_int64)
99 (
100     int8_t *Cb,
101     int64_t *restrict Cx,
102     int64_t *cnvals_handle,
103     GrB_Matrix A,
104     const bool flipij,
105     const int64_t ithunk,
106     const int64_t *restrict xthunk,
107     const GxB_select_function user_select,
108     const int nthreads
109 )
110 {
111     int64_t thunk = (*xthunk) ;
112     #include "GB_bitmap_select_template.c"
113 }
114 
115 
116