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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
//------------------------------------------------------------------------------
// GB_sel: hard-coded functions for selection operators
//------------------------------------------------------------------------------
// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2022, All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
//------------------------------------------------------------------------------
// If this file is in the Generated1/ folder, do not edit it
// (it is auto-generated from Generator/*).
#include "GB_select.h"
#include "GB_ek_slice.h"
#include "GB_sel__include.h"
// The selection is defined by the following types and operators:
// functions:
// phase1: GB (_sel_phase1__ge_thunk_fp32)
// phase2: GB (_sel_phase2__ge_thunk_fp32)
// bitmap: GB (_sel_bitmap__ge_thunk_fp32)
// A type: float
#define GB_ISO_SELECT \
0
// kind
#define GB_ENTRY_SELECTOR
#define GB_ATYPE \
float
// test value of Ax [p]
#define GB_TEST_VALUE_OF_ENTRY(keep,p) \
bool keep = (Ax [p] >= thunk)
// Cx [pC] = Ax [pA], no typecast
#define GB_SELECT_ENTRY(Cx,pC,Ax,pA) \
Cx [pC] = Ax [pA]
//------------------------------------------------------------------------------
// GB_sel_phase1
//------------------------------------------------------------------------------
void GB (_sel_phase1__ge_thunk_fp32)
(
int64_t *restrict Zp,
int64_t *restrict Cp,
int64_t *restrict Wfirst,
int64_t *restrict Wlast,
const GrB_Matrix A,
const bool flipij,
const int64_t ithunk,
const float *restrict athunk,
const GB_void *restrict ythunk,
const GB_Operator op,
const int64_t *A_ek_slicing, const int A_ntasks, const int A_nthreads
)
{
float thunk = (*athunk) ;
#include "GB_select_phase1.c"
}
//------------------------------------------------------------------------------
// GB_sel_phase2
//------------------------------------------------------------------------------
void GB (_sel_phase2__ge_thunk_fp32)
(
int64_t *restrict Ci,
float *restrict Cx,
const int64_t *restrict Zp,
const int64_t *restrict Cp,
const int64_t *restrict Cp_kfirst,
const GrB_Matrix A,
const bool flipij,
const int64_t ithunk,
const float *restrict athunk,
const GB_void *restrict ythunk,
const GB_Operator op,
const int64_t *A_ek_slicing, const int A_ntasks, const int A_nthreads
)
{
float thunk = (*athunk) ;
#include "GB_select_phase2.c"
}
//------------------------------------------------------------------------------
// GB_sel_bitmap
//------------------------------------------------------------------------------
void GB (_sel_bitmap__ge_thunk_fp32)
(
int8_t *Cb,
float *restrict Cx,
int64_t *cnvals_handle,
GrB_Matrix A,
const bool flipij,
const int64_t ithunk,
const float *restrict athunk,
const GB_void *restrict ythunk,
const GB_Operator op,
const int nthreads
)
{
float thunk = (*athunk) ;
#include "GB_bitmap_select_template.c"
}
|