Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Performance overloads of STL algorithms

overloads of STL algorithms allowing more efficient implementation when used with GIL constructs More...

Functions

template<typename T , typename Cs >
boost::gil::pixel< T, Cs > * std::copy (boost::gil::pixel< T, Cs > *first, boost::gil::pixel< T, Cs > *last, boost::gil::pixel< T, Cs > *dst)
 Copy when both src and dst are interleaved and of the same type can be just memmove. More...
 
template<typename T , typename Cs >
boost::gil::pixel< T, Cs > * std::copy (const boost::gil::pixel< T, Cs > *first, const boost::gil::pixel< T, Cs > *last, boost::gil::pixel< T, Cs > *dst)
 Copy when both src and dst are interleaved and of the same type can be just memmove. More...
 
template<typename Cs , typename IC1 , typename IC2 >
boost::gil::planar_pixel_iterator
< IC2, Cs > 
std::copy (boost::gil::planar_pixel_iterator< IC1, Cs > first, boost::gil::planar_pixel_iterator< IC1, Cs > last, boost::gil::planar_pixel_iterator< IC2, Cs > dst)
 Copy when both src and dst are planar pointers is copy for each channel. More...
 
template<typename IL , typename OL >
boost::gil::iterator_from_2d< OL > std::copy1 (boost::gil::iterator_from_2d< IL > first, boost::gil::iterator_from_2d< IL > last, boost::gil::iterator_from_2d< OL > dst)
 std::copy(I1,I1,I2) with I1 and I2 being a iterator_from_2d More...
 
template<typename IL , typename V >
void std::fill (boost::gil::iterator_from_2d< IL > first, boost::gil::iterator_from_2d< IL > last, const V &val)
 std::fill(I,I,V) with I being a iterator_from_2d More...
 
template<typename Loc1 , typename Loc2 >
bool std::equal (boost::gil::iterator_from_2d< Loc1 > first, boost::gil::iterator_from_2d< Loc1 > last, boost::gil::iterator_from_2d< Loc2 > first2)
 std::equal(I1,I1,I2) with I1 and I2 being a iterator_from_2d More...
 

Detailed Description

overloads of STL algorithms allowing more efficient implementation when used with GIL constructs

Function Documentation

template<typename T , typename Cs >
boost::gil::pixel<T,Cs>* std::copy ( boost::gil::pixel< T, Cs > *  first,
boost::gil::pixel< T, Cs > *  last,
boost::gil::pixel< T, Cs > *  dst 
)
inline

#include <boost_1_57_0/boost/gil/algorithm.hpp>

Copy when both src and dst are interleaved and of the same type can be just memmove.

References std::copy().

template<typename T , typename Cs >
boost::gil::pixel<T,Cs>* std::copy ( const boost::gil::pixel< T, Cs > *  first,
const boost::gil::pixel< T, Cs > *  last,
boost::gil::pixel< T, Cs > *  dst 
)
inline

#include <boost_1_57_0/boost/gil/algorithm.hpp>

Copy when both src and dst are interleaved and of the same type can be just memmove.

References std::copy().

template<typename Cs , typename IC1 , typename IC2 >
boost::gil::planar_pixel_iterator<IC2,Cs> std::copy ( boost::gil::planar_pixel_iterator< IC1, Cs >  first,
boost::gil::planar_pixel_iterator< IC1, Cs >  last,
boost::gil::planar_pixel_iterator< IC2, Cs >  dst 
)
inline
template<typename IL , typename OL >
boost::gil::iterator_from_2d<OL> std::copy1 ( boost::gil::iterator_from_2d< IL >  first,
boost::gil::iterator_from_2d< IL >  last,
boost::gil::iterator_from_2d< OL >  dst 
)
inline

#include <boost_1_57_0/boost/gil/algorithm.hpp>

std::copy(I1,I1,I2) with I1 and I2 being a iterator_from_2d

References boost::gil::detail::copy_with_2d_iterators().

template<typename Loc1 , typename Loc2 >
bool std::equal ( boost::gil::iterator_from_2d< Loc1 >  first,
boost::gil::iterator_from_2d< Loc1 >  last,
boost::gil::iterator_from_2d< Loc2 >  first2 
)
inline

#include <boost_1_57_0/boost/gil/algorithm.hpp>

std::equal(I1,I1,I2) with I1 and I2 being a iterator_from_2d

Invoked when one calls std::equal(I1,I1,I2) with I1 and I2 being a iterator_from_2d (which is a 1D iterator over the pixels in an image). Attempts to demote the source and destination iterators to simpler/faster types if the corresponding range is contiguous. For contiguous images (i.e. images that have no alignment gap at the end of each row) it is more efficient to use the underlying pixel iterator that does not check for the end of rows. If the underlying pixel iterator happens to be a fundamental planar/interleaved pointer, the call may further resolve to memcmp. Otherwise it resolves to copying each row using the underlying pixel iterator

References boost::xpressive::first, boost::gil::iterator_from_2d< Loc2 >::is_1d_traversable(), n, and boost::gil::iterator_from_2d< Loc2 >::x().

Referenced by boost::gil::equal_pixels(), boost::lambda::ll::equal::operator()(), and boost::gil::detail::equal_n_fn< I1, I2 >::operator()().

template<typename IL , typename V >
void std::fill ( boost::gil::iterator_from_2d< IL >  first,
boost::gil::iterator_from_2d< IL >  last,
const V &  val 
)

#include <boost_1_57_0/boost/gil/algorithm.hpp>

std::fill(I,I,V) with I being a iterator_from_2d

Invoked when one calls std::fill(I,I,V) with I being a iterator_from_2d (which is a 1D iterator over the pixels in an image). For contiguous images (i.e. images that have no alignment gap at the end of each row) it is more efficient to use the underlying pixel iterator that does not check for the end of rows. For non-contiguous images fill resolves to fill of each row using the underlying pixel iterator, which is still faster

References boost::range::fill_n(), boost::xpressive::first, boost::gil::iterator_from_2d< Loc2 >::is_1d_traversable(), n, boost::phoenix::val(), and boost::gil::iterator_from_2d< Loc2 >::x().

Referenced by boost::numeric::ublas::array_adaptor< T >::array_adaptor(), boost::numeric::ublas::bounded_array< T, M *N >::bounded_array(), boost::detail::vertex_property_map_generator_helper< Graph, IndexMap, Value, true >::build(), boost::numeric::ublas::symmetric_matrix< T, TRI, L, A >::clear(), boost::numeric::ublas::triangular_matrix< T, TRI, L, A >::clear(), boost::numeric::ublas::vector< T, bounded_array< T, N > >::clear(), boost::numeric::ublas::matrix< T, L, bounded_array< T, M *N > >::clear(), boost::numeric::ublas::banded_matrix< T, L, A >::clear(), boost::numeric::ublas::hermitian_matrix< T, TRI, L, A >::clear(), boost::numeric::ublas::vector_of_vector< T, L, A >::clear(), boost::numeric::ublas::c_vector< T, N >::clear(), boost::numeric::ublas::c_matrix< T, N, M >::clear(), boost::multiprecision::backends::cpp_dec_float< Digits10, ExponentType, Allocator >::cpp_dec_float(), boost::multiprecision::backends::cpp_dec_float< Digits10, ExponentType, Allocator >::extract_integer_part(), boost::gil::detail::fill_aux(), boost::random::seed_seq::generate(), boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::grid_graph(), boost::gursoy_atun_step(), boost::xpressive::match_results< BidiIter >::match_results(), boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::null_vertex(), boost::one_bit_color_map< VertexIndexMap >::one_bit_color_map(), boost::random::lagged_fibonacci_engine< UIntType, w, p, q >::operator()(), boost::phoenix::impl::fill::operator()(), boost::random::lagged_fibonacci_01_engine< RealType, w, p, q >::operator()(), boost::gil::detail::std_fill_t::operator()(), boost::lambda::ll::fill::operator()(), boost::multiprecision::backends::cpp_dec_float< Digits10, ExponentType, Allocator >::operator+=(), boost::uuids::operator<<(), boost::multiprecision::operator<<(), boost::multiprecision::backends::cpp_dec_float< Digits10, ExponentType, Allocator >::operator=(), boost::iostreams::symmetric_filter< detail::bzip2_decompressor_impl< Alloc >, Alloc >::read(), boost::io::detail::stream_format_state< Ch, Tr >::reset(), boost::dynamic_bitset< Block, Allocator >::reset(), boost::numeric::ublas::bounded_array< T, M *N >::resize(), boost::accumulators::impl::tail_variate_means_impl< Sample, Impl, LeftRight, VariateTag >::result(), boost::accumulators::impl::weighted_tail_variate_means_impl< Sample, Weight, Impl, LeftRight, VariateType >::result(), boost::dynamic_bitset< Block, Allocator >::set(), boost::match_results< BidirectionalIterator >::set_size(), boost::intrusive::list_impl< ValueTraits, SizeType, ConstantTimeSize, HeaderHolder >::sort(), boost::intrusive::slist_impl< ValueTraits, SizeType, BoolFlags, HeaderHolder >::sort(), and boost::two_bit_color_map< IndexMap >::two_bit_color_map().