mirror of
https://github.com/boostorg/gil.git
synced 2026-01-25 18:22:16 +00:00
165 lines
12 KiB
HTML
165 lines
12 KiB
HTML
<!-- HTML header for doxygen 1.8.13-->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.9.8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Generic Image Library: Performance overloads of STL algorithms</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="doxygen-boost.css" rel="stylesheet" type="text/css"/>
|
|
</head>
|
|
<body>
|
|
<div class="boost-header">
|
|
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
|
|
<tr>
|
|
<td valign="top" width="300">
|
|
<h3><a href="../index.html"><img alt="Boost GIL" src="../_static/gil.png" border="0"></a></h3>
|
|
</td>
|
|
<td ><h1 align="center"><a href="../index.html"></a></h1></td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<hr/>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<!-- Generated by Doxygen 1.9.8 -->
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',false,false,'search.php','Search');
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle"><div class="title">Performance overloads of STL algorithms<div class="ingroups"><a class="el" href="group___image_view.html">Image View</a> » <a class="el" href="group___image_view_algorithm.html">Algorithms and Utility Functions</a></div></div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>overloads of STL algorithms allowing more efficient implementation when used with GIL constructs
|
|
<a href="#details">More...</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:ga09b77d532dc4513c0a8a5cfcfeeb4159" id="r_ga09b77d532dc4513c0a8a5cfcfeeb4159"><td class="memTemplParams" colspan="2"><a id="ga09b77d532dc4513c0a8a5cfcfeeb4159" name="ga09b77d532dc4513c0a8a5cfcfeeb4159"></a>
|
|
template<typename CS , typename IC1 , typename IC2 > </td></tr>
|
|
<tr class="memitem:ga09b77d532dc4513c0a8a5cfcfeeb4159"><td class="memTemplItemLeft" align="right" valign="top">BOOST_FORCEINLINE auto </td><td class="memTemplItemRight" valign="bottom"><b>copy</b> (<a class="el" href="structboost_1_1gil_1_1planar__pixel__iterator.html">boost::gil::planar_pixel_iterator</a>< IC1, CS > first, <a class="el" href="structboost_1_1gil_1_1planar__pixel__iterator.html">boost::gil::planar_pixel_iterator</a>< IC1, CS > last, <a class="el" href="structboost_1_1gil_1_1planar__pixel__iterator.html">boost::gil::planar_pixel_iterator</a>< IC2, CS > dst) -> <a class="el" href="structboost_1_1gil_1_1planar__pixel__iterator.html">boost::gil::planar_pixel_iterator</a>< IC2, CS ></td></tr>
|
|
<tr class="memdesc:ga09b77d532dc4513c0a8a5cfcfeeb4159"><td class="mdescLeft"> </td><td class="mdescRight">Copy when both src and dst are planar pointers is copy for each channel. <br /></td></tr>
|
|
<tr class="separator:ga09b77d532dc4513c0a8a5cfcfeeb4159"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga8e5145f9a736adfc52685b793dd69043" id="r_ga8e5145f9a736adfc52685b793dd69043"><td class="memTemplParams" colspan="2"><a id="ga8e5145f9a736adfc52685b793dd69043" name="ga8e5145f9a736adfc52685b793dd69043"></a>
|
|
template<typename IL , typename OL > </td></tr>
|
|
<tr class="memitem:ga8e5145f9a736adfc52685b793dd69043"><td class="memTemplItemLeft" align="right" valign="top">BOOST_FORCEINLINE auto </td><td class="memTemplItemRight" valign="bottom"><b>copy1</b> (<a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< IL > first, <a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< IL > last, <a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< OL > dst) -> <a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< OL ></td></tr>
|
|
<tr class="memdesc:ga8e5145f9a736adfc52685b793dd69043"><td class="mdescLeft"> </td><td class="mdescRight">std::copy(I1,I1,I2) with I1 and I2 being a iterator_from_2d <br /></td></tr>
|
|
<tr class="separator:ga8e5145f9a736adfc52685b793dd69043"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga09a077977f139f28b04441f238ec6ab0" id="r_ga09a077977f139f28b04441f238ec6ab0"><td class="memTemplParams" colspan="2">template<typename IL , typename V > </td></tr>
|
|
<tr class="memitem:ga09a077977f139f28b04441f238ec6ab0"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___s_t_l_optimizations.html#ga09a077977f139f28b04441f238ec6ab0">fill</a> (<a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< IL > first, <a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< IL > last, const V &val)</td></tr>
|
|
<tr class="memdesc:ga09a077977f139f28b04441f238ec6ab0"><td class="mdescLeft"> </td><td class="mdescRight">std::fill(I,I,V) with I being a iterator_from_2d <br /></td></tr>
|
|
<tr class="separator:ga09a077977f139f28b04441f238ec6ab0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga81c883ff7f9fd9e4a2d978a28d150688" id="r_ga81c883ff7f9fd9e4a2d978a28d150688"><td class="memTemplParams" colspan="2">template<typename Loc1 , typename Loc2 > </td></tr>
|
|
<tr class="memitem:ga81c883ff7f9fd9e4a2d978a28d150688"><td class="memTemplItemLeft" align="right" valign="top">BOOST_FORCEINLINE bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___s_t_l_optimizations.html#ga81c883ff7f9fd9e4a2d978a28d150688">equal</a> (<a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< Loc1 > first, <a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< Loc1 > last, <a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< Loc2 > first2)</td></tr>
|
|
<tr class="memdesc:ga81c883ff7f9fd9e4a2d978a28d150688"><td class="mdescLeft"> </td><td class="mdescRight">std::equal(I1,I1,I2) with I1 and I2 being a iterator_from_2d <br /></td></tr>
|
|
<tr class="separator:ga81c883ff7f9fd9e4a2d978a28d150688"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<p>overloads of STL algorithms allowing more efficient implementation when used with GIL constructs </p>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="ga81c883ff7f9fd9e4a2d978a28d150688" name="ga81c883ff7f9fd9e4a2d978a28d150688"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga81c883ff7f9fd9e4a2d978a28d150688">◆ </a></span>equal()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename Loc1 , typename Loc2 > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">BOOST_FORCEINLINE bool equal </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< Loc1 > </td>
|
|
<td class="paramname"><em>first</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< Loc1 > </td>
|
|
<td class="paramname"><em>last</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< Loc2 > </td>
|
|
<td class="paramname"><em>first2</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>std::equal(I1,I1,I2) with I1 and I2 being a iterator_from_2d </p>
|
|
<p>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 </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga09a077977f139f28b04441f238ec6ab0" name="ga09a077977f139f28b04441f238ec6ab0"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga09a077977f139f28b04441f238ec6ab0">◆ </a></span>fill()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename IL , typename V > </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void fill </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< IL > </td>
|
|
<td class="paramname"><em>first</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="classboost_1_1gil_1_1iterator__from__2d.html">boost::gil::iterator_from_2d</a>< IL > </td>
|
|
<td class="paramname"><em>last</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const V & </td>
|
|
<td class="paramname"><em>val</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>std::fill(I,I,V) with I being a iterator_from_2d </p>
|
|
<p>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 </p>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<!-- HTML footer for doxygen 1.8.13-->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/>
|
|
<address class="footer">
|
|
<small>
|
|
Generated by  <a href="http://www.doxygen.org/index.html">doxygen</a> 1.9.8
|
|
</small>
|
|
</address>
|
|
</body>
|
|
</html>
|