29  noiseSuppressionImpl(
get_num_groups(0), 
get_local_size(0), 
get_group_id(0), 
get_local_id(0), smem, clusterer.Param().rec, chargeMap, isPeakMap, clusterer.mPpeakPositions, clusterer.mPmemory->counters.nPeaks, clusterer.mPisPeak);
 
 
   44                                                             const uint32_t peaknum,
 
   45                                                             uint8_t* isPeakPredicate)
 
   52  uint64_t minimas, bigger, peaksAround;
 
   65  peaksAround &= bigger;
 
   67  bool keepMe = keepPeak(minimas, peaksAround);
 
   69  bool iamDummy = (
idx >= peaknum);
 
   74  isPeakPredicate[
idx] = keepMe;
 
   79                                                      const uint8_t* isPeak,
 
   80                                                      const uint32_t peakNum,
 
   91  uint8_t peak = isPeak[idx];
 
   93  peakMap[
pos] = 0b10 | peak; 
 
 
  100  const 
float epsilonRelative,
 
  108  uint64_t isMinima = (q - 
r > epsilon) && (
float)CAMath::Abs(q - 
r) / (float)CAMath::Max(q, 
r) > epsilonRelative; 
 
  109  *minimas |= (isMinima << 
pos);
 
  111  uint64_t lq = (
r > q);
 
  112  *bigger |= (lq << 
pos);
 
 
  122  const 
float epsilonRelative,
 
  130    checkForMinima(q, epsilon, epsilonRelative, 
other, 
pos, minimas, bigger);
 
  143    uint64_t 
p = CfUtils::isPeak(
buf[N * ll + 
i]);
 
  145    *peaks |= (
p << 
pos);
 
  157    bool otherPeak = (peaks & (uint64_t(1) << 
i));
 
  158    bool minimaBetween = (minima & cfconsts::NoiseSuppressionMinima[
i]);
 
  160    keepMe &= (!otherPeak || minimaBetween);
 
  183  uint16_t wgSizeHalf = (SCRATCH_PAD_WORK_GROUP_SIZE + 1) / 2;
 
  185  bool inGroup1 = ll < wgSizeHalf;
 
  186  uint16_t llhalf = (inGroup1) ? ll : (ll - wgSizeHalf);
 
  198    SCRATCH_PAD_WORK_GROUP_SIZE,
 
  199    SCRATCH_PAD_WORK_GROUP_SIZE,
 
  203    cfconsts::NoiseSuppressionNeighbors,
 
  213    calibration.tpc.cfNoiseSuppressionEpsilon,
 
  214    calibration.tpc.cfNoiseSuppressionEpsilonRelative / 255.f,
 
  221    SCRATCH_PAD_WORK_GROUP_SIZE,
 
  225    cfconsts::NoiseSuppressionNeighbors,
 
  236      calibration.tpc.cfNoiseSuppressionEpsilon,
 
  237      calibration.tpc.cfNoiseSuppressionEpsilonRelative / 255.f,
 
  245    SCRATCH_PAD_WORK_GROUP_SIZE,
 
  249    cfconsts::NoiseSuppressionNeighbors,
 
  260      calibration.tpc.cfNoiseSuppressionEpsilon,
 
  261      calibration.tpc.cfNoiseSuppressionEpsilonRelative / 255.f,
 
  266#if defined(GPUCA_GPUCODE) 
  270    SCRATCH_PAD_WORK_GROUP_SIZE,
 
  274    cfconsts::NoiseSuppressionNeighbors,
 
  275    posBcast + wgSizeHalf,
 
  285      calibration.tpc.cfNoiseSuppressionEpsilon,
 
  286      calibration.tpc.cfNoiseSuppressionEpsilonRelative / 255.f,
 
  294    SCRATCH_PAD_WORK_GROUP_SIZE,
 
  298    cfconsts::NoiseSuppressionNeighbors,
 
  299    posBcast + wgSizeHalf,
 
  309      calibration.tpc.cfNoiseSuppressionEpsilon,
 
  310      calibration.tpc.cfNoiseSuppressionEpsilonRelative / 255.f,
 
  324    SCRATCH_PAD_WORK_GROUP_SIZE,
 
  325    SCRATCH_PAD_WORK_GROUP_SIZE,
 
  329    cfconsts::NoiseSuppressionNeighbors,
 
  342    SCRATCH_PAD_WORK_GROUP_SIZE,
 
  343    SCRATCH_PAD_WORK_GROUP_SIZE,
 
  347    cfconsts::NoiseSuppressionNeighbors,
 
#define NOISE_SUPPRESSION_NEIGHBOR_NUM
 
#define get_local_size(dim)
 
#define get_local_id(dim)
 
#define get_num_groups(dim)
 
#define get_global_id(dim)
 
#define get_group_id(dim)
 
#define GPUCA_UNROLL(optCu, optHi)
 
GPUd() void GPUTPCCFNoiseSuppression
 
GPUdii() void GPUTPCCFNoiseSuppression
 
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
 
GLenum GLuint GLenum GLsizei const GLchar * buf
 
uint8_t itsSharedClusterMap uint8_t
 
VectorOfTObjectPtrs other
 
for(int irof=0;irof< 1000;irof++)