20 for (
I i = range.begin(); i < range.end(); i++ )
22 if ( region && !region->test( i ) )
28 if constexpr ( !std::is_unsigned_v<T> )
29 absVal = (T)std::abs( val );
30 if ( absVal >= *topExcluding )
33 curr.include( val, i );
47template<
typename T,
typename Itag>
67 return { mma.min, mma.max };
74std::pair<T, T>
parallelMinMax(
const std::vector<T>& vec,
const BitSet* region =
nullptr,
const T * topExcluding =
nullptr )
76 return parallelMinMax( vec.data(), vec.size(), region, topExcluding );
82template<
typename T,
typename Itag>
85 return parallelMinMax( vec.data(), vec.size(), region, topExcluding );
container of bits
Definition MRMesh/MRBitSet.h:27
Definition MRMesh/MRId.h:13
container of bits representing specific indices (faces, verts or edges)
Definition MRMesh/MRBitSet.h:127
std::vector<T>-like container that requires specific indexing type,
Definition MRMesh/MRVector.h:20
ImVec2 size(const ViewportRectangle &rect)
Definition MRViewport.h:29
std::pair< T, T > parallelMinMax(const T *data, size_t size, const BitSet *region=nullptr, const T *topExcluding=nullptr)
Definition MRParallelMinMax.h:64
MinMaxArg< T, size_t > parallelMinMaxArg(const T *data, size_t size, const BitSet *region=nullptr, const T *topExcluding=nullptr)
Definition MRParallelMinMax.h:14
I
Definition MRMesh/MRMeshFwd.h:121
Definition MRMinMaxArg.h:13
void include(const std::pair< T, I > &p)
changes min(Arg) and max(Arg) if necessary to include given point
Definition MRMinMaxArg.h:22