Reductions and Scans

Functions

template<typename T >
internal detail::disable_if
<!detail::collective_val_enabled
< T >::value, typename
detail::reduced< T >::type >
::type 
arbb::add_reduce (const T &source, unsigned int level=0)
 Sums the values in source along level.
template<typename T >
detail::disable_if
<!detail::collective_val_enabled
< T >::value, typename
detail::reduced< T >::type >
::type 
arbb::mul_reduce (const T &source, unsigned int level=0)
 Multiplies the values in source along level.
template<typename T >
detail::disable_if
<!detail::collective_enabled
< T >::value, typename
detail::reduced< T >::type >
::type 
arbb::min_reduce (const T &source, unsigned int level=0)
 Computes the minimum of source along level.
template<typename T >
detail::disable_if
<!detail::collective_enabled
< T >::value, typename
detail::reduced< T >::type >
::type 
arbb::max_reduce (const T &source, unsigned int level=0)
 Computes the maximum of source along level.
template<typename T >
detail::disable_if
<!detail::collective_bool_enabled
< T >::value, typename
detail::reduced< T >::type >
::type 
arbb::and_reduce (const T &source, unsigned int level=0)
 Performs a logical and of all the elements in source along level.
template<typename T >
detail::disable_if
<!detail::collective_bool_enabled
< T >::value, typename
detail::reduced< T >::type >
::type 
arbb::ior_reduce (const T &source, unsigned int level=0)
 Performs a logical or of all the elements in source along level.
template<typename T >
detail::disable_if
<!detail::collective_bool_enabled
< T >::value, typename
detail::reduced< T >::type >
::type 
arbb::xor_reduce (const T &source, unsigned int level=0)
 Performs a logical xor of all the elements in source along level.
template<typename T >
detail::disable_if
<!detail::collective_bool_enabled
< T >::value, boolean >::type 
arbb::any (const T &source)
 Computes the logical or of source along all dimensions.
template<typename T >
detail::disable_if
<!detail::collective_bool_enabled
< T >::value, boolean >::type 
arbb::all (const T &source)
 Computes the logical and of source along all dimensions.
template<typename T >
detail::disable_if
<!detail::collective_enabled
< T >::value, typename
detail::container_traits< T >
::element_type >::type 
arbb::sum (const T &source)
 Computes the sum of source along all dimensions.
template<typename T , std::size_t D>
detail::disable_if
<!detail::collective_enabled
< dense< T, D > >::value,
typename detail::reduced
< dense< T, D > >::type >
::type 
arbb::min_reduce (const dense< T, D > &source, typename detail::reduced< dense< usize, D > >::type &loc, unsigned int level=0)
 Computes the minimum of source along level, and stores the locations of these minima in loc.
template<typename T , std::size_t D>
detail::disable_if
<!detail::collective_enabled
< dense< T, D > >::value,
typename detail::reduced
< dense< T, D > >::type >
::type 
arbb::max_reduce (const dense< T, D > &source, typename detail::reduced< dense< usize, D > >::type &loc, unsigned int level=0)
 Computes the maximum of source along level, and stores the locations of these maxima in loc.
template<typename T >
detail::disable_if
<!detail::collective_val_enabled
< T >::value, T >::type 
arbb::add_scan (const T &source, unsigned int level=0)
 Computes the prefix sum of source along level.
template<typename T >
detail::disable_if
<!detail::collective_val_enabled
< T >::value, T >::type 
arbb::add_iscan (const T &source, unsigned int level=0)
 Computes the prefix sum of source along level.
template<typename T >
detail::disable_if
<!detail::collective_val_enabled
< T >::value, T >::type 
arbb::mul_scan (const T &source, unsigned int level=0)
 Computes the prefix product of source along level.
template<typename T >
detail::disable_if
<!detail::collective_val_enabled
< T >::value, T >::type 
arbb::mul_iscan (const T &source, unsigned int level=0)
 Computes the prefix product of source along level.
template<typename T >
detail::disable_if
<!detail::collective_val_enabled
< T >::value, T >::type 
arbb::min_scan (const T &source, unsigned int level=0)
 Computes a minimum scan of source along level.
template<typename T >
detail::disable_if
<!detail::collective_val_enabled
< T >::value, T >::type 
arbb::min_iscan (const T &source, unsigned int level=0)
 Computes a minimum scan of source along level.
template<typename T >
detail::disable_if
<!detail::collective_val_enabled
< T >::value, T >::type 
arbb::max_scan (const T &source, unsigned int level=0)
 Computes a maximum scan of source along level.
template<typename T >
detail::disable_if
<!detail::collective_val_enabled
< T >::value, T >::type 
arbb::max_iscan (const T &source, unsigned int level=0)
 Computes a maximum scan of source along level.
template<typename T >
detail::disable_if
<!detail::collective_bool_enabled
< T >::value, T >::type 
arbb::and_scan (const T &source, unsigned int level=0)
 Computes a logical and scan of source along level.
template<typename T >
detail::disable_if
<!detail::collective_bool_enabled
< T >::value, T >::type 
arbb::and_iscan (const T &source, unsigned int level=0)
 Computes a logical and scan of source along level.
template<typename T >
detail::disable_if
<!detail::collective_bool_enabled
< T >::value, T >::type 
arbb::ior_scan (const T &source, unsigned int level=0)
 Computes a logical or scan of source along level.
template<typename T >
detail::disable_if
<!detail::collective_bool_enabled
< T >::value, T >::type 
arbb::ior_iscan (const T &source, unsigned int level=0)
 Computes a logical or scan of source along level.
template<typename T >
detail::disable_if
<!detail::collective_bool_enabled
< T >::value, T >::type 
arbb::xor_scan (const T &source, unsigned int level=0)
 Computes a logical xor scan of source along level.
template<typename T >
detail::disable_if
<!detail::collective_bool_enabled
< T >::value, T >::type 
arbb::xor_iscan (const T &source, unsigned int level=0)
 Computes a logical xor scan of source along level.

Function Documentation

template<typename T >
internal detail::disable_if<!detail::collective_val_enabled<T>::value, typename detail::reduced<T>::type>::type arbb::add_reduce ( const T &  source,
unsigned int  level = 0 
) [inline]

Sums the values in source along level.

This function applies to containers of any scalar type except for boolean (arbb::boolean).

Parameters:

source The values to be summed.
level The level or dimension along which to reduce.

Definition at line 139 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_val_enabled<T>::value, typename detail::reduced<T>::type>::type arbb::mul_reduce ( const T &  source,
unsigned int  level = 0 
) [inline]

Multiplies the values in source along level.

This function applies to containers of any scalar type except for boolean (arbb::boolean).

Parameters:

source The values to be multiplied.
level The level or dimension along which to reduce.

Definition at line 152 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_enabled<T>::value, typename detail::reduced<T>::type>::type arbb::min_reduce ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes the minimum of source along level.

This function applies to containers of any scalar type.

Parameters:

source The values of which to compute the minimum.
level The level or dimension along which to reduce.

Definition at line 164 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_enabled<T>::value, typename detail::reduced<T>::type>::type arbb::max_reduce ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes the maximum of source along level.

This function applies to containers of any scalar type.

Parameters:

source The values of which to compute the maximum.
level The level or dimension along which to reduce.

Definition at line 176 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_bool_enabled<T>::value, typename detail::reduced<T>::type>::type arbb::and_reduce ( const T &  source,
unsigned int  level = 0 
) [inline]

Performs a logical and of all the elements in source along level.

This function only applies to containers of arbb::boolean.

Parameters:

source The values on which to compute the logical and.
level The level or dimension along which to reduce.

Definition at line 188 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_bool_enabled<T>::value, typename detail::reduced<T>::type>::type arbb::ior_reduce ( const T &  source,
unsigned int  level = 0 
) [inline]

Performs a logical or of all the elements in source along level.

This function only applies to containers of arbb::boolean.

Parameters:

source The values on which to compute the logical or.
level The level or dimension along which to reduce.

Definition at line 200 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_bool_enabled<T>::value, typename detail::reduced<T>::type>::type arbb::xor_reduce ( const T &  source,
unsigned int  level = 0 
) [inline]

Performs a logical xor of all the elements in source along level.

This function only applies to containers of arbb::boolean.

Parameters:

source The values on which to compute the logical xor.
level The level or dimension along which to reduce.

Definition at line 212 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_bool_enabled<T>::value, boolean>::type arbb::any ( const T &  source  )  [inline]

Computes the logical or of source along all dimensions.

Definition at line 220 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_bool_enabled<T>::value, boolean>::type arbb::all ( const T &  source  )  [inline]

Computes the logical and of source along all dimensions.

Definition at line 228 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_enabled<T>::value, typename detail::container_traits<T>::element_type>::type arbb::sum ( const T &  source  )  [inline]

Computes the sum of source along all dimensions.

Definition at line 236 of file collective.hpp.

template<typename T , std::size_t D>
detail::disable_if<!detail::collective_enabled<dense<T, D> >::value, typename detail::reduced<dense<T, D> >::type>::type arbb::min_reduce ( const dense< T, D > &  source,
typename detail::reduced< dense< usize, D > >::type &  loc,
unsigned int  level = 0 
) [inline]

Computes the minimum of source along level, and stores the locations of these minima in loc.

Definition at line 245 of file collective.hpp.

template<typename T , std::size_t D>
detail::disable_if<!detail::collective_enabled<dense<T, D> >::value, typename detail::reduced<dense<T, D> >::type>::type arbb::max_reduce ( const dense< T, D > &  source,
typename detail::reduced< dense< usize, D > >::type &  loc,
unsigned int  level = 0 
) [inline]

Computes the maximum of source along level, and stores the locations of these maxima in loc.

Definition at line 256 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_val_enabled<T>::value, T>::type arbb::add_scan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes the prefix sum of source along level.

This function applies to containers of any scalar type except for boolean (arbb::boolean).

Parameters:

source The values to be summed.
level The level or dimension along which to reduce.

Definition at line 272 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_val_enabled<T>::value, T>::type arbb::add_iscan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes the prefix sum of source along level.

This function applies to containers of any scalar type except for boolean (arbb::boolean).

Parameters:

source The values to be summed.
level The level or dimension along which to reduce.

Definition at line 285 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_val_enabled<T>::value, T>::type arbb::mul_scan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes the prefix product of source along level.

This function applies to containers of any scalar type except for boolean (arbb::boolean).

Parameters:

source The values to be multiplied.
level The level or dimension along which to reduce.

Definition at line 298 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_val_enabled<T>::value, T>::type arbb::mul_iscan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes the prefix product of source along level.

This function applies to containers of any scalar type except for boolean (arbb::boolean).

Parameters:

source The values to be multiplied.
level The level or dimension along which to reduce.

Definition at line 311 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_val_enabled<T>::value, T>::type arbb::min_scan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes a minimum scan of source along level.

This function applies to containers of any scalar type except for boolean (arbb::boolean).

Parameters:

source The values of which to compute the minimum.
level The level or dimension along which to reduce.

Definition at line 324 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_val_enabled<T>::value, T>::type arbb::min_iscan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes a minimum scan of source along level.

This function applies to containers of any scalar type except for boolean (arbb::boolean).

Parameters:

source The values of which to compute the minimum.
level The level or dimension along which to reduce.

Definition at line 337 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_val_enabled<T>::value, T>::type arbb::max_scan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes a maximum scan of source along level.

This function applies to containers of any scalar type except for boolean (arbb::boolean).

Parameters:

source The values of which to compute the maximum.
level The level or dimension along which to reduce.

Definition at line 350 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_val_enabled<T>::value, T>::type arbb::max_iscan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes a maximum scan of source along level.

This function applies to containers of any scalar type except for boolean (arbb::boolean).

Parameters:

source The values of which to compute the maximum.
level The level or dimension along which to reduce.

Definition at line 363 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_bool_enabled<T>::value, T>::type arbb::and_scan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes a logical and scan of source along level.

This function only applies to containers of arbb::boolean.

Parameters:

source The values on which to compute the logical and.
level The level or dimension along which to reduce.

Definition at line 375 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_bool_enabled<T>::value, T>::type arbb::and_iscan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes a logical and scan of source along level.

This function only applies to containers of arbb::boolean.

Parameters:

source The values on which to compute the logical and.
level The level or dimension along which to reduce.

Definition at line 387 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_bool_enabled<T>::value, T>::type arbb::ior_scan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes a logical or scan of source along level.

This function only applies to containers of arbb::boolean.

Parameters:

source The values on which to compute the logical or.
level The level or dimension along which to reduce.

Definition at line 399 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_bool_enabled<T>::value, T>::type arbb::ior_iscan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes a logical or scan of source along level.

This function only applies to containers of arbb::boolean.

Parameters:

source The values on which to compute the logical or.
level The level or dimension along which to reduce.

Definition at line 411 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_bool_enabled<T>::value, T>::type arbb::xor_scan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes a logical xor scan of source along level.

This function only applies to containers of arbb::boolean.

Parameters:

source The values on which to compute the logical xor.
level The level or dimension along which to reduce.

Definition at line 423 of file collective.hpp.

template<typename T >
detail::disable_if<!detail::collective_bool_enabled<T>::value, T>::type arbb::xor_iscan ( const T &  source,
unsigned int  level = 0 
) [inline]

Computes a logical xor scan of source along level.

This function only applies to containers of arbb::boolean.

Parameters:

source The values on which to compute the logical xor.
level The level or dimension along which to reduce.

Definition at line 435 of file collective.hpp.

Submit feedback on this help topic

Copyright © 2010, Intel Corporation. All rights reserved.