MCPcopy Create free account
hub / github.com/clMathLibraries/clFFT / pruneOutliers

Method pruneOutliers

src/statTimer/statisticalTimer.GPU.cpp:388–411  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

386}
387
388std::vector< size_t >
389GpuStatTimer::pruneOutliers( size_t id , cl_double multiple )
390{
391 std::vector< StatData > mean = getMean( id );
392 std::vector< StatData > stdDev = getStdDev( id );
393
394 std::vector< size_t > totalPrune;
395 for( size_t s = 0; s < timerData.at( id ).size( ); ++s )
396 {
397 // Look on p. 379, "The C++ Standard Library"
398 // std::remove_if does not actually erase, it only copies elements, it returns new 'logical' end
399 StatDataVec::iterator newEnd = std::remove_if( timerData.at( id ).at( s ).begin( ), timerData.at( id ).at( s ).end( ),
400 PruneRange< StatData,cl_double >( mean[ s ], multiple * stdDev[ s ].doubleNanoSec ) );
401
402 StatDataVec::difference_type dist = std::distance( newEnd, timerData.at( id ).at( s ).end( ) );
403
404 if( dist != 0 )
405 timerData.at( id ).at( s ).erase( newEnd, timerData.at( id ).at( s ).end( ) );
406
407 totalPrune.push_back( dist );
408 }
409
410 return totalPrune;
411}
412
413size_t
414GpuStatTimer::pruneOutliers( cl_double multiple )

Callers

nothing calls this directly

Calls 1

sizeMethod · 0.80

Tested by

no test coverage detected