<?xml version="1.0" standalone="yes"?>
<library-reference id="header_reference"><title>Header Reference</title><header id="doxygen.header_reference.accumulate_8hpp" name="boost/compute/algorithm/accumulate.hpp">
<namespace name="boost">
<namespace name="compute">










































































































<function id="doxygen.header_reference.accumulate_8hpp_1ad20e2d713a5459580000254f9a5ca8dd" name="accumulate"><type>T</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="T"/>
          <template-type-parameter name="BinaryFunction"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>first element in the input range </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>last element in the input range </para></description></parameter><parameter name="init"><paramtype>T</paramtype><description><para>initial value </para></description></parameter><parameter name="function"><paramtype>BinaryFunction</paramtype><description><para>binary reduction function </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Returns the result of applying <computeroutput>function</computeroutput> to the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) and <computeroutput>init</computeroutput>.</para><para>If no function is specified, <computeroutput>plus</computeroutput> will be used.</para><para>

In specific situations the call to <computeroutput>accumulate()</computeroutput> can be automatically optimized to a call to the more efficient <computeroutput>reduce()</computeroutput> algorithm. This occurs when the binary reduction function is recognized as associative (such as the <computeroutput>plus&lt;int&gt;</computeroutput> function).</para><para>Note that because floating-point addition is not associative, calling <computeroutput>accumulate()</computeroutput> with <computeroutput>plus&lt;float&gt;</computeroutput> results in a less efficient serial reduction algorithm being executed. If a slight loss in precision is acceptable, the more efficient parallel <computeroutput>reduce()</computeroutput> algorithm should be used instead.</para><para>For example: <programlisting language="c++">// with vec = boost::compute::vector&lt;int&gt;
accumulate(vec.begin(), vec.end(), 0, plus&lt;int&gt;());   // fast
reduce(vec.begin(), vec.end(), &amp;result, plus&lt;int&gt;()); // fast

// with vec = boost::compute::vector&lt;float&gt;
accumulate(vec.begin(), vec.end(), 0, plus&lt;float&gt;());   // slow
reduce(vec.begin(), vec.end(), &amp;result, plus&lt;float&gt;()); // fast
</programlisting></para><para>Space complexity: \Omega(1)<sbr/>
 Space complexity when optimized to <computeroutput>reduce()</computeroutput>: \Omega(n)</para><para><formalpara><title>See Also:</title><para>reduce() </para>
</formalpara>
</para></description><returns><para>the accumulated result value</para>
</returns></function>
<function id="doxygen.header_reference.accumulate_8hpp_1a0d1e5038c96948b9a49eacb191e87049" name="accumulate"><type>T</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="init"><paramtype>T</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>

























</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.adjacent__difference_8hpp" name="boost/compute/algorithm/adjacent_difference.hpp">
<namespace name="boost">
<namespace name="compute">








































































































<function id="doxygen.header_reference.adjacent__difference_8hpp_1a402ed480c86037ff97d7084c206f3330" name="adjacent_difference"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="BinaryFunction"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>first element in the input range </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>last element in the input range </para></description></parameter><parameter name="result"><paramtype>OutputIterator</paramtype><description><para>first element in the output range </para></description></parameter><parameter name="op"><paramtype>BinaryFunction</paramtype><description><para>binary difference function </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Stores the difference of each pair of consecutive values in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) to the range beginning at <computeroutput>result</computeroutput>. If <computeroutput>op</computeroutput> is not provided, <computeroutput>minus&lt;T&gt;</computeroutput> is used.</para><para>

Space complexity: \Omega(1)<sbr/>
 Space complexity when <computeroutput>result</computeroutput> == <computeroutput>first:</computeroutput> \Omega(n)</para><para><formalpara><title>See Also:</title><para>adjacent_find() </para>
</formalpara>
</para></description><returns><para><computeroutput>OutputIterator</computeroutput> to the end of the result range</para>
</returns></function>
<function id="doxygen.header_reference.adjacent__difference_8hpp_1a5ca46d8688b495df911ea9f119e9c4e2" name="adjacent_difference"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>



























</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.adjacent__find_8hpp" name="boost/compute/algorithm/adjacent_find.hpp">
<namespace name="boost">
<namespace name="compute">






































































































<function id="doxygen.header_reference.adjacent__find_8hpp_1a2fe9ad013401626c6f8db4f80c857e2f" name="adjacent_find"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="Compare"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>first element in the range to search </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>last element in the range to search </para></description></parameter><parameter name="compare"><paramtype>Compare</paramtype><description><para>binary comparison function </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Searches the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) for two identical adjacent elements and returns an iterator pointing to the first.</para><para>

Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>find(), adjacent_difference() </para>
</formalpara>
</para></description><returns><para><computeroutput>InputIteratorm</computeroutput> to the first element which compares equal to the following element. If none are equal, returns <computeroutput>last</computeroutput>.</para>
</returns></function>
<function id="doxygen.header_reference.adjacent__find_8hpp_1ad49b2c6006826c158ba4aece8e6fc9e5" name="adjacent_find"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>





























</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.all__of_8hpp" name="boost/compute/algorithm/all_of.hpp">
<namespace name="boost">
<namespace name="compute">





































































































<function id="doxygen.header_reference.all__of_8hpp_1ac64df1f9f5d417a5f26669995d804b0a" name="all_of"><type>bool</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="UnaryPredicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="predicate"><paramtype>UnaryPredicate</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns <computeroutput>true</computeroutput> if <computeroutput>predicate</computeroutput> returns <computeroutput>true</computeroutput> for all of the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>any_of(), none_of() </para>
</formalpara>
</para></description></function>































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.any__of_8hpp" name="boost/compute/algorithm/any_of.hpp">
<namespace name="boost">
<namespace name="compute">




































































































<function id="doxygen.header_reference.any__of_8hpp_1a95e9c8a4dce8fafb7641cddbab90fa76" name="any_of"><type>bool</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="UnaryPredicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="predicate"><paramtype>UnaryPredicate</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns <computeroutput>true</computeroutput> if <computeroutput>predicate</computeroutput> returns <computeroutput>true</computeroutput> for any of the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>For example, to test if a vector contains any negative values:</para><para><programlisting language="c++"/></para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>all_of(), none_of() </para>
</formalpara>
</para></description></function>
































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.binary__search_8hpp" name="boost/compute/algorithm/binary_search.hpp">
<namespace name="boost">
<namespace name="compute">



































































































<function id="doxygen.header_reference.binary__search_8hpp_1acd41d2eff2d8bfd36ae02e9ebf95685d" name="binary_search"><type>bool</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns <computeroutput>true</computeroutput> if <computeroutput>value</computeroutput> is in the sorted range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>Space complexity: \Omega(1) </para></description></function>

































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.copy_8hpp" name="boost/compute/algorithm/copy.hpp">
<namespace name="boost">
<namespace name="compute">

































































































<function id="doxygen.header_reference.copy_8hpp_1a8cc9d2abdc35b4abae205c10c35aef32" name="copy"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>first element in the range to copy </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>last element in the range to copy </para></description></parameter><parameter name="result"><paramtype>OutputIterator</paramtype><description><para>first element in the result range </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Copies the values in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) to the range beginning at <computeroutput>result</computeroutput>.</para><para>The generic copy() function can be used for a variety of data transfer tasks and provides a standard interface to the following OpenCL functions:</para><para><itemizedlist>
<listitem><para><computeroutput>clEnqueueReadBuffer()</computeroutput> </para>
</listitem>
<listitem><para><computeroutput>clEnqueueWriteBuffer()</computeroutput> </para>
</listitem>
<listitem><para><computeroutput>clEnqueueCopyBuffer()</computeroutput> </para>
</listitem>
</itemizedlist>
Unlike the aforementioned OpenCL functions, copy() will also work with non-contiguous data-structures (e.g. <computeroutput>std::list&lt;T&gt;</computeroutput>) as well as with "fancy" iterators (e.g. <link linkend="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator">transform_iterator</link>).</para><para>

For example, to copy an array of <computeroutput>int</computeroutput> values on the host to a vector on the device: <programlisting language="c++">// array on the host
int data[] = { 1, 2, 3, 4 };

// vector on the device
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">boost::compute::vector&lt;int&gt;</link> vec(4, context);

// copy values to the device vector
boost::compute::copy(data, data + 4, vec.begin(), queue);
</programlisting></para><para>The copy algorithm can also be used with standard containers such as <computeroutput>std::vector&lt;T&gt;</computeroutput>: <programlisting language="c++">std::vector&lt;int&gt; host_vector = ...
boost::compute::vector&lt;int&gt; device_vector = ...

// copy from the host to the device
boost::compute::copy(
    host_vector.begin(), host_vector.end(), device_vector.begin(), queue
);

// copy from the device to the host
boost::compute::copy(
    device_vector.begin(), device_vector.end(), host_vector.begin(), queue
);
</programlisting></para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>copy_n(), copy_if(), copy_async() </para>
</formalpara>
</para></description><returns><para><computeroutput>OutputIterator</computeroutput> to the end of the result range</para>
</returns></function>
<function id="doxygen.header_reference.copy_8hpp_1a2a53a4410988c91ddd4bc1ef7f1f4050" name="copy_async"><type><classname>future</classname>&lt; OutputIterator &gt;</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Copies the values in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) to the range beginning at <computeroutput>result</computeroutput>. The copy is performed asynchronously.</para><para><formalpara><title>See Also:</title><para>copy() </para>
</formalpara>
</para></description></function>


































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.copy__if_8hpp" name="boost/compute/algorithm/copy_if.hpp">
<namespace name="boost">
<namespace name="compute">
































































































<function id="doxygen.header_reference.copy__if_8hpp_1a9f11ea41b020bd4eecd021770bc87ea3" name="copy_if"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="Predicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="predicate"><paramtype>Predicate</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Copies each element in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) for which <computeroutput>predicate</computeroutput> returns <computeroutput>true</computeroutput> to the range beginning at <computeroutput>result</computeroutput>.</para><para>Space complexity: \Omega(2n) </para></description></function>




































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.copy__n_8hpp" name="boost/compute/algorithm/copy_n.hpp">
<namespace name="boost">
<namespace name="compute">































































































<function id="doxygen.header_reference.copy__n_8hpp_1ab90d7f06632091c46f71a73f496371ee" name="copy_n"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="Size"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="count"><paramtype>Size</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Copies <computeroutput>count</computeroutput> elements from <computeroutput>first</computeroutput> to <computeroutput>result</computeroutput>.</para><para>For example, to copy four values from the host to the device: <programlisting language="c++">// values on the host and vector on the device
float values[4] = { 1.f, 2.f, 3.f, 4.f };
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">boost::compute::vector&lt;float&gt;</link> vec(4, context);

// copy from the host to the device
boost::compute::copy_n(values, 4, vec.begin(), queue);
</programlisting></para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>copy() </para>
</formalpara>
</para></description></function>





































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.count_8hpp" name="boost/compute/algorithm/count.hpp">
<namespace name="boost">
<namespace name="compute">






























































































<function id="doxygen.header_reference.count_8hpp_1af2554053d7962a380ba3c666b7f5ee69" name="count"><type>size_t</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns the number of occurrences of <computeroutput>value</computeroutput> in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>Space complexity on CPUs: \Omega(1)<sbr/>
 Space complexity on GPUs: \Omega(n)</para><para><formalpara><title>See Also:</title><para>count_if() </para>
</formalpara>
</para></description></function>






































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.count__if_8hpp" name="boost/compute/algorithm/count_if.hpp">
<namespace name="boost">
<namespace name="compute">





























































































<function id="doxygen.header_reference.count__if_8hpp_1a8a60be20fb845aea611fd1a837bbd937" name="count_if"><type>size_t</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="Predicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="predicate"><paramtype>Predicate</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns the number of elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) for which <computeroutput>predicate</computeroutput> returns <computeroutput>true</computeroutput>.</para><para>Space complexity on CPUs: \Omega(1)<sbr/>
 Space complexity on GPUs: \Omega(n) </para></description></function>







































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.equal_8hpp" name="boost/compute/algorithm/equal.hpp">
<namespace name="boost">
<namespace name="compute">



























































































<function id="doxygen.header_reference.equal_8hpp_1a08d28f808d0c5ce00b3e08920da4f790" name="equal"><type>bool</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns <computeroutput>true</computeroutput> if the range [<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>) and the range beginning at <computeroutput>first2</computeroutput> are equal.</para><para>Space complexity: \Omega(1) </para></description></function>
<function id="doxygen.header_reference.equal_8hpp_1a432176ea8eb2ca9be347c3ca06c42af7" name="equal"><type>bool</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype></parameter><parameter name="last2"><paramtype>InputIterator2</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>








































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.equal__range_8hpp" name="boost/compute/algorithm/equal_range.hpp">
<namespace name="boost">
<namespace name="compute">


























































































<function id="doxygen.header_reference.equal__range_8hpp_1a6c02d2ffeb6594bce53949acba4721f3" name="equal_range"><type>std::pair&lt; InputIterator, InputIterator &gt;</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns a pair of iterators containing the range of values equal to <computeroutput>value</computeroutput> in the sorted range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>Space complexity: \Omega(1) </para></description></function>










































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.exclusive__scan_8hpp" name="boost/compute/algorithm/exclusive_scan.hpp">
<namespace name="boost">
<namespace name="compute">























































































<function id="doxygen.header_reference.exclusive__scan_8hpp_1aa864153ed4c9c4edcfb403f8f5f44e75" name="exclusive_scan"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="T"/>
          <template-type-parameter name="BinaryOperator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>first element in the range to scan </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>last element in the range to scan </para></description></parameter><parameter name="result"><paramtype>OutputIterator</paramtype><description><para>first element in the result range </para></description></parameter><parameter name="init"><paramtype>T</paramtype><description><para>value used to initialize the scan sequence </para></description></parameter><parameter name="binary_op"><paramtype>BinaryOperator</paramtype><description><para>associative binary operator </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Performs an exclusive scan of the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) and stores the results in the range beginning at <computeroutput>result</computeroutput>.</para><para>Each element in the output is assigned to the sum of all the previous values in the input.</para><para>

The default operation is to add the elements up.</para><para><programlisting language="c++"/></para><para>But different associative operation can be specified as <computeroutput>binary_op</computeroutput> instead (e.g., multiplication, maximum, minimum). Also value used to initialized the scan sequence can be specified.</para><para><programlisting language="c++"/></para><para>Space complexity on GPUs: \Omega(n)<sbr/>
 Space complexity on GPUs when <computeroutput>first</computeroutput> == <computeroutput>result:</computeroutput> \Omega(2n)<sbr/>
 Space complexity on CPUs: \Omega(1)</para><para><formalpara><title>See Also:</title><para>inclusive_scan() </para>
</formalpara>
</para></description><returns><para><computeroutput>OutputIterator</computeroutput> to the end of the result range</para>
</returns></function>
<function id="doxygen.header_reference.exclusive__scan_8hpp_1a2112d8fae5d1be57902119b5317ba3f7" name="exclusive_scan"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="init"><paramtype>T</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>
<function id="doxygen.header_reference.exclusive__scan_8hpp_1a0dd04e687be7202208aa3f868d6cd444" name="exclusive_scan"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>











































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.fill_8hpp" name="boost/compute/algorithm/fill.hpp">
<namespace name="boost">
<namespace name="compute">





















































































<function id="doxygen.header_reference.fill_8hpp_1a3f65cff268349a42e91a1c20bef00acf" name="fill"><type>void</type><template>
          <template-type-parameter name="BufferIterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>BufferIterator</paramtype><description><para>first element in the range to fill </para></description></parameter><parameter name="last"><paramtype>BufferIterator</paramtype><description><para>last element in the range to fill </para></description></parameter><parameter name="value"><paramtype>const T &amp;</paramtype><description><para>value to copy to each element </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Fills the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) with <computeroutput>value</computeroutput>.</para><para>
For example, to fill a vector on the device with sevens: <programlisting language="c++">// vector on the device
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">boost::compute::vector&lt;int&gt;</link> vec(10, context);

// fill vector with sevens
boost::compute::fill(vec.begin(), vec.end(), 7, queue);
</programlisting></para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>boost::compute::fill_n() </para>
</formalpara>
</para></description></function>
<function id="doxygen.header_reference.fill_8hpp_1a94eb637ba171bcdd1ba54d9c34ebe712" name="fill_async"><type><classname>future</classname>&lt; void &gt;</type><template>
          <template-type-parameter name="BufferIterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>BufferIterator</paramtype></parameter><parameter name="last"><paramtype>BufferIterator</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter></function>














































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.fill__n_8hpp" name="boost/compute/algorithm/fill_n.hpp">
<namespace name="boost">
<namespace name="compute">




















































































<function id="doxygen.header_reference.fill__n_8hpp_1ac90d535b4c85b8b041fe49eb7585cb75" name="fill_n"><type>void</type><template>
          <template-type-parameter name="BufferIterator"/>
          <template-type-parameter name="Size"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>BufferIterator</paramtype></parameter><parameter name="count"><paramtype>Size</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Fills the range [<computeroutput>first</computeroutput>, <computeroutput>first</computeroutput> + count) with <computeroutput>value</computeroutput>.</para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>fill() </para>
</formalpara>
</para></description></function>
















































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.find_8hpp" name="boost/compute/algorithm/find.hpp">
<namespace name="boost">
<namespace name="compute">



















































































<function id="doxygen.header_reference.find_8hpp_1a57ef1b31be06e5f16345a62b223a6bfb" name="find"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns an iterator pointing to the first element in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) that equals <computeroutput>value</computeroutput>.</para><para>Space complexity: \Omega(1) </para></description></function>

















































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.find__end_8hpp" name="boost/compute/algorithm/find_end.hpp">
<namespace name="boost">
<namespace name="compute">


















































































<function id="doxygen.header_reference.find__end_8hpp_1a4a93ecf51f096d718375068b903ffd7c" name="find_end"><type>TextIterator</type><template>
          <template-type-parameter name="TextIterator"/>
          <template-type-parameter name="PatternIterator"/>
        </template><parameter name="t_first"><paramtype>TextIterator</paramtype><description><para>Iterator pointing to start of text </para></description></parameter><parameter name="t_last"><paramtype>TextIterator</paramtype><description><para>Iterator pointing to end of text </para></description></parameter><parameter name="p_first"><paramtype>PatternIterator</paramtype><description><para>Iterator pointing to start of pattern </para></description></parameter><parameter name="p_last"><paramtype>PatternIterator</paramtype><description><para>Iterator pointing to end of pattern </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>Queue on which to execute</para></description></parameter><purpose>Substring matching algorithm. </purpose><description><para>Searches for the last match of the pattern [p_first, p_last) in text [t_first, t_last). 

Space complexity: \Omega(n) </para></description><returns><para>Iterator pointing to beginning of last occurence</para>
</returns></function>


















































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.find__if_8hpp" name="boost/compute/algorithm/find_if.hpp">
<namespace name="boost">
<namespace name="compute">

















































































<function id="doxygen.header_reference.find__if_8hpp_1a9d6c08523a3f2977951f2f181eafff13" name="find_if"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="UnaryPredicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="predicate"><paramtype>UnaryPredicate</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns an iterator pointing to the first element in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) for which <computeroutput>predicate</computeroutput> returns <computeroutput>true</computeroutput>.</para><para>Space complexity: \Omega(1) </para></description></function>



















































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.find__if__not_8hpp" name="boost/compute/algorithm/find_if_not.hpp">
<namespace name="boost">
<namespace name="compute">
















































































<function id="doxygen.header_reference.find__if__not_8hpp_1a46b7e5247b7f748159b4fcadb9084acf" name="find_if_not"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="UnaryPredicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="predicate"><paramtype>UnaryPredicate</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns an iterator pointing to the first element in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) for which <computeroutput>predicate</computeroutput> returns <computeroutput>false</computeroutput>.</para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>find_if() </para>
</formalpara>
</para></description></function>




















































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.for__each_8hpp" name="boost/compute/algorithm/for_each.hpp">
<namespace name="boost">
<namespace name="compute">















































































<function id="doxygen.header_reference.for__each_8hpp_1a00ffdb6623a678b1c46d6e2860bf11d1" name="for_each"><type>UnaryFunction</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="UnaryFunction"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="function"><paramtype>UnaryFunction</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Calls <computeroutput>function</computeroutput> on each element in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>transform() </para>
</formalpara>
</para></description></function>





















































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.for__each__n_8hpp" name="boost/compute/algorithm/for_each_n.hpp">
<namespace name="boost">
<namespace name="compute">














































































<function id="doxygen.header_reference.for__each__n_8hpp_1a56d76a478a0e01e264a6773a10766e3c" name="for_each_n"><type>UnaryFunction</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="Size"/>
          <template-type-parameter name="UnaryFunction"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="count"><paramtype>Size</paramtype></parameter><parameter name="function"><paramtype>UnaryFunction</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Calls <computeroutput>function</computeroutput> on each element in the range [<computeroutput>first</computeroutput>, <computeroutput>first</computeroutput> <computeroutput>+</computeroutput> <computeroutput>count</computeroutput>).</para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>for_each() </para>
</formalpara>
</para></description></function>






















































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.gather_8hpp" name="boost/compute/algorithm/gather.hpp">
<namespace name="boost">
<namespace name="compute">













































































<function id="doxygen.header_reference.gather_8hpp_1a7f5e92517ef3b9bd0cabde7f58607d82" name="gather"><type>void</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="MapIterator"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>MapIterator</paramtype></parameter><parameter name="last"><paramtype>MapIterator</paramtype></parameter><parameter name="input"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Copies the elements using the indices from the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) to the range beginning at <computeroutput>result</computeroutput> using the input values from the range beginning at <computeroutput>input</computeroutput>.</para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>scatter() </para>
</formalpara>
</para></description></function>























































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.generate_8hpp" name="boost/compute/algorithm/generate.hpp">
<namespace name="boost">
<namespace name="compute">












































































<function id="doxygen.header_reference.generate_8hpp_1aadbc79f0e2d1b9b3da0881930c5b1a9b" name="generate"><type>void</type><template>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="Generator"/>
        </template><parameter name="first"><paramtype>OutputIterator</paramtype></parameter><parameter name="last"><paramtype>OutputIterator</paramtype></parameter><parameter name="generator"><paramtype>Generator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Stores the result of <computeroutput>generator</computeroutput> for each element in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>Space complexity: \Omega(1) </para></description></function>
























































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.generate__n_8hpp" name="boost/compute/algorithm/generate_n.hpp">
<namespace name="boost">
<namespace name="compute">











































































<function id="doxygen.header_reference.generate__n_8hpp_1a07037f7a04ef5694171c48602125f235" name="generate_n"><type>void</type><template>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="Size"/>
          <template-type-parameter name="Generator"/>
        </template><parameter name="first"><paramtype>OutputIterator</paramtype></parameter><parameter name="count"><paramtype>Size</paramtype></parameter><parameter name="generator"><paramtype>Generator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Stores the result of <computeroutput>generator</computeroutput> for each element in the range [<computeroutput>first</computeroutput>, <computeroutput>first</computeroutput> + <computeroutput>count</computeroutput>).</para><para>Space complexity: \Omega(1) </para></description></function>

























































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.includes_8hpp" name="boost/compute/algorithm/includes.hpp">
<namespace name="boost">
<namespace name="compute">










































































<function id="doxygen.header_reference.includes_8hpp_1ad7739713f6f4231dccd64e4bb8429a11" name="includes"><type>bool</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype><description><para>Iterator pointing to start of first set </para></description></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype><description><para>Iterator pointing to end of first set </para></description></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype><description><para>Iterator pointing to start of second set </para></description></parameter><parameter name="last2"><paramtype>InputIterator2</paramtype><description><para>Iterator pointing to end of second set </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>Queue on which to execute</para></description></parameter><purpose>Includes algorithm. </purpose><description><para>Finds if the sorted range [first1, last1) includes the sorted range [first2, last2). In other words, it checks if [first1, last1) is a superset of [first2, last2).</para><para>

Space complexity: \Omega(distance(<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>) + distance(<computeroutput>first2</computeroutput>, <computeroutput>last2</computeroutput>)) </para></description><returns><para>True, if [first1, last1) includes [first2, last2). False otherwise.</para>
</returns></function>


























































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.inclusive__scan_8hpp" name="boost/compute/algorithm/inclusive_scan.hpp">
<namespace name="boost">
<namespace name="compute">








































































<function id="doxygen.header_reference.inclusive__scan_8hpp_1a12f2cddf1fe5e412c0ec3f4116cbc43c" name="inclusive_scan"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="BinaryOperator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>first element in the range to scan </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>last element in the range to scan </para></description></parameter><parameter name="result"><paramtype>OutputIterator</paramtype><description><para>first element in the result range </para></description></parameter><parameter name="binary_op"><paramtype>BinaryOperator</paramtype><description><para>associative binary operator </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Performs an inclusive scan of the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) and stores the results in the range beginning at <computeroutput>result</computeroutput>.</para><para>Each element in the output is assigned to the sum of the current value in the input with the sum of every previous value in the input.</para><para>

The default operation is to add the elements up.</para><para><programlisting language="c++"/></para><para>But different associative operation can be specified as <computeroutput>binary_op</computeroutput> instead (e.g., multiplication, maximum, minimum).</para><para><programlisting language="c++"/></para><para>Space complexity on GPUs: \Omega(n)<sbr/>
 Space complexity on GPUs when <computeroutput>first</computeroutput> == <computeroutput>result:</computeroutput> \Omega(2n)<sbr/>
 Space complexity on CPUs: \Omega(1)</para><para><formalpara><title>See Also:</title><para>exclusive_scan() </para>
</formalpara>
</para></description><returns><para><computeroutput>OutputIterator</computeroutput> to the end of the result range</para>
</returns></function>
<function id="doxygen.header_reference.inclusive__scan_8hpp_1adaf8a7d55516ee60129589ecc143e699" name="inclusive_scan"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>



























































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.inner__product_8hpp" name="boost/compute/algorithm/inner_product.hpp">
<namespace name="boost">
<namespace name="compute">






































































<function id="doxygen.header_reference.inner__product_8hpp_1a15d2156c21d55e9906415a49daba5353" name="inner_product"><type>T</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype></parameter><parameter name="init"><paramtype>T</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns the inner product of the elements in the range [<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>) with the elements in the range beginning at <computeroutput>first2</computeroutput>.</para><para>Space complexity: \Omega(1)<sbr/>
 Space complexity when binary operator is recognized as associative: \Omega(n) </para></description></function>
<function id="doxygen.header_reference.inner__product_8hpp_1a22e7ed20979d301de8156ecd8271ad31" name="inner_product"><type>T</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
          <template-type-parameter name="T"/>
          <template-type-parameter name="BinaryAccumulateFunction"/>
          <template-type-parameter name="BinaryTransformFunction"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype></parameter><parameter name="init"><paramtype>T</paramtype></parameter><parameter name="accumulate_function"><paramtype>BinaryAccumulateFunction</paramtype></parameter><parameter name="transform_function"><paramtype>BinaryTransformFunction</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>





























































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.inplace__merge_8hpp" name="boost/compute/algorithm/inplace_merge.hpp">
<namespace name="boost">
<namespace name="compute">





































































<function id="doxygen.header_reference.inplace__merge_8hpp_1a894286393ed02fcb2a86d83c196e5a71" name="inplace_merge"><type>void</type><template>
          <template-type-parameter name="Iterator"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype></parameter><parameter name="middle"><paramtype>Iterator</paramtype></parameter><parameter name="last"><paramtype>Iterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Merges the sorted values in the range [<computeroutput>first</computeroutput>, <computeroutput>middle</computeroutput>) with the sorted values in the range [<computeroutput>middle</computeroutput>, <computeroutput>last</computeroutput>) in-place.</para><para>Space complexity: \Omega(n) </para></description></function>































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.iota_8hpp" name="boost/compute/algorithm/iota.hpp">
<namespace name="boost">
<namespace name="compute">




































































<function id="doxygen.header_reference.iota_8hpp_1ad6aa9ce0623e274eca26f8724d53ef85" name="iota"><type>void</type><template>
          <template-type-parameter name="BufferIterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>BufferIterator</paramtype></parameter><parameter name="last"><paramtype>BufferIterator</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Fills the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) with sequential values starting at <computeroutput>value</computeroutput>.</para><para>For example, the following code: <programlisting language="c++"/></para><para>Will fill <computeroutput>vec</computeroutput> with the values (<computeroutput>0</computeroutput>, <computeroutput>1</computeroutput>, <computeroutput>2</computeroutput>, <computeroutput/>...).</para><para>Space complexity: \Omega(1) </para></description></function>
































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.is__partitioned_8hpp" name="boost/compute/algorithm/is_partitioned.hpp">
<namespace name="boost">
<namespace name="compute">



































































<function id="doxygen.header_reference.is__partitioned_8hpp_1a667cba16ba05460af19e90d8161fba2e" name="is_partitioned"><type>bool</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="UnaryPredicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="predicate"><paramtype>UnaryPredicate</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns <computeroutput>true</computeroutput> if the values in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) are partitioned according to <computeroutput>predicate</computeroutput>.</para><para>Space complexity: \Omega(1) </para></description></function>

































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.is__permutation_8hpp" name="boost/compute/algorithm/is_permutation.hpp">
<namespace name="boost">
<namespace name="compute">


































































<function id="doxygen.header_reference.is__permutation_8hpp_1a7d9521a9410ec0f8a3263a0779ffa7ae" name="is_permutation"><type>bool</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype><description><para>Iterator pointing to start of first range </para></description></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype><description><para>Iterator pointing to end of first range </para></description></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype><description><para>Iterator pointing to start of second range </para></description></parameter><parameter name="last2"><paramtype>InputIterator2</paramtype><description><para>Iterator pointing to end of second range </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>Queue on which to execute</para></description></parameter><purpose>Permutation checking algorithm. </purpose><description><para>Checks if the range [first1, last1) can be permuted into the range [first2, last2) 

Space complexity: \Omega(distance(<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>) + distance(<computeroutput>first2</computeroutput>, <computeroutput>last2</computeroutput>)) </para></description><returns><para>True, if it can be permuted. False, otherwise.</para>
</returns></function>


































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.is__sorted_8hpp" name="boost/compute/algorithm/is_sorted.hpp">
<namespace name="boost">
<namespace name="compute">
































































<function id="doxygen.header_reference.is__sorted_8hpp_1ab63981159cb643bd91d04619fd9401fa" name="is_sorted"><type>bool</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="Compare"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>first element in the range to check </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>last element in the range to check </para></description></parameter><parameter name="compare"><paramtype>Compare</paramtype><description><para>comparison function (by default <computeroutput>less</computeroutput>) </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Returns <computeroutput>true</computeroutput> if the values in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) are in sorted order.</para><para>

Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>sort() </para>
</formalpara>
</para></description><returns><para><computeroutput>true</computeroutput> if the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) is sorted</para>
</returns></function>
<function id="doxygen.header_reference.is__sorted_8hpp_1a08964baaa070d2a59aace80ef5f418de" name="is_sorted"><type>bool</type><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>



































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.lexicographical__compare_8hpp" name="boost/compute/algorithm/lexicographical_compare.hpp">
<namespace name="boost">
<namespace name="compute">































































<function id="doxygen.header_reference.lexicographical__compare_8hpp_1a37afb284ae47d200ad45b1cfe1391dc7" name="lexicographical_compare"><type>bool</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype></parameter><parameter name="last2"><paramtype>InputIterator2</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Checks if the first range [first1, last1) is lexicographically less than the second range [first2, last2).</para><para>Space complexity: \Omega(max(distance(<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>), distance(<computeroutput>first2</computeroutput>, <computeroutput>last2</computeroutput>))) </para></description></function>





































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.lower__bound_8hpp" name="boost/compute/algorithm/lower_bound.hpp">
<namespace name="boost">
<namespace name="compute">






























































<function id="doxygen.header_reference.lower__bound_8hpp_1a6bd4076a1fd2a3eb4548ec4a507288d3" name="lower_bound"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns an iterator pointing to the first element in the sorted range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) that is not less than <computeroutput>value</computeroutput>.</para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>upper_bound() </para>
</formalpara>
</para></description></function>






































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.max__element_8hpp" name="boost/compute/algorithm/max_element.hpp">
<namespace name="boost">
<namespace name="compute">




























































<function id="doxygen.header_reference.max__element_8hpp_1a9d1b082ad4f6853e235652cba7090bce" name="max_element"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="Compare"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>first element in the input range </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>last element in the input range </para></description></parameter><parameter name="compare"><paramtype>Compare</paramtype><description><para>comparison function object which returns true if the first argument is less than (i.e. is ordered before) the second. </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Returns an iterator pointing to the element in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) with the maximum value.</para><para>
For example, to find <computeroutput>int2</computeroutput> value with maximum first component in given vector: <programlisting language="c++">// comparison function object
BOOST_COMPUTE_FUNCTION(bool, compare_first, (const int2_ &amp;a, const int2_ &amp;b),
{
    return a.x &lt; b.x;
});

// create vector
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">boost::compute::vector&lt;uint2_&gt;</link> data = ...

boost::compute::vector&lt;uint2_&gt;::iterator max =
    boost::compute::max_element(data.begin(), data.end(), compare_first, queue);
</programlisting></para><para>Space complexity on CPUs: \Omega(1)<sbr/>
 Space complexity on GPUs: \Omega(N)</para><para><formalpara><title>See Also:</title><para>min_element() </para>
</formalpara>
</para></description></function>
<function id="doxygen.header_reference.max__element_8hpp_1a89ab50246c660cedcab6525681f1f3f3" name="max_element"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>







































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.merge_8hpp" name="boost/compute/algorithm/merge.hpp">
<namespace name="boost">
<namespace name="compute">


























































<function id="doxygen.header_reference.merge_8hpp_1a8e552078f95a5d198467b7b4d32d5875" name="merge"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="Compare"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype><description><para>first element in the first range to merge </para></description></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype><description><para>last element in the first range to merge </para></description></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype><description><para>first element in the second range to merge </para></description></parameter><parameter name="last2"><paramtype>InputIterator2</paramtype><description><para>last element in the second range to merge </para></description></parameter><parameter name="result"><paramtype>OutputIterator</paramtype><description><para>first element in the result range </para></description></parameter><parameter name="comp"><paramtype>Compare</paramtype><description><para>comparison function (by default <computeroutput>less</computeroutput>) </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Merges the sorted values in the range [<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>) with the sorted values in the range [<computeroutput>first2</computeroutput>, last2) and stores the result in the range beginning at <computeroutput>result</computeroutput>. Values are compared using the <computeroutput>comp</computeroutput> function. If no comparision function is given, <computeroutput>less</computeroutput> is used.</para><para>

Space complexity: \Omega(distance(<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>) + distance(<computeroutput>first2</computeroutput>, <computeroutput>last2</computeroutput>))</para><para><formalpara><title>See Also:</title><para>inplace_merge() </para>
</formalpara>
</para></description><returns><para><computeroutput>OutputIterator</computeroutput> to the end of the result range</para>
</returns></function>
<function id="doxygen.header_reference.merge_8hpp_1a4a17c18ce6cb3769c661a861cf503c3a" name="merge"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype></parameter><parameter name="last2"><paramtype>InputIterator2</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>









































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.min__element_8hpp" name="boost/compute/algorithm/min_element.hpp">
<namespace name="boost">
<namespace name="compute">
























































<function id="doxygen.header_reference.min__element_8hpp_1accfe8bec869734d5abe5500b5ceefc20" name="min_element"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="Compare"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>first element in the input range </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>last element in the input range </para></description></parameter><parameter name="compare"><paramtype>Compare</paramtype><description><para>comparison function object which returns true if the first argument is less than (i.e. is ordered before) the second. </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Returns an iterator pointing to the element in range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) with the minimum value.</para><para>
For example, to find <computeroutput>int2</computeroutput> value with minimum first component in given vector: <programlisting language="c++">// comparison function object
BOOST_COMPUTE_FUNCTION(bool, compare_first, (const int2_ &amp;a, const int2_ &amp;b),
{
    return a.x &lt; b.x;
});

// create vector
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">boost::compute::vector&lt;uint2_&gt;</link> data = ...

boost::compute::vector&lt;uint2_&gt;::iterator min =
    boost::compute::min_element(data.begin(), data.end(), compare_first, queue);
</programlisting></para><para>Space complexity on CPUs: \Omega(1)<sbr/>
 Space complexity on GPUs: \Omega(N)</para><para><formalpara><title>See Also:</title><para>max_element() </para>
</formalpara>
</para></description></function>
<function id="doxygen.header_reference.min__element_8hpp_1aadbec6caf84444a220f1befc1cb1c558" name="min_element"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>











































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.minmax__element_8hpp" name="boost/compute/algorithm/minmax_element.hpp">
<namespace name="boost">
<namespace name="compute">






















































<function id="doxygen.header_reference.minmax__element_8hpp_1ac7f882bd816506c8ee396e6721d4c524" name="minmax_element"><type>std::pair&lt; InputIterator, InputIterator &gt;</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="Compare"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>first element in the input range </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>last element in the input range </para></description></parameter><parameter name="compare"><paramtype>Compare</paramtype><description><para>comparison function object which returns true if the first argument is less than (i.e. is ordered before) the second. </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Returns a pair of iterators with the first pointing to the minimum element and the second pointing to the maximum element in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>
Space complexity on CPUs: \Omega(1)<sbr/>
 Space complexity on GPUs: \Omega(N)</para><para><formalpara><title>See Also:</title><para>max_element(), min_element() </para>
</formalpara>
</para></description></function>
<function id="doxygen.header_reference.minmax__element_8hpp_1a9c79e328727dd207f5d564401275571b" name="minmax_element"><type>std::pair&lt; InputIterator, InputIterator &gt;</type><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>













































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.mismatch_8hpp" name="boost/compute/algorithm/mismatch.hpp">
<namespace name="boost">
<namespace name="compute">




















































<function id="doxygen.header_reference.mismatch_8hpp_1a50f080f63d11e8d82db94843dbc19010" name="mismatch"><type>std::pair&lt; InputIterator1, InputIterator2 &gt;</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns a pair of iterators pointing to the first position where the range [<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>) and the range starting at <computeroutput>first2</computeroutput> differ.</para><para>Space complexity: \Omega(1) </para></description></function>
<function id="doxygen.header_reference.mismatch_8hpp_1ac469971484e6214c4953c8049d807ed1" name="mismatch"><type>std::pair&lt; InputIterator1, InputIterator2 &gt;</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype></parameter><parameter name="last2"><paramtype>InputIterator2</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>















































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.next__permutation_8hpp" name="boost/compute/algorithm/next_permutation.hpp">
<namespace name="boost">
<namespace name="compute">



















































<function id="doxygen.header_reference.next__permutation_8hpp_1a071d702963232035522ed2c34dbf6645" name="next_permutation"><type>bool</type><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>Iterator pointing to start of range </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>Iterator pointing to end of range </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>Queue on which to execute</para></description></parameter><purpose>Permutation generating algorithm. </purpose><description><para>Transforms the range [first, last) into the next permutation from the set of all permutations arranged in lexicographic order 

Space complexity: \Omega(1) </para></description><returns><para>Boolean value signifying if the last permutation was crossed and the range was reset</para>
</returns></function>

















































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.none__of_8hpp" name="boost/compute/algorithm/none_of.hpp">
<namespace name="boost">
<namespace name="compute">


















































<function id="doxygen.header_reference.none__of_8hpp_1a55b9ac5abcb50e47a0933a4bf346c448" name="none_of"><type>bool</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="UnaryPredicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="predicate"><paramtype>UnaryPredicate</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns <computeroutput>true</computeroutput> if <computeroutput>predicate</computeroutput> returns <computeroutput>true</computeroutput> for none of the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>all_of(), any_of() </para>
</formalpara>
</para></description></function>


















































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.nth__element_8hpp" name="boost/compute/algorithm/nth_element.hpp">
<namespace name="boost">
<namespace name="compute">
















































<function id="doxygen.header_reference.nth__element_8hpp_1a6861ea49ea5694cd21cb2e5d63ef0d07" name="nth_element"><type>void</type><template>
          <template-type-parameter name="Iterator"/>
          <template-type-parameter name="Compare"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype></parameter><parameter name="nth"><paramtype>Iterator</paramtype></parameter><parameter name="last"><paramtype>Iterator</paramtype></parameter><parameter name="compare"><paramtype>Compare</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Rearranges the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) such that the <computeroutput>nth</computeroutput> element would be in that position in a sorted sequence.</para><para>Space complexity: \Omega(3n) </para></description></function>
<function id="doxygen.header_reference.nth__element_8hpp_1a306adf9854953137f6ace171ca841cd4" name="nth_element"><type>void</type><template>
          <template-type-parameter name="Iterator"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype></parameter><parameter name="nth"><paramtype>Iterator</paramtype></parameter><parameter name="last"><paramtype>Iterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>



















































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.partial__sum_8hpp" name="boost/compute/algorithm/partial_sum.hpp">
<namespace name="boost">
<namespace name="compute">















































<function id="doxygen.header_reference.partial__sum_8hpp_1a21d064ba45314e4f8d697866b1ef9ce4" name="partial_sum"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Calculates the cumulative sum of the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) and writes the resulting values to the range beginning at <computeroutput>result</computeroutput>.</para><para>Space complexity on GPUs: \Omega(n)<sbr/>
 Space complexity on GPUs when <computeroutput>first</computeroutput> == <computeroutput>result:</computeroutput> \Omega(2n)<sbr/>
 Space complexity on CPUs: \Omega(1) </para></description></function>





















































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.partition_8hpp" name="boost/compute/algorithm/partition.hpp">
<namespace name="boost">
<namespace name="compute">














































<function id="doxygen.header_reference.partition_8hpp_1a3793f6164e671837f57b41e311141b9a" name="partition"><type>Iterator</type><template>
          <template-type-parameter name="Iterator"/>
          <template-type-parameter name="UnaryPredicate"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype></parameter><parameter name="last"><paramtype>Iterator</paramtype></parameter><parameter name="predicate"><paramtype>UnaryPredicate</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Partitions the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) according to <computeroutput>predicate</computeroutput>. Order of the elements need not be preserved.</para><para>Space complexity: \Omega(3n)</para><para><formalpara><title>See Also:</title><para>is_partitioned() and stable_partition() </para>
</formalpara>
</para></description></function>






















































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.partition__copy_8hpp" name="boost/compute/algorithm/partition_copy.hpp">
<namespace name="boost">
<namespace name="compute">













































<function id="doxygen.header_reference.partition__copy_8hpp_1a0101e55a18b2c32bd1b8910efbf49624" name="partition_copy"><type>std::pair&lt; OutputIterator1, OutputIterator2 &gt;</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator1"/>
          <template-type-parameter name="OutputIterator2"/>
          <template-type-parameter name="UnaryPredicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="first_true"><paramtype>OutputIterator1</paramtype></parameter><parameter name="first_false"><paramtype>OutputIterator2</paramtype></parameter><parameter name="predicate"><paramtype>UnaryPredicate</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Copies all of the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) for which <computeroutput>predicate</computeroutput> returns <computeroutput>true</computeroutput> to the range beginning at <computeroutput>first_true</computeroutput> and all of the elements for which <computeroutput>predicate</computeroutput> returns <computeroutput>false</computeroutput> to the range beginning at <computeroutput>first_false</computeroutput>.</para><para>Space complexity: \Omega(2n)</para><para><formalpara><title>See Also:</title><para>partition() </para>
</formalpara>
</para></description></function>























































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.partition__point_8hpp" name="boost/compute/algorithm/partition_point.hpp">
<namespace name="boost">
<namespace name="compute">












































<function id="doxygen.header_reference.partition__point_8hpp_1ad7b6b16bb658a587c2dae8792ac6e9b9" name="partition_point"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="UnaryPredicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>Iterator pointing to start of range </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>Iterator pointing to end of range </para></description></parameter><parameter name="predicate"><paramtype>UnaryPredicate</paramtype><description><para>Unary predicate to be applied on each element </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>Queue on which to execute</para></description></parameter><purpose>Partition point algorithm. </purpose><description><para>Finds the end of true values in the partitioned range [first, last) 

Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>partition() and stable_partition() </para>
</formalpara>
</para></description><returns><para>Iterator pointing to end of true values</para>
</returns></function>
























































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.prev__permutation_8hpp" name="boost/compute/algorithm/prev_permutation.hpp">
<namespace name="boost">
<namespace name="compute">











































<function id="doxygen.header_reference.prev__permutation_8hpp_1aa4f4a149370fd87c7138c6e993a34155" name="prev_permutation"><type>bool</type><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>Iterator pointing to start of range </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>Iterator pointing to end of range </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>Queue on which to execute</para></description></parameter><purpose>Permutation generating algorithm. </purpose><description><para>Transforms the range [first, last) into the previous permutation from the set of all permutations arranged in lexicographic order 

Space complexity: \Omega(1) </para></description><returns><para>Boolean value signifying if the first permutation was crossed and the range was reset</para>
</returns></function>

























































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.random__shuffle_8hpp" name="boost/compute/algorithm/random_shuffle.hpp">
<namespace name="boost">
<namespace name="compute">










































<function id="doxygen.header_reference.random__shuffle_8hpp_1a1ffd2828211b3c463f003ddc52ae2bcc" name="random_shuffle"><type>void</type><template>
          <template-type-parameter name="Iterator"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype></parameter><parameter name="last"><paramtype>Iterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Randomly shuffles the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>Space complexity: \Omega(2n)</para><para><formalpara><title>See Also:</title><para>scatter() </para>
</formalpara>
</para></description></function>


























































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.reduce_8hpp" name="boost/compute/algorithm/reduce.hpp">
<namespace name="boost">
<namespace name="compute">








































<function id="doxygen.header_reference.reduce_8hpp_1a3f99b1ea3d3cb8bdaffa14a7d1ddd1ed" name="reduce"><type>void</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="BinaryFunction"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>first element in the input range </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>last element in the input range </para></description></parameter><parameter name="result"><paramtype>OutputIterator</paramtype><description><para>iterator pointing to the output </para></description></parameter><parameter name="function"><paramtype>BinaryFunction</paramtype><description><para>binary reduction function </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Returns the result of applying <computeroutput>function</computeroutput> to the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>If no function is specified, <computeroutput>plus</computeroutput> will be used.</para><para>
The <computeroutput>reduce()</computeroutput> algorithm assumes that the binary reduction function is associative. When used with non-associative functions the result may be non-deterministic and vary in precision. Notably this affects the <computeroutput>plus&lt;float&gt;()</computeroutput> function as floating-point addition is not associative and may produce slightly different results than a serial algorithm.</para><para>This algorithm supports both host and device iterators for the result argument. This allows for values to be reduced and copied to the host all with a single function call.</para><para>For example, to calculate the sum of the values in a device vector and copy the result to a value on the host:</para><para><programlisting language="c++"/></para><para>Note that while the the <computeroutput>reduce()</computeroutput> algorithm is conceptually identical to the <computeroutput>accumulate()</computeroutput> algorithm, its implementation is substantially more efficient on parallel hardware. For more information, see the documentation on the <computeroutput>accumulate()</computeroutput> algorithm.</para><para>Space complexity on GPUs: \Omega(n)<sbr/>
 Space complexity on CPUs: \Omega(1)</para><para><formalpara><title>See Also:</title><para>accumulate() </para>
</formalpara>
</para></description></function>
<function id="doxygen.header_reference.reduce_8hpp_1a8ec8000ddfd0a8ff8f3c7c9c9bc02549" name="reduce"><type>void</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>



























































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.reduce__by__key_8hpp" name="boost/compute/algorithm/reduce_by_key.hpp">
<namespace name="boost">
<namespace name="compute">





































<function id="doxygen.header_reference.reduce__by__key_8hpp_1a0bb11fb30f21baa95bedd3f3adedcd11" name="reduce_by_key"><type>std::pair&lt; OutputKeyIterator, OutputValueIterator &gt;</type><template>
          <template-type-parameter name="InputKeyIterator"/>
          <template-type-parameter name="InputValueIterator"/>
          <template-type-parameter name="OutputKeyIterator"/>
          <template-type-parameter name="OutputValueIterator"/>
          <template-type-parameter name="BinaryFunction"/>
          <template-type-parameter name="BinaryPredicate"/>
        </template><parameter name="keys_first"><paramtype>InputKeyIterator</paramtype><description><para>the first key </para></description></parameter><parameter name="keys_last"><paramtype>InputKeyIterator</paramtype><description><para>the last key </para></description></parameter><parameter name="values_first"><paramtype>InputValueIterator</paramtype><description><para>the first input value </para></description></parameter><parameter name="keys_result"><paramtype>OutputKeyIterator</paramtype><description><para>iterator pointing to the key output </para></description></parameter><parameter name="values_result"><paramtype>OutputValueIterator</paramtype><description><para>iterator pointing to the reduced value output </para></description></parameter><parameter name="function"><paramtype>BinaryFunction</paramtype><description><para>binary reduction function </para></description></parameter><parameter name="predicate"><paramtype>BinaryPredicate</paramtype><description><para>binary predicate which returns true only if two keys are equal </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>The <computeroutput>reduce_by_key()</computeroutput> algorithm performs reduction for each contiguous subsequence of values determinate by equivalent keys.</para><para>Returns a pair of iterators at the end of the ranges [<computeroutput>keys_result</computeroutput>, keys_result_last) and [<computeroutput>values_result</computeroutput>, <computeroutput>values_result_last</computeroutput>).</para><para>If no function is specified, <computeroutput>plus</computeroutput> will be used. If no predicate is specified, <computeroutput>equal_to</computeroutput> will be used.</para><para>
The <computeroutput>reduce_by_key()</computeroutput> algorithm assumes that the binary reduction function is associative. When used with non-associative functions the result may be non-deterministic and vary in precision. Notably this affects the <computeroutput>plus&lt;float&gt;()</computeroutput> function as floating-point addition is not associative and may produce slightly different results than a serial algorithm.</para><para>For example, to calculate the sum of the values for each key:</para><para><programlisting language="c++"/></para><para>Space complexity on GPUs: \Omega(2n)<sbr/>
 Space complexity on CPUs: \Omega(1)</para><para><formalpara><title>See Also:</title><para>reduce() </para>
</formalpara>
</para></description></function>
<function id="doxygen.header_reference.reduce__by__key_8hpp_1aabfc70addb50ff092a49b102ce0f5813" name="reduce_by_key"><type>std::pair&lt; OutputKeyIterator, OutputValueIterator &gt;</type><template>
          <template-type-parameter name="InputKeyIterator"/>
          <template-type-parameter name="InputValueIterator"/>
          <template-type-parameter name="OutputKeyIterator"/>
          <template-type-parameter name="OutputValueIterator"/>
          <template-type-parameter name="BinaryFunction"/>
        </template><parameter name="keys_first"><paramtype>InputKeyIterator</paramtype></parameter><parameter name="keys_last"><paramtype>InputKeyIterator</paramtype></parameter><parameter name="values_first"><paramtype>InputValueIterator</paramtype></parameter><parameter name="keys_result"><paramtype>OutputKeyIterator</paramtype></parameter><parameter name="values_result"><paramtype>OutputValueIterator</paramtype></parameter><parameter name="function"><paramtype>BinaryFunction</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>
<function id="doxygen.header_reference.reduce__by__key_8hpp_1a636fc898296d348913ddf017893000d8" name="reduce_by_key"><type>std::pair&lt; OutputKeyIterator, OutputValueIterator &gt;</type><template>
          <template-type-parameter name="InputKeyIterator"/>
          <template-type-parameter name="InputValueIterator"/>
          <template-type-parameter name="OutputKeyIterator"/>
          <template-type-parameter name="OutputValueIterator"/>
        </template><parameter name="keys_first"><paramtype>InputKeyIterator</paramtype></parameter><parameter name="keys_last"><paramtype>InputKeyIterator</paramtype></parameter><parameter name="values_first"><paramtype>InputValueIterator</paramtype></parameter><parameter name="keys_result"><paramtype>OutputKeyIterator</paramtype></parameter><parameter name="values_result"><paramtype>OutputValueIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>





























































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.remove_8hpp" name="boost/compute/algorithm/remove.hpp">
<namespace name="boost">
<namespace name="compute">




































<function id="doxygen.header_reference.remove_8hpp_1a96445b689e9dc9c7340c5a7b3911ade4" name="remove"><type>Iterator</type><template>
          <template-type-parameter name="Iterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype></parameter><parameter name="last"><paramtype>Iterator</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Removes each element equal to <computeroutput>value</computeroutput> in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>Space complexity: \Omega(3n)</para><para><formalpara><title>See Also:</title><para>remove_if() </para>
</formalpara>
</para></description></function>
































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.remove__if_8hpp" name="boost/compute/algorithm/remove_if.hpp">
<namespace name="boost">
<namespace name="compute">



































<function id="doxygen.header_reference.remove__if_8hpp_1ae704f8a26f912a64b22ff5175c38de0b" name="remove_if"><type>Iterator</type><template>
          <template-type-parameter name="Iterator"/>
          <template-type-parameter name="Predicate"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype></parameter><parameter name="last"><paramtype>Iterator</paramtype></parameter><parameter name="predicate"><paramtype>Predicate</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Removes each element for which <computeroutput>predicate</computeroutput> returns <computeroutput>true</computeroutput> in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>Space complexity: \Omega(3n)</para><para><formalpara><title>See Also:</title><para>remove() </para>
</formalpara>
</para></description></function>

































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.replace_8hpp" name="boost/compute/algorithm/replace.hpp">
<namespace name="boost">
<namespace name="compute">


































<function id="doxygen.header_reference.replace_8hpp_1aa94ee40a350eeec996c5a97394ac8a95" name="replace"><type>void</type><template>
          <template-type-parameter name="Iterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype></parameter><parameter name="last"><paramtype>Iterator</paramtype></parameter><parameter name="old_value"><paramtype>const T &amp;</paramtype></parameter><parameter name="new_value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Replaces each instance of <computeroutput>old_value</computeroutput> in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) with <computeroutput>new_value</computeroutput>.</para><para>Space complexity: \Omega(1) </para></description></function>


































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.replace__copy_8hpp" name="boost/compute/algorithm/replace_copy.hpp">
<namespace name="boost">
<namespace name="compute">

































<function id="doxygen.header_reference.replace__copy_8hpp_1adbbfe8901ba7cc6daed043e7eecba8b5" name="replace_copy"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="old_value"><paramtype>const T &amp;</paramtype></parameter><parameter name="new_value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Copies the value in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) to the range beginning at <computeroutput>result</computeroutput> while replacing each instance of <computeroutput>old_value</computeroutput> with <computeroutput>new_value</computeroutput>.</para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>replace() </para>
</formalpara>
</para></description></function>



































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.reverse_8hpp" name="boost/compute/algorithm/reverse.hpp">
<namespace name="boost">
<namespace name="compute">
































<function id="doxygen.header_reference.reverse_8hpp_1a83b401f36a249c53da580fd37513dc47" name="reverse"><type>void</type><template>
          <template-type-parameter name="Iterator"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype></parameter><parameter name="last"><paramtype>Iterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Reverses the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>).</para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>reverse_copy() </para>
</formalpara>
</para></description></function>




































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.reverse__copy_8hpp" name="boost/compute/algorithm/reverse_copy.hpp">
<namespace name="boost">
<namespace name="compute">































<function id="doxygen.header_reference.reverse__copy_8hpp_1ad45bd4807df69e4f38f9f6546a958746" name="reverse_copy"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Copies the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) in reversed order to the range beginning at <computeroutput>result</computeroutput>.</para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>reverse() </para>
</formalpara>
</para></description></function>





































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.rotate_8hpp" name="boost/compute/algorithm/rotate.hpp">
<namespace name="boost">
<namespace name="compute">






























<function id="doxygen.header_reference.rotate_8hpp_1a02e797d6f5d0fafcc0069deb16d47c47" name="rotate"><type>void</type><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="n_first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Performs left rotation such that element at <computeroutput>n_first</computeroutput> comes to the beginning.</para><para>Space complexity: \Omega(distance(<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>))</para><para><formalpara><title>See Also:</title><para>rotate_copy() </para>
</formalpara>
</para></description></function>






































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.rotate__copy_8hpp" name="boost/compute/algorithm/rotate_copy.hpp">
<namespace name="boost">
<namespace name="compute">





























<function id="doxygen.header_reference.rotate__copy_8hpp_1aaff8396906ad6783268fd6ffb3fe559c" name="rotate_copy"><type>void</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="n_first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Performs left rotation such that element at n_first comes to the beginning and the output is stored in range starting at result.</para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>rotate() </para>
</formalpara>
</para></description></function>







































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.scatter_8hpp" name="boost/compute/algorithm/scatter.hpp">
<namespace name="boost">
<namespace name="compute">




























<function id="doxygen.header_reference.scatter_8hpp_1a2af7f3a943f0cd7ff70cad42b5012aa4" name="scatter"><type>void</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="MapIterator"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="map"><paramtype>MapIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Copies the elements from the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) to the range beginning at <computeroutput>result</computeroutput> using the output indices from the range beginning at <computeroutput>map</computeroutput>.</para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>gather() </para>
</formalpara>
</para></description></function>








































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.scatter__if_8hpp" name="boost/compute/algorithm/scatter_if.hpp">
<namespace name="boost">
<namespace name="compute">


























<function id="doxygen.header_reference.scatter__if_8hpp_1a4c9588f38ff8a906c5caf0ccc66411aa" name="scatter_if"><type>void</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="MapIterator"/>
          <template-type-parameter name="StencilIterator"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="Predicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="map"><paramtype>MapIterator</paramtype></parameter><parameter name="stencil"><paramtype>StencilIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="predicate"><paramtype>Predicate</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Copies the elements from the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) to the range beginning at <computeroutput>result</computeroutput> using the output indices from the range beginning at <computeroutput>map</computeroutput> if stencil is resolved to true. By default the predicate is an identity</para><para>Space complexity: \Omega(1) </para></description></function>
<function id="doxygen.header_reference.scatter__if_8hpp_1a71479afd4c2f11e11f51054fecb40b4a" name="scatter_if"><type>void</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="MapIterator"/>
          <template-type-parameter name="StencilIterator"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="map"><paramtype>MapIterator</paramtype></parameter><parameter name="stencil"><paramtype>StencilIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter></function>









































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.search_8hpp" name="boost/compute/algorithm/search.hpp">
<namespace name="boost">
<namespace name="compute">

























<function id="doxygen.header_reference.search_8hpp_1a55afa8291c06c01f7ee99482392eb9bf" name="search"><type>TextIterator</type><template>
          <template-type-parameter name="TextIterator"/>
          <template-type-parameter name="PatternIterator"/>
        </template><parameter name="t_first"><paramtype>TextIterator</paramtype><description><para>Iterator pointing to start of text </para></description></parameter><parameter name="t_last"><paramtype>TextIterator</paramtype><description><para>Iterator pointing to end of text </para></description></parameter><parameter name="p_first"><paramtype>PatternIterator</paramtype><description><para>Iterator pointing to start of pattern </para></description></parameter><parameter name="p_last"><paramtype>PatternIterator</paramtype><description><para>Iterator pointing to end of pattern </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>Queue on which to execute</para></description></parameter><purpose>Substring matching algorithm. </purpose><description><para>Searches for the first match of the pattern [p_first, p_last) in text [t_first, t_last). 

Space complexity: \Omega(distance(<computeroutput>t_first</computeroutput>, <computeroutput>t_last</computeroutput>)) </para></description><returns><para>Iterator pointing to beginning of first occurrence</para>
</returns></function>











































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.search__n_8hpp" name="boost/compute/algorithm/search_n.hpp">
<namespace name="boost">
<namespace name="compute">
























<function id="doxygen.header_reference.search__n_8hpp_1a52d154b9aad8f61486d3d5c54219a9a5" name="search_n"><type>TextIterator</type><template>
          <template-type-parameter name="TextIterator"/>
          <template-type-parameter name="ValueType"/>
        </template><parameter name="t_first"><paramtype>TextIterator</paramtype><description><para>Iterator pointing to start of text </para></description></parameter><parameter name="t_last"><paramtype>TextIterator</paramtype><description><para>Iterator pointing to end of text </para></description></parameter><parameter name="n"><paramtype>size_t</paramtype><description><para>Number of times value repeats </para></description></parameter><parameter name="value"><paramtype>ValueType</paramtype><description><para>Value which repeats </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>Queue on which to execute</para></description></parameter><purpose>Substring matching algorithm. </purpose><description><para>Searches for the first occurrence of n consecutive occurrences of value in text [t_first, t_last). 

Space complexity: \Omega(distance(<computeroutput>t_first</computeroutput>, <computeroutput>t_last</computeroutput>)) </para></description><returns><para>Iterator pointing to beginning of first occurrence</para>
</returns></function>












































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.set__difference_8hpp" name="boost/compute/algorithm/set_difference.hpp">
<namespace name="boost">
<namespace name="compute">























<function id="doxygen.header_reference.set__difference_8hpp_1a0f2cf150eb9d32b928fb55a30089a956" name="set_difference"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype><description><para>Iterator pointing to start of first set </para></description></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype><description><para>Iterator pointing to end of first set </para></description></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype><description><para>Iterator pointing to start of second set </para></description></parameter><parameter name="last2"><paramtype>InputIterator2</paramtype><description><para>Iterator pointing to end of second set </para></description></parameter><parameter name="result"><paramtype>OutputIterator</paramtype><description><para>Iterator pointing to start of range in which the difference will be stored </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>Queue on which to execute</para></description></parameter><purpose>Set difference algorithm. </purpose><description><para>Finds the difference of the sorted range [first2, last2) from the sorted range [first1, last1) and stores it in range starting at result 

Space complexity: \Omega(2(distance(<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>) + distance(<computeroutput>first2</computeroutput>, <computeroutput>last2</computeroutput>))) </para></description><returns><para>Iterator pointing to end of difference</para>
</returns></function>













































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.set__intersection_8hpp" name="boost/compute/algorithm/set_intersection.hpp">
<namespace name="boost">
<namespace name="compute">






















<function id="doxygen.header_reference.set__intersection_8hpp_1a00b88e903abcf745acef7995220a8ddd" name="set_intersection"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype><description><para>Iterator pointing to start of first set </para></description></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype><description><para>Iterator pointing to end of first set </para></description></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype><description><para>Iterator pointing to start of second set </para></description></parameter><parameter name="last2"><paramtype>InputIterator2</paramtype><description><para>Iterator pointing to end of second set </para></description></parameter><parameter name="result"><paramtype>OutputIterator</paramtype><description><para>Iterator pointing to start of range in which the intersection will be stored </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>Queue on which to execute</para></description></parameter><purpose>Set intersection algorithm. </purpose><description><para>Finds the intersection of the sorted range [first1, last1) with the sorted range [first2, last2) and stores it in range starting at result 

Space complexity: \Omega(2(distance(<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>) + distance(<computeroutput>first2</computeroutput>, <computeroutput>last2</computeroutput>))) </para></description><returns><para>Iterator pointing to end of intersection</para>
</returns></function>














































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.set__symmetric__difference_8hpp" name="boost/compute/algorithm/set_symmetric_difference.hpp">
<namespace name="boost">
<namespace name="compute">





















<function id="doxygen.header_reference.set__symmetric__difference_8hpp_1a5d8fd3dda9a6aeb64c0997a792e08718" name="set_symmetric_difference"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype><description><para>Iterator pointing to start of first set </para></description></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype><description><para>Iterator pointing to end of first set </para></description></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype><description><para>Iterator pointing to start of second set </para></description></parameter><parameter name="last2"><paramtype>InputIterator2</paramtype><description><para>Iterator pointing to end of second set </para></description></parameter><parameter name="result"><paramtype>OutputIterator</paramtype><description><para>Iterator pointing to start of range in which the symmetric difference will be stored </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>Queue on which to execute</para></description></parameter><purpose>Set symmetric difference algorithm. </purpose><description><para>Finds the symmetric difference of the sorted range [first2, last2) from the sorted range [first1, last1) and stores it in range starting at result 

Space complexity: \Omega(2(distance(<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>) + distance(<computeroutput>first2</computeroutput>, <computeroutput>last2</computeroutput>))) </para></description><returns><para>Iterator pointing to end of symmetric difference</para>
</returns></function>















































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.set__union_8hpp" name="boost/compute/algorithm/set_union.hpp">
<namespace name="boost">
<namespace name="compute">




















<function id="doxygen.header_reference.set__union_8hpp_1a1607660fa3856f352fd0e5ceb42949cb" name="set_union"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype><description><para>Iterator pointing to start of first set </para></description></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype><description><para>Iterator pointing to end of first set </para></description></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype><description><para>Iterator pointing to start of second set </para></description></parameter><parameter name="last2"><paramtype>InputIterator2</paramtype><description><para>Iterator pointing to end of second set </para></description></parameter><parameter name="result"><paramtype>OutputIterator</paramtype><description><para>Iterator pointing to start of range in which the union will be stored </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>Queue on which to execute</para></description></parameter><purpose>Set union algorithm. </purpose><description><para>Finds the union of the sorted range [first1, last1) with the sorted range [first2, last2) and stores it in range starting at result 

Space complexity: \Omega(2(distance(<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>) + distance(<computeroutput>first2</computeroutput>, <computeroutput>last2</computeroutput>))) </para></description><returns><para>Iterator pointing to end of union</para>
</returns></function>
















































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.sort_8hpp" name="boost/compute/algorithm/sort.hpp">
<namespace name="boost">
<namespace name="compute">


















<function id="doxygen.header_reference.sort_8hpp_1aa20f8f7c2398ace17e6df345175ec4d2" name="sort"><type>void</type><template>
          <template-type-parameter name="Iterator"/>
          <template-type-parameter name="Compare"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype><description><para>first element in the range to sort </para></description></parameter><parameter name="last"><paramtype>Iterator</paramtype><description><para>last element in the range to sort </para></description></parameter><parameter name="compare"><paramtype>Compare</paramtype><description><para>comparison function (by default <computeroutput>less</computeroutput>) </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Sorts the values in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) according to <computeroutput>compare</computeroutput>.</para><para>
For example, to sort a vector on the device: <programlisting language="c++">// create vector on the device with data
float data[] = { 2.f, 4.f, 1.f, 3.f };
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">boost::compute::vector&lt;float&gt;</link> vec(data, data + 4, queue);

// sort the vector on the device
boost::compute::sort(vec.begin(), vec.end(), queue);
</programlisting></para><para>The sort() algorithm can also be directly used with host iterators. This example will automatically transfer the data to the device, sort it, and then transfer the data back to the host: <programlisting language="c++">std::vector&lt;int&gt; data = { 9, 3, 2, 5, 1, 4, 6, 7 };

boost::compute::sort(data.begin(), data.end(), queue);
</programlisting></para><para>Space complexity: \Omega(n)</para><para><formalpara><title>See Also:</title><para>is_sorted() </para>
</formalpara>
</para></description></function>
<function id="doxygen.header_reference.sort_8hpp_1ad4545dbbf1724f0688f684490fb20d3f" name="sort"><type>void</type><template>
          <template-type-parameter name="Iterator"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype></parameter><parameter name="last"><paramtype>Iterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>

















































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.sort__by__key_8hpp" name="boost/compute/algorithm/sort_by_key.hpp">
<namespace name="boost">
<namespace name="compute">
















<function id="doxygen.header_reference.sort__by__key_8hpp_1a6bfa294e909b499fe70c861844d02651" name="sort_by_key"><type>void</type><template>
          <template-type-parameter name="KeyIterator"/>
          <template-type-parameter name="ValueIterator"/>
          <template-type-parameter name="Compare"/>
        </template><parameter name="keys_first"><paramtype>KeyIterator</paramtype></parameter><parameter name="keys_last"><paramtype>KeyIterator</paramtype></parameter><parameter name="values_first"><paramtype>ValueIterator</paramtype></parameter><parameter name="compare"><paramtype>Compare</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Performs a key-value sort using the keys in the range [<computeroutput>keys_first</computeroutput>, <computeroutput>keys_last</computeroutput>) on the values in the range [<computeroutput>values_first</computeroutput>, <computeroutput>values_first</computeroutput> <computeroutput>+</computeroutput> (<computeroutput>keys_last</computeroutput> <computeroutput>-</computeroutput> <computeroutput>keys_first</computeroutput>)) using <computeroutput>compare</computeroutput>.</para><para>If no compare function is specified, <computeroutput>less</computeroutput> is used.</para><para>Space complexity: \Omega(2n)</para><para><formalpara><title>See Also:</title><para>sort() </para>
</formalpara>
</para></description></function>
<function id="doxygen.header_reference.sort__by__key_8hpp_1a3ac23bf64e55754b972615cada4d424c" name="sort_by_key"><type>void</type><template>
          <template-type-parameter name="KeyIterator"/>
          <template-type-parameter name="ValueIterator"/>
        </template><parameter name="keys_first"><paramtype>KeyIterator</paramtype></parameter><parameter name="keys_last"><paramtype>KeyIterator</paramtype></parameter><parameter name="values_first"><paramtype>ValueIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>



















































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.stable__partition_8hpp" name="boost/compute/algorithm/stable_partition.hpp">
<namespace name="boost">
<namespace name="compute">















<function id="doxygen.header_reference.stable__partition_8hpp_1ae6347572aecee8865691dcd7dbc06832" name="stable_partition"><type>Iterator</type><template>
          <template-type-parameter name="Iterator"/>
          <template-type-parameter name="UnaryPredicate"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype><description><para>Iterator pointing to start of range </para></description></parameter><parameter name="last"><paramtype>Iterator</paramtype><description><para>Iterator pointing to end of range </para></description></parameter><parameter name="predicate"><paramtype>UnaryPredicate</paramtype><description><para>Unary predicate to be applied on each element </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>Queue on which to execute</para></description></parameter><purpose>Partitioning algorithm. </purpose><description><para>Partitions the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) according to <computeroutput>predicate</computeroutput>. The order of the elements is preserved. 

Space complexity: \Omega(3n)</para><para><formalpara><title>See Also:</title><para>is_partitioned() and partition() </para>
</formalpara>
</para></description><returns><para>Iterator pointing to end of true values</para>
</returns></function>





















































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.stable__sort_8hpp" name="boost/compute/algorithm/stable_sort.hpp">
<namespace name="boost">
<namespace name="compute">













<function id="doxygen.header_reference.stable__sort_8hpp_1ab086648770a1bfe8ea09ffb5f11ba2ac" name="stable_sort"><type>void</type><template>
          <template-type-parameter name="Iterator"/>
          <template-type-parameter name="Compare"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype></parameter><parameter name="last"><paramtype>Iterator</paramtype></parameter><parameter name="compare"><paramtype>Compare</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Sorts the values in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) according to <computeroutput>compare</computeroutput>. The relative order of identical values is preserved.</para><para>Space complexity: \Omega(n)</para><para><formalpara><title>See Also:</title><para>sort(), is_sorted() </para>
</formalpara>
</para></description></function>
<function id="doxygen.header_reference.stable__sort_8hpp_1ab8d2d61d50cd9b746753b44eb908e4b2" name="stable_sort"><type>void</type><template>
          <template-type-parameter name="Iterator"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype></parameter><parameter name="last"><paramtype>Iterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>






















































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.stable__sort__by__key_8hpp" name="boost/compute/algorithm/stable_sort_by_key.hpp">
<namespace name="boost">
<namespace name="compute">











<function id="doxygen.header_reference.stable__sort__by__key_8hpp_1a7ebd63579d505fd5445b74b69afc8f01" name="stable_sort_by_key"><type>void</type><template>
          <template-type-parameter name="KeyIterator"/>
          <template-type-parameter name="ValueIterator"/>
          <template-type-parameter name="Compare"/>
        </template><parameter name="keys_first"><paramtype>KeyIterator</paramtype></parameter><parameter name="keys_last"><paramtype>KeyIterator</paramtype></parameter><parameter name="values_first"><paramtype>ValueIterator</paramtype></parameter><parameter name="compare"><paramtype>Compare</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Performs a key-value stable sort using the keys in the range [<computeroutput>keys_first</computeroutput>, <computeroutput>keys_last</computeroutput>) on the values in the range [<computeroutput>values_first</computeroutput>, <computeroutput>values_first</computeroutput> <computeroutput>+</computeroutput> (<computeroutput>keys_last</computeroutput> <computeroutput>-</computeroutput> <computeroutput>keys_first</computeroutput>)) using <computeroutput>compare</computeroutput>.</para><para>If no compare function is specified, <computeroutput>less</computeroutput> is used.</para><para>Space complexity: \Omega(2n)</para><para><formalpara><title>See Also:</title><para>sort() </para>
</formalpara>
</para></description></function>
<function id="doxygen.header_reference.stable__sort__by__key_8hpp_1af89bb85f45207dee8f5593ac1f636f9f" name="stable_sort_by_key"><type>void</type><template>
          <template-type-parameter name="KeyIterator"/>
          <template-type-parameter name="ValueIterator"/>
        </template><parameter name="keys_first"><paramtype>KeyIterator</paramtype></parameter><parameter name="keys_last"><paramtype>KeyIterator</paramtype></parameter><parameter name="values_first"><paramtype>ValueIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>
























































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.swap__ranges_8hpp" name="boost/compute/algorithm/swap_ranges.hpp">
<namespace name="boost">
<namespace name="compute">










<function id="doxygen.header_reference.swap__ranges_8hpp_1a9d44d84b6fb9a3ffbc8725e4357aaab9" name="swap_ranges"><type>Iterator2</type><template>
          <template-type-parameter name="Iterator1"/>
          <template-type-parameter name="Iterator2"/>
        </template><parameter name="first1"><paramtype>Iterator1</paramtype></parameter><parameter name="last1"><paramtype>Iterator1</paramtype></parameter><parameter name="first2"><paramtype>Iterator2</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Swaps the elements in the range [<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>) with the elements in the range beginning at <computeroutput>first2</computeroutput>.</para><para>Space complexity: \Omega(distance(<computeroutput>first1</computeroutput>, <computeroutput>last1</computeroutput>)) </para></description></function>


























































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.transform_8hpp" name="boost/compute/algorithm/transform.hpp">
<namespace name="boost">
<namespace name="compute">








<function id="doxygen.header_reference.transform_8hpp_1a3f3d0dd0ed49b684f32740103a120bce" name="transform"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="UnaryOperator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="op"><paramtype>UnaryOperator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Transforms the elements in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) using operator <computeroutput>op</computeroutput> and stores the results in the range beginning at <computeroutput>result</computeroutput>.</para><para>For example, to calculate the absolute value for each element in a vector:</para><para><programlisting language="c++"/></para><para>Space complexity: \Omega(1)</para><para><formalpara><title>See Also:</title><para>copy() </para>
</formalpara>
</para></description></function>
<function id="doxygen.header_reference.transform_8hpp_1a56d281b322379d52d79ceac538b268d9" name="transform"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="BinaryOperator"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="op"><paramtype>BinaryOperator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>



























































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.transform__if_8hpp" name="boost/compute/algorithm/transform_if.hpp">
<namespace name="boost">
<namespace name="compute">







<function id="doxygen.header_reference.transform__if_8hpp_1a2c61661aa57c2d3debc56fc215e2950d" name="transform_if"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="UnaryFunction"/>
          <template-type-parameter name="Predicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="function"><paramtype>UnaryFunction</paramtype></parameter><parameter name="predicate"><paramtype>Predicate</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Copies each element in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) for which <computeroutput>predicate</computeroutput> returns <computeroutput>true</computeroutput> to the range beginning at <computeroutput>result</computeroutput>.</para><para>Space complexity: O(2n) </para></description></function>





























































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.transform__reduce_8hpp" name="boost/compute/algorithm/transform_reduce.hpp">
<namespace name="boost">
<namespace name="compute">





<function id="doxygen.header_reference.transform__reduce_8hpp_1aec87457bfbe20425c30947baefbb43df" name="transform_reduce"><type>void</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="UnaryTransformFunction"/>
          <template-type-parameter name="BinaryReduceFunction"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="transform_function"><paramtype>UnaryTransformFunction</paramtype></parameter><parameter name="reduce_function"><paramtype>BinaryReduceFunction</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Transforms each value in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) with the unary <computeroutput>transform_function</computeroutput> and then reduces each transformed value with <computeroutput>reduce_function</computeroutput>.</para><para>For example, to calculate the sum of the absolute values of a vector of integers:</para><para><programlisting language="c++"/></para><para>Space complexity on GPUs: \Omega(n)<sbr/>
 Space complexity on CPUs: \Omega(1)</para><para><formalpara><title>See Also:</title><para>reduce(), inner_product() </para>
</formalpara>
</para></description></function>
<function id="doxygen.header_reference.transform__reduce_8hpp_1a6cf26b0871e00c0ebacfd42fc9112214" name="transform_reduce"><type>void</type><template>
          <template-type-parameter name="InputIterator1"/>
          <template-type-parameter name="InputIterator2"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="BinaryTransformFunction"/>
          <template-type-parameter name="BinaryReduceFunction"/>
        </template><parameter name="first1"><paramtype>InputIterator1</paramtype></parameter><parameter name="last1"><paramtype>InputIterator1</paramtype></parameter><parameter name="first2"><paramtype>InputIterator2</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="transform_function"><paramtype>BinaryTransformFunction</paramtype></parameter><parameter name="reduce_function"><paramtype>BinaryReduceFunction</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>






























































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.unique_8hpp" name="boost/compute/algorithm/unique.hpp">
<namespace name="boost">
<namespace name="compute">



<function id="doxygen.header_reference.unique_8hpp_1a3404d783335ada6cab05b4198c5d5273" name="unique"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="BinaryPredicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>first element in the input range </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>last element in the input range </para></description></parameter><parameter name="op"><paramtype>BinaryPredicate</paramtype><description><para>binary operator used to check for uniqueness </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Removes all consecutive duplicate elements (determined by <computeroutput>op</computeroutput>) from the range [first, last). If <computeroutput>op</computeroutput> is not provided, the equality operator is used.</para><para>

Space complexity: \Omega(4n)</para><para><formalpara><title>See Also:</title><para>unique_copy() </para>
</formalpara>
</para></description><returns><para><computeroutput>InputIterator</computeroutput> to the new logical end of the range</para>
</returns></function>
<function id="doxygen.header_reference.unique_8hpp_1a1edafe3933baeece5be5839443952211" name="unique"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>
































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.unique__copy_8hpp" name="boost/compute/algorithm/unique_copy.hpp">
<namespace name="boost">
<namespace name="compute">

<function id="doxygen.header_reference.unique__copy_8hpp_1aa5cdf72c6578b954eb772aa64c727c86" name="unique_copy"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="BinaryPredicate"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype><description><para>first element in the input range </para></description></parameter><parameter name="last"><paramtype>InputIterator</paramtype><description><para>last element in the input range </para></description></parameter><parameter name="result"><paramtype>OutputIterator</paramtype><description><para>first element in the result range </para></description></parameter><parameter name="op"><paramtype>BinaryPredicate</paramtype><description><para>binary operator used to check for uniqueness </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default><description><para>command queue to perform the operation</para></description></parameter><description><para>Makes a copy of the range [first, last) and removes all consecutive duplicate elements (determined by <computeroutput>op</computeroutput>) from the copy. If <computeroutput>op</computeroutput> is not provided, the equality operator is used.</para><para>

Space complexity: \Omega(4n)</para><para><formalpara><title>See Also:</title><para>unique() </para>
</formalpara>
</para></description><returns><para><computeroutput>OutputIterator</computeroutput> to the end of the result range</para>
</returns></function>
<function id="doxygen.header_reference.unique__copy_8hpp_1a55e8e1f497724fbb68885fcdb17551b0" name="unique_copy"><type>OutputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="result"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></function>


































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.upper__bound_8hpp" name="boost/compute/algorithm/upper_bound.hpp">
<namespace name="boost">
<namespace name="compute">
<function id="doxygen.header_reference.upper__bound_8hpp_1a235d8a788fd04f09ac38aa5d883edec2" name="upper_bound"><type>InputIterator</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="T"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Returns an iterator pointing to the first element in the sorted range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) that is not less than or equal to <computeroutput>value</computeroutput>.</para><para>Space complexity: \Omega(1) </para></description></function>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.buffer__allocator_8hpp" name="boost/compute/allocator/buffer_allocator.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator" name="buffer_allocator"><template>
      <template-type-parameter name="T"/>
    </template><purpose>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator">buffer_allocator</link> class allocates memory with buffer objects. </purpose><description><para><formalpara><title>See Also:</title><para>buffer </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1a305d120673731e793fbc9715c738840a" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1ae50e115fb1ae5f487f70df056eb162c6" name="pointer"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1a19ca0ce091ca8f7c47dbe9f5a708764c" name="const_pointer"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1a4d34a02b3f256bc02419f00b27dcb53f" name="size_type"><type>std::size_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1a2cc319a66f23b15def873e72fe48c73d" name="difference_type"><type>std::ptrdiff_t</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1a69aaec926bf2536d30c5f3824bae9c26" specifiers="explicit"><parameter name="context"><paramtype>const context &amp;</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1a31ae2981384028bc84a2a3a2a11b239d"><parameter name="other"><paramtype>const <classname>buffer_allocator</classname>&lt; T &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1a3710324eeb9a854e68d2da4387172365"><type><classname>buffer_allocator</classname>&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const <classname>buffer_allocator</classname>&lt; T &gt; &amp;</paramtype></parameter></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1ad07c3060e77bfe53b249d1b091dc040b" cv="noexcept"><parameter name="other"><paramtype><classname>buffer_allocator</classname>&lt; T &gt; &amp;&amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1ae130fff4af54b204d52bb5854ac47770" cv="noexcept"><type><classname>buffer_allocator</classname>&lt; T &gt; &amp;</type><parameter name="other"><paramtype><classname>buffer_allocator</classname>&lt; T &gt; &amp;&amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1a395b827e79cc4a6ba61d45f04b2390e5"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1a4fd716510e084497e60c2c77ceafc30d" name="allocate"><type>pointer</type><parameter name="n"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1aa966ec3c9afd5c98eced7b16ba75adad" name="deallocate"><type>void</type><parameter name="p"><paramtype>pointer</paramtype></parameter><parameter name="n"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1af2f5809df9b71d8e9384853e09eb0556" name="max_size" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1ac5d380cea6cc465ad9e1b4d9f7531c8f" name="get_context" cv="const"><type>context</type></method>
</method-group>
<method-group name="protected member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1aa9cd16a1c358eca4dfe9e84da3f1179b" name="set_mem_flags"><type>void</type><parameter name="flags"><paramtype>cl_mem_flags</paramtype></parameter></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.pinned__allocator_8hpp" name="boost/compute/allocator/pinned_allocator.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1pinned__allocator" name="pinned_allocator"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">boost::compute::buffer_allocator&lt; T &gt;</inherit><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1pinned__allocator_1adb12ff5070cf9a970a3603e6e09913e3" specifiers="explicit"><parameter name="context"><paramtype>const context &amp;</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1pinned__allocator_1a942637f3e45cb8f447cc8548b9c6ed26"><parameter name="other"><paramtype>const pinned_allocator&lt; T &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1pinned__allocator_1a6e194826b81fc69d7fa062e4a443e2ed"><type>pinned_allocator&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const pinned_allocator&lt; T &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1pinned__allocator_1a70c90590d5fcd9bf02d70d3b2f2d6d39"/>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.future_8hpp" name="boost/compute/async/future.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1future" name="future"><template>
      <template-type-parameter name="T"/>
    </template><purpose>Holds the result of an asynchronous computation. </purpose><description><para><formalpara><title>See Also:</title><para>event, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1wait__list">wait_list</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1future_1a26773ceeab5e657f5f1823611166fd21"/>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1future_1a2077f8a744815e1af9b8d01fc277e802"><parameter name="result"><paramtype>const T &amp;</paramtype></parameter><parameter name="event"><paramtype>const event &amp;</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1future_1aee4f25430f50507bdc7abfd70c768275"><parameter name="other"><paramtype>const <classname>future</classname>&lt; T &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1future_1abf04aab98329bcd3947a50634ca3c3cb"><type><classname>future</classname> &amp;</type><parameter name="other"><paramtype>const <classname>future</classname>&lt; T &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1future_1a95f7dfafaf5cc06e300e80dad0250af1"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1future_1acef49b722860b1c1be44c08e68cd6d91" name="get"><type>T</type><description><para>Returns the result of the computation. This will block until the result is ready. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1future_1a103840777628208b9b60779e6b92f1c8" name="valid" cv="const"><type>bool</type><purpose>Returns <computeroutput>true</computeroutput> if the future is valid. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1future_1a820779b26c7e5f64efde3c26e4714f31" name="wait" cv="const"><type>void</type><purpose>Blocks until the computation is complete. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1future_1ae7a751e92f135b17c70cbb4db9b45e24" name="get_event" cv="const"><type>event</type><purpose>Returns the underlying event object. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1future_1af3ce2f8146cc36148d7ac157f088e943" name="then"><type><classname>future</classname> &amp;</type><template>
          <template-type-parameter name="Function"/>
        </template><parameter name="callback"><paramtype>Function</paramtype></parameter><description><para>Invokes a generic callback function once the future is ready.</para><para>The function specified by callback must be invokable with zero arguments.</para><para>See the documentation for </para></description></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.wait_8hpp" name="boost/compute/async/wait.hpp">
<namespace name="boost">
<namespace name="compute">












































































































<function id="doxygen.header_reference.wait_8hpp_1a7b417ce953b938806bf777d0154f2d23" name="wait_for_all"><type>void</type><template>
          <template-nontype-parameter name="Events"><type>class...</type></template-nontype-parameter>
        </template><parameter name="events"><paramtype>Events &amp;&amp;...</paramtype></parameter><description><para>Blocks until all events have completed. Events can either be event objects or <link linkend="doxygen.header_reference.classboost_1_1compute_1_1future">future&lt;T&gt;</link> objects.</para><para><formalpara><title>See Also:</title><para>event, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1wait__list">wait_list</link> </para>
</formalpara>
</para></description></function>
























</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.wait__guard_8hpp" name="boost/compute/async/wait_guard.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1wait__guard" name="wait_guard"><template>
      <template-type-parameter name="Waitable"/>
    </template><inherit access="private">boost::noncopyable</inherit><purpose>A guard object for synchronizing an operation on the device. </purpose><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1wait__guard">wait_guard</link> class stores a waitable object representing an operation on a compute device (e.g. event, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1future">future&lt;T&gt;</link>) and calls its <computeroutput>wait()</computeroutput> method when the guard object goes out of scope.</para><para>This is useful for ensuring that an OpenCL operation completes before leaving the current scope and cleaning up any resources.</para><para>For example: <programlisting language="c++">// enqueue a compute kernel for execution
event e = queue.enqueue_nd_range_kernel(...);

// call e.wait() upon exiting the current scope
wait_guard&lt;event&gt; guard(e);
</programlisting></para><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1wait__list">wait_list</link>, wait_for_all() </para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1wait__guard_1ae3710ec0f98885da809e6ea7a8df6952"><parameter name="waitable"><paramtype>const Waitable &amp;</paramtype></parameter><purpose>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1wait__guard">wait_guard</link> object for <computeroutput>waitable</computeroutput>. </purpose></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1wait__guard_1a2b13b8792da029b7fccfd907f4427d72"><description><para>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1wait__guard">wait_guard</link> object. The default implementation will call <computeroutput>wait()</computeroutput> on the stored waitable object. </para></description></destructor>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.array_8hpp" name="boost/compute/container/array.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1array" name="array"><template>
      <template-type-parameter name="T"/>
      <template-nontype-parameter name="N"><type>std::size_t</type></template-nontype-parameter>
    </template><purpose>A fixed-size container. </purpose><description><para>The array container is very similar to the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">vector</link> container except its size is fixed at compile-time rather than being dynamically resizable at run-time.</para><para>For example, to create a fixed-size array with eight values on the device: <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1array">boost::compute::array&lt;int, 8&gt;</link> values(context);
</programlisting></para><para>The Boost.Compute <computeroutput>array</computeroutput> class provides a STL-like API and is modeled after the <computeroutput>std::array</computeroutput> class from the C++ standard library.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">vector&lt;T&gt;</link> </para>
</formalpara>
</para></description><enum id="doxygen.header_reference.classboost_1_1compute_1_1array_1a0e6216a1e186e39398256901e0362fd9" name="@0"><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1array_1a0e6216a1e186e39398256901e0362fd9a9cebb7ba7a39b8c781d170421909e8b3" name="static_size"><default>N</default></enumvalue></enum>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1ab5bac422dcfafeaed8fa372dc8ed815e" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1a73d85bbe220c00e1fafecb1c8e1219b8" name="size_type"><type>std::size_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1a1e150234e69dc63c396dc635c5edfd05" name="difference_type"><type>ptrdiff_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1a91227cc7e021a68851d4b497e9ae62fc" name="reference"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1a0642799ef31ed0af170abf3b137faa3b" name="const_reference"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1a081f5ed214a07d2dc45be9a1e584f7c4" name="pointer"><type>T *</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1adac3031d782cedf76df9bc80eae6eb72" name="const_pointer"><type>const T *</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1a50f56467d24e32f83e2b416a88f21ca4" name="iterator"><type><classname>buffer_iterator</classname>&lt; T &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1addea3686f80c007092627d4054980488" name="const_iterator"><type><classname>buffer_iterator</classname>&lt; T &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1af9792aaaf68a6f6ac94d491c9a82de68" name="reverse_iterator"><type>std::reverse_iterator&lt; <classname>iterator</classname> &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1ada33e63f8dcdbbd3b4dc541d7cf81f08" name="const_reverse_iterator"><type>std::reverse_iterator&lt; <classname>const_iterator</classname> &gt;</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1array_1aaa136c9ec02fa5f3bc4710516c36deba" specifiers="explicit"><parameter name="context"><paramtype>const context &amp;</paramtype><default>system::default_context()</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1array_1a2ff19e2f02dd1c2b40490d59624b5219"><parameter name="other"><paramtype>const <classname>array</classname>&lt; T, N &gt; &amp;</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1array_1ad08162a7af5b0659bc15161acc3e321c"><parameter name="array"><paramtype>const boost::array&lt; T, N &gt; &amp;</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype><default>system::default_context()</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1array_1a843e626a02174d9301e9aa308b806f27"><parameter name="other"><paramtype>const <classname>array</classname>&lt; T, N &gt; &amp;</paramtype></parameter><parameter name="queue"><paramtype>const command_queue &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1array_1aadc8738c8ea6a570d5b5a70b3793a190"><type><classname>array</classname>&lt; T, N &gt; &amp;</type><parameter name="other"><paramtype>const <classname>array</classname>&lt; T, N &gt; &amp;</paramtype></parameter></copy-assignment>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1array_1af2ab1face06ecc4126f8c9682b39b228"><type><classname>array</classname>&lt; T, N &gt; &amp;</type><parameter name="array"><paramtype>const boost::array&lt; T, N &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1array_1ac58cacd61c4bb1af82e55e8c7b9d7351"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a1161f488a5541cb846e97458a1f73d81" name="begin"><type><classname>iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1ad23f2768a4fad6fc77206871f3e02290" name="begin" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1ae69f67896ff8265f85c8ecb95145bb97" name="cbegin" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1aecb788fa8a94cc6595c36c6ee7327216" name="end"><type><classname>iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a5d107818dc7c02e54674f9f0ffcaaf11" name="end" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a233244a1a3745d6c1a0e9c648af97de1" name="cend" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a652ba4255f2f09c58e9474b756011a0d" name="rbegin"><type>reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a2db88dcfde11939fb35cd0a78aa9f004" name="rbegin" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1ad30ee959226e76520a8bc86f186b6600" name="crbegin" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1af897590aeb133ab9d22c4614f893bdb6" name="rend"><type>reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1af2deb11bc2a3d02b87c48d3c27f80bc4" name="rend" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a4ef2942cd9442e0176a1d5f267e2c9f3" name="crend" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a16319fe76710b1ee6c98a1e2b9e78635" name="size" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1ad0987eff5429a3b5e26c0c75a3e8df1e" name="empty" cv="const"><type>bool</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a0839097076d26b049130bb44d8417a64" name="max_size" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1ae9c5ad3c507d50a8f5ff1d96970bee63" name="operator[]"><type>reference</type><parameter name="index"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1af501e1a32a7ee8242123b833da262131" name="operator[]" cv="const"><type>const_reference</type><parameter name="index"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a6ad69d200d07725e096f814870b2da4c" name="at"><type>reference</type><parameter name="index"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a8c58ee9778da6006b62ed26f138076fa" name="at" cv="const"><type>const_reference</type><parameter name="index"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1aa085aa75e14d0e50a541547575720d2c" name="front"><type>reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1af2b8940ae3b2e33edddf99104025440b" name="front" cv="const"><type>const_reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a719057d75048107a99fd00c0013841b7" name="back"><type>reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1afc9e6a3bbaf4446983fe9445ffa78201" name="back" cv="const"><type>const_reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a52d33e782513b0b8ad3a07bbb9d030b0" name="fill"><type>void</type><parameter name="value"><paramtype>const value_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>const command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a343f856bbee78c75f72abe271824a08d" name="swap"><type>void</type><parameter name="other"><paramtype><classname>array</classname>&lt; T, N &gt; &amp;</paramtype></parameter><parameter name="queue"><paramtype>const command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1ac13fac8d44af4faaaaa2b85c7cfd76ea" name="fill"><type>void</type><parameter name="value"><paramtype>const value_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1abf6184190b2ebab215a4aaa0d9a75dd8" name="swap"><type>void</type><parameter name="other"><paramtype><classname>array</classname>&lt; T, N &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a43caf186f11c685da18b78c776622fcd" name="get_buffer" cv="const"><type>const buffer &amp;</type></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1array_1a5565ff9b2773511b7acab54bca59f6a6" name="default_queue" cv="const"><type>command_queue</type></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.basic__string_8hpp" name="boost/compute/container/basic_string.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1basic__string" name="basic_string"><template>
      <template-type-parameter name="CharT"/>
      <template-type-parameter name="Traits"><default>std::char_traits&lt;CharT&gt;</default></template-type-parameter>
    </template><purpose>A template for a dynamically-sized character sequence. </purpose><description><para>The <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1basic__string">basic_string</link></computeroutput> class provides a generic template for a dynamically- sized character sequence. This is most commonly used through the <computeroutput>string</computeroutput> typedef (for <computeroutput>basic_string&lt;char&gt;</computeroutput>).</para><para>For example, to create a string on the device with its contents copied from a C-string on the host: <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1basic__string">boost::compute::string</link> str("hello, world!");
</programlisting></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">vector&lt;T&gt;</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a8632a58afe12d4b66680350d4c653ef9" name="traits_type"><type>Traits</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a55a7651c18ad821c22d3bc7c497c2360" name="value_type"><type>Traits::char_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1ad1bad7f0d74fba83aed08b41a34c040b" name="size_type"><type>size_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a2a133c117d897ea6aaa49083604ee0b3" name="reference"><type><classname>::boost::compute::vector</classname>&lt; CharT &gt;::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a81e72e9bb190a620ba50a12a6ff33bb9" name="const_reference"><type><classname>::boost::compute::vector</classname>&lt; CharT &gt;::const_reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1ace322944ab925bd458500c032ada6eae" name="iterator"><type><classname>::boost::compute::vector</classname>&lt; CharT &gt;::iterator</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a0531cdc60b9b908872094c9cb34c0554" name="const_iterator"><type><classname>::boost::compute::vector</classname>&lt; CharT &gt;::const_iterator</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1ab7959692953a77e711ed255960625abd" name="reverse_iterator"><type><classname>::boost::compute::vector</classname>&lt; CharT &gt;::reverse_iterator</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a666f4b16485e94e99058817ee5714609" name="const_reverse_iterator"><type><classname>::boost::compute::vector</classname>&lt; CharT &gt;::const_reverse_iterator</type></typedef>
<data-member id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1afed9ade579b8c50e3d08374b9da63ed4" name="npos" specifiers="static"><type>const size_type</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a61c004c109ea262114530c5a787b110a"/>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a20c592b5345138b0e9da642f59c2a89f"><parameter name="count"><paramtype>size_type</paramtype></parameter><parameter name="ch"><paramtype>CharT</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1ad47b9a3516841d1c84818374cbe77dd8"><parameter name="other"><paramtype>const <classname>basic_string</classname> &amp;</paramtype></parameter><parameter name="pos"><paramtype>size_type</paramtype></parameter><parameter name="count"><paramtype>size_type</paramtype><default>npos</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1abd867ee9c429ff5cb50ef6c7bbf58a88"><parameter name="s"><paramtype>const char *</paramtype></parameter><parameter name="count"><paramtype>size_type</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a0835a4b28d368ca5925935d9bf5e679f"><parameter name="s"><paramtype>const char *</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1aab82ed384d35fdfee57396f33461898a"><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a1010b970709edc5d262a64980b2302d8"><parameter name="other"><paramtype>const <classname>basic_string</classname>&lt; CharT, Traits &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1afaa39d4798ae94eb887ceacc54a9a5b4"><type><classname>basic_string</classname>&lt; CharT, Traits &gt; &amp;</type><parameter name="other"><paramtype>const <classname>basic_string</classname>&lt; CharT, Traits &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a112add35e7aa3888ec9bd761a4464478"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a2af34f693eb5ae83def136b571185239" name="at"><type>reference</type><parameter name="pos"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a947e815211e79909482b2ea6846442e1" name="at" cv="const"><type>const_reference</type><parameter name="pos"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a7244234eedd5a4e8a2e64ccc95ba84e0" name="operator[]"><type>reference</type><parameter name="pos"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a4167136a38e0ebccfca3769fad8a63e2" name="operator[]" cv="const"><type>const_reference</type><parameter name="pos"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a4229ab6dd32d732ef85b07a4ce3d3675" name="front"><type>reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a0d557ad9bae28c7040de71273f077638" name="front" cv="const"><type>const_reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a4d27de6a27075f60b2587680599f8277" name="back"><type>reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1aa81b4a35cb3aa24615f5e91c75b81273" name="back" cv="const"><type>const_reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a23ab5dc42b687166395c03c6289c8ed1" name="begin"><type><classname>iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1aaece92d90c86e843a681828b560fc21e" name="begin" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a16388cadd20c2cdd645ffb567fcf8b4e" name="cbegin" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1af1d4e71aa9492e595f7b265cef39a22f" name="end"><type><classname>iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a421f852bdfb19a851fa1ab83725170b7" name="end" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a18ea58f51d645a5c67d3426f3ec2c40f" name="cend" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1abec8616fb41f4c018d90309cfdc93a99" name="rbegin"><type>reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a10bb94a36d62bad6eed65f165af86bb7" name="rbegin" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1afcf63515aa1cfcd6d45c38bfdeef8780" name="crbegin" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a919e8804c0c2b9bcffd578faddff77de" name="rend"><type>reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a3504cdc96c0b5a22408159ab7f862c82" name="rend" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1af54c1b964ecf55977e4237bc3b7742b3" name="crend" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a18554f5a8f6f50ebf24df39c5cd57c92" name="empty" cv="const"><type>bool</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a92ab6e2f5f6a18a66644a1ec9621aef7" name="size" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a9bae36cf24726442ba1d03e7ab5d3584" name="length" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a96c0b2c32948d52b89909face4359b77" name="max_size" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a4d8644b9307282496de9b218ebe85ac6" name="reserve"><type>void</type><parameter name="size"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1aa5dcacfd872326339e2a6a065830ded0" name="capacity" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a4d2cf32cc6b2d12a6c89f9a4ef1c1816" name="shrink_to_fit"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a5c170fec8007d7c0d787e4a80794141a" name="clear"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1aac4635e93fd89f801a2ac0dcaa4bd762" name="swap"><type>void</type><parameter name="other"><paramtype><classname>basic_string</classname>&lt; CharT, Traits &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a09aef52af7cc44bb15c1f14aa90fb8f7" name="substr" cv="const"><type><classname>basic_string</classname>&lt; CharT, Traits &gt;</type><parameter name="pos"><paramtype>size_type</paramtype><default>0</default></parameter><parameter name="count"><paramtype>size_type</paramtype><default>npos</default></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1aac7dafbe8b010bbeaa22db96902366f7" name="find" cv="const"><type>size_type</type><parameter name="ch"><paramtype>CharT</paramtype></parameter><parameter name="pos"><paramtype>size_type</paramtype><default>0</default></parameter><purpose>Finds the first character <computeroutput>ch</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a451710679b79f745c129bf96b87232ec" name="find" cv="const"><type>size_type</type><parameter name="str"><paramtype><classname>basic_string</classname> &amp;</paramtype></parameter><parameter name="pos"><paramtype>size_type</paramtype><default>0</default></parameter><purpose>Finds the first substring equal to <computeroutput>str</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a668f0bade77018884428f8a0de94cd67" name="find" cv="const"><type>size_type</type><parameter name="s"><paramtype>const char *</paramtype></parameter><parameter name="pos"><paramtype>size_type</paramtype><default>0</default></parameter><description><para>Finds the first substring equal to the character string pointed to by <computeroutput>s</computeroutput>. The length of the string is determined by the first null character.</para><para>For example, the following code <programlisting language="c++"/></para><para>will return 5 as position. </para></description></method>
</method-group>
</class>












































































































<function id="doxygen.header_reference.basic__string_8hpp_1a67ab5d0f0573cad3d4678b4a4b9b7ef2" name="operator&lt;&lt;"><type>std::ostream &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="stream"><paramtype>std::ostream &amp;</paramtype></parameter><parameter name="outStr"><paramtype><classname>boost::compute::basic_string</classname>&lt; CharT, Traits &gt;const &amp;</paramtype></parameter></function>























</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.dynamic__bitset_8hpp" name="boost/compute/container/dynamic_bitset.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset" name="dynamic_bitset"><template>
      <template-type-parameter name="Block"><default>ulong_</default></template-type-parameter>
      <template-type-parameter name="Alloc"><default>buffer_allocator&lt;Block&gt;</default></template-type-parameter>
    </template><purpose>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset">dynamic_bitset</link> class contains a resizable bit array. </purpose><description><para>For example, to create a dynamic-bitset with space for 1000 bits on the device: <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset">boost::compute::dynamic_bitset&lt;&gt;</link> bits(1000, queue);
</programlisting></para><para>The Boost.Compute <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset">dynamic_bitset</link></computeroutput> class provides a STL-like API and is modeled after the <computeroutput>boost::dynamic_bitset</computeroutput> class from Boost.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">vector&lt;T&gt;</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1ae2221d8b60dfc23d3654a3ff64a98de5" name="block_type"><type>Block</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a8a95239c8f724181f7496a9c0cbf2b10" name="allocator_type"><type>Alloc</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a8645f5f60fd541823df9d168f2ba680f" name="container_type"><type><classname>vector</classname>&lt; Block, Alloc &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a915c35536eec26206e362a6060c9bf80" name="size_type"><type>container_type::size_type</type></typedef>
<method-group name="public member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1adc8d38c9b00671deaea206b2721d8a2e" name="BOOST_STATIC_CONSTANT"><type/><parameter name=""><paramtype>size_type</paramtype></parameter><parameter name=""><paramtype>bits_per_block</paramtype><default>sizeof(block_type) *CHAR_BIT</default></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a9c705bff0dac22cc6c2e0fa42b9b80cb" name="BOOST_STATIC_CONSTANT"><type/><parameter name=""><paramtype>size_type</paramtype></parameter><parameter name=""><paramtype>npos</paramtype><default>static_cast&lt; size_type &gt;(-1)</default></parameter></method>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a8452cc0758d396dba628e824a00e3cae"><parameter name="size"><paramtype>size_type</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Creates a new dynamic bitset with storage for <computeroutput>size</computeroutput> bits. Initializes all bits to zero. </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a3fc32937768d0adc644f855636e8ec40"><parameter name="other"><paramtype>const <classname>dynamic_bitset</classname> &amp;</paramtype></parameter><purpose>Creates a new dynamic bitset as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a56475a0edd2c8a251917ef6a9e979c0c"><type><classname>dynamic_bitset</classname> &amp;</type><parameter name="other"><paramtype>const <classname>dynamic_bitset</classname> &amp;</paramtype></parameter><purpose>Copies the data from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a9191a8e497556899a38e0af787adb251"><purpose>Destroys the dynamic bitset. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1ac3783499f4a59f444f8cad3173020a4b" name="size" cv="const"><type>size_type</type><purpose>Returns the size of the dynamic bitset. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a4866e095fc4a6a06a224bbd5e4352aa7" name="num_blocks" cv="const"><type>size_type</type><purpose>Returns the number of blocks to store the bits in the dynamic bitset. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a8d4397b9817017a2512abeeaec5dabfd" name="max_size" cv="const"><type>size_type</type><purpose>Returns the maximum possible size for the dynamic bitset. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a136db93493bf1fb17e2f8c65607b3666" name="empty" cv="const"><type>bool</type><purpose>Returns <computeroutput>true</computeroutput> if the dynamic bitset is empty (i.e. <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1ac3783499f4a59f444f8cad3173020a4b">size()</link></computeroutput> == <computeroutput>0</computeroutput>). </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a8f5716f4668fcc65a3ae5ed9ba7717ca" name="count" cv="const"><type>size_type</type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Returns the number of set bits (i.e. '1') in the bitset. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1ad25c3724887b1297cd5c436647519207" name="resize"><type>void</type><parameter name="num_bits"><paramtype>size_type</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Resizes the bitset to contain <computeroutput>num_bits</computeroutput>. If the new size is greater than the current size the new bits are set to zero. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a3d0bca0f09c9d50ef580275bc2a183f5" name="set"><type>void</type><parameter name="n"><paramtype>size_type</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Sets the bit at position <computeroutput>n</computeroutput> to <computeroutput>true</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a47a6c1649ba837b738bc6ca6e1a153df" name="set"><type>void</type><parameter name="n"><paramtype>size_type</paramtype></parameter><parameter name="value"><paramtype>bool</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Sets the bit at position <computeroutput>n</computeroutput> to <computeroutput>value</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1afd48b6f165407ec11e59783ee81a5339" name="test"><type>bool</type><parameter name="n"><paramtype>size_type</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the bit at position <computeroutput>n</computeroutput> is set (i.e. '1'). </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a547034eb35f8bd7130b203e8edf038ec" name="flip"><type>void</type><parameter name="n"><paramtype>size_type</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Flips the value of the bit at position <computeroutput>n</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1acaff85c204ff5e537aa8bf25115dc795" name="any" cv="const"><type>bool</type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if any bit in the bitset is set (i.e. '1'). </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1aa2fbcc31a7b7731a38e07e02212568fa" name="none" cv="const"><type>bool</type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if all of the bits in the bitset are set to zero. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1ae601e4979c39656ca7200f9d65b6a6dc" name="reset"><type>void</type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Sets all of the bits in the bitset to zero. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a06945abfbbacf1d12033511ba6c1c373" name="reset"><type>void</type><parameter name="n"><paramtype>size_type</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Sets the bit at position <computeroutput>n</computeroutput> to zero. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a58d6ea57489059745f5b7a0a36c39225" name="clear"><type>void</type><purpose>Empties the bitset (e.g. <computeroutput>resize(0)</computeroutput>). </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a57fa0d94858501230a8e5cf0a5e23524" name="get_allocator" cv="const"><type>allocator_type</type><purpose>Returns the allocator used to allocate storage for the bitset. </purpose></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.flat__map_8hpp" name="boost/compute/container/flat_map.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1flat__map" name="flat_map"><template>
      <template-type-parameter name="Key"/>
      <template-type-parameter name="T"/>
    </template><typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a0224272d77bb216fbe3b6ebf15c75406" name="key_type"><type>Key</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a9774d1668dd8d250cd2150b9696e23b5" name="mapped_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a669356e635dd8b63b8dd6beb474a59d7" name="vector_type"><type><classname>::boost::compute::vector</classname>&lt; std::pair&lt; Key, T &gt; &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a2bd7f7ca477fa0776af5084313927ed7" name="value_type"><type>vector_type::value_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1ad792f9d2a697ae4cb18fc70a6fff5d08" name="size_type"><type>vector_type::size_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a3c4bdbe8df30cf3d40852b6dcbb5f834" name="difference_type"><type>vector_type::difference_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a636da070582bb912789ba6f1cf5b8ec9" name="reference"><type>vector_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1ac573a6976ecf45be72fea5dc04e99cb6" name="const_reference"><type>vector_type::const_reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a08d89b2e408443ab08a1e55105c05d63" name="pointer"><type>vector_type::pointer</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a60a4e8056701531742cd8983498c47af" name="const_pointer"><type>vector_type::const_pointer</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a29d5f87eac90fd35e1e302cd788ab216" name="iterator"><type><classname>vector_type::iterator</classname></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1ae51d756781dd0b02d6ffd793d60f405c" name="const_iterator"><type><classname>vector_type::const_iterator</classname></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a3db1ca86ff436c5cddf2c4b716552226" name="reverse_iterator"><type>vector_type::reverse_iterator</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a98a0c3a6dc097fad840885f73c803fef" name="const_reverse_iterator"><type>vector_type::const_reverse_iterator</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a490698bdbda0647a0ca29bb0cbda1c46" specifiers="explicit"><parameter name="context"><paramtype>const context &amp;</paramtype><default>system::default_context()</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a799e79ed2942e5258edafc4457875701"><parameter name="other"><paramtype>const flat_map&lt; Key, T &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1af9f86992fd4e26e87925b4a0d96f5687"><type>flat_map&lt; Key, T &gt; &amp;</type><parameter name="other"><paramtype>const flat_map&lt; Key, T &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1ac839ddaec594dbf79ece449b4f98c181"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a4d0c6c7fd591ed78020501ea2894d5e1" name="begin"><type><classname>iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a18a9ccdbd8e621049fe02941507607c4" name="begin" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1ab91d517ab56730142077d4c6e5b60886" name="cbegin" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1ae9d92f1e9343a79d6dfa339036f8e21f" name="end"><type><classname>iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1ae9495aaaecf87159fe68462a15658392" name="end" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a65e9412adbc25ec209f1227bf4ccd9da" name="cend" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1ab2b2dd4d6dd192ff28345da488e94cdf" name="rbegin"><type>reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1ad9d886f494dc240d47f04f2c7c80522f" name="rbegin" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1ab95fc022d0b14ecc44612947cc9d44e8" name="crbegin" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a31d8840b62f13c84b01d1dc82565c217" name="rend"><type>reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a02e6a3a87fe97dfb9149626aad0403a2" name="rend" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1ac9a4d0c516109bdedca56ba5b479cc58" name="crend" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a3cec9acdd141b1b9630777e719cbce40" name="size" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1af5ba6c739fcb3ca64cf0015dec2a618f" name="max_size" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1af76c4f22f93cb478d1c83793524b0726" name="empty" cv="const"><type>bool</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1aeab71991f623a197c77dc767eb1cb7f6" name="capacity" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a5deb0c5a25bc7ea612632c223615d743" name="reserve"><type>void</type><parameter name="size"><paramtype>size_type</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a38b6e771b11be709fea2a2c4874cabdc" name="reserve"><type>void</type><parameter name="size"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1acd931a552800c60320bf8678aec369e7" name="shrink_to_fit"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1ae5f294548db974c956794d1bfedb33a0" name="clear"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a286c850181decbd97b2db18f6150bcd0" name="insert"><type>std::pair&lt; <classname>iterator</classname>, bool &gt;</type><parameter name="value"><paramtype>const value_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1af73619f73e89a5da6123b9aaed1a82be" name="insert"><type>std::pair&lt; <classname>iterator</classname>, bool &gt;</type><parameter name="value"><paramtype>const value_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a2070f26615f12eab5e33e87948cf7fa4" name="erase"><type><classname>iterator</classname></type><parameter name="position"><paramtype>const <classname>const_iterator</classname> &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1aed97528371e9d96f8331a72e7b3540ef" name="erase"><type><classname>iterator</classname></type><parameter name="position"><paramtype>const <classname>const_iterator</classname> &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a838e9cc0cf745680db9dba7717a0ab7c" name="erase"><type><classname>iterator</classname></type><parameter name="first"><paramtype>const <classname>const_iterator</classname> &amp;</paramtype></parameter><parameter name="last"><paramtype>const <classname>const_iterator</classname> &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a434061a26d92fc25de7a6382e8fbde16" name="erase"><type><classname>iterator</classname></type><parameter name="first"><paramtype>const <classname>const_iterator</classname> &amp;</paramtype></parameter><parameter name="last"><paramtype>const <classname>const_iterator</classname> &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a577409526a785a92f4a1939b0830bc5f" name="erase"><type>size_type</type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a6e10e7ce7da73ba545473d856838910c" name="find"><type><classname>iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a7dc7ecad5bd474c8dbac2bc991ae8714" name="find"><type><classname>iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a5777e6fc88139437ec5e6696e82a233d" name="find" cv="const"><type><classname>const_iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a89141c5f531512a8de84e0734afe9d28" name="find" cv="const"><type><classname>const_iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1ab52881507c3430c5c1711f5d8de1a732" name="count" cv="const"><type>size_type</type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a8f4a5a70976d00b8a4e540dcc0fc56a6" name="count" cv="const"><type>size_type</type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a9ce52229ed4f6876ffcc297640ed2b14" name="lower_bound"><type><classname>iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a8a212df8ac809086d86002fe0b8f25b6" name="lower_bound"><type><classname>iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a6dfa3bafe71443f3b8ca43c128cc522e" name="lower_bound" cv="const"><type><classname>const_iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1aaf564eef56e4adc5645e606cc25ff73c" name="lower_bound" cv="const"><type><classname>const_iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1afdbe5ca36b0b489cc71eb1a36e796ed3" name="upper_bound"><type><classname>iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1aeeecb34e16b919e22ed265206f66dfd6" name="upper_bound"><type><classname>iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a65221c8e42e8e476b29659e4e2f770d0" name="upper_bound" cv="const"><type><classname>const_iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a6a82a28c4ab7717d5473a948a7849e90" name="upper_bound" cv="const"><type><classname>const_iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a575d75c081c86b9cc6f4137d4d477ef5" name="at" cv="const"><type>const mapped_type</type><parameter name="key"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a15b02ce5853b365ac503f79c39b50744" name="operator[]"><type><emphasis>unspecified</emphasis></type><parameter name="key"><paramtype>const key_type &amp;</paramtype></parameter></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.flat__set_8hpp" name="boost/compute/container/flat_set.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1flat__set" name="flat_set"><template>
      <template-type-parameter name="T"/>
    </template><typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1abd185ac1fedbc26f1baf05e014f84cfd" name="key_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1af1cfaa8208e3d19eacadd37a63e4e323" name="value_type"><type><classname>vector</classname>&lt; T &gt;::value_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a8d11937f747b1811df5523ee130e93c0" name="size_type"><type><classname>vector</classname>&lt; T &gt;::size_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a7a8b7bd64900484c5133fa2e9f698067" name="difference_type"><type><classname>vector</classname>&lt; T &gt;::difference_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1acec590d9e14f2acb0e08d721ce0543a4" name="reference"><type><classname>vector</classname>&lt; T &gt;::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1afa5a23681c4e11590729a49bd4d86258" name="const_reference"><type><classname>vector</classname>&lt; T &gt;::const_reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a420d35869e34b7a45b044c72a328a7d0" name="pointer"><type><classname>vector</classname>&lt; T &gt;::pointer</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a426068fd05a3b35b25e73bc8422148fd" name="const_pointer"><type><classname>vector</classname>&lt; T &gt;::const_pointer</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a399968b5b7a605cb5d2214df87cc5f5c" name="iterator"><type><classname>vector</classname>&lt; T &gt;::iterator</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1aebdbbf447084284bb8143aa487e5c1d5" name="const_iterator"><type><classname>vector</classname>&lt; T &gt;::const_iterator</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1aca99a42424591f7782d6be26bbff2602" name="reverse_iterator"><type><classname>vector</classname>&lt; T &gt;::reverse_iterator</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a10b49cf77ad37b69639ac9c2c0142980" name="const_reverse_iterator"><type><classname>vector</classname>&lt; T &gt;::const_reverse_iterator</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1ae67dbb5efdd82488a6f2751544416c29" specifiers="explicit"><parameter name="context"><paramtype>const context &amp;</paramtype><default>system::default_context()</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a53f5a436ab0b168b6e8168c2a6d6b607"><parameter name="other"><paramtype>const flat_set&lt; T &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a6447e5b623ff750c08f642b125cfd86f"><type>flat_set&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const flat_set&lt; T &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a161c01ef4ccff1fc016caf4643042c19"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a967f592b89260b3266206b2d3ca2277d" name="begin"><type><classname>iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a3fe39e0a17355667ae0c1d1a2c29fb37" name="begin" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a8d2d6e0b48397027cf5c05c62c9edc7c" name="cbegin" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a6f316a0f5c5d78896410c266fdc2c7b5" name="end"><type><classname>iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a180f451b7ee568c8feaf1d046aaf62ed" name="end" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a8bfe63b1978a0a4852e0853fc47a96d9" name="cend" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1aab116276f2df2dbccb6caef57cf8a940" name="rbegin"><type>reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a04e6606c4cf95367c504706a6a147cbe" name="rbegin" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a1f0579477e25d0cc7f2a3997d07c700b" name="crbegin" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a8fc42d638b474b49c67ae54e044c1036" name="rend"><type>reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1ada0c8645297fe546e19b943d0ed52542" name="rend" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1af2bda6c2228d61aa8baa6024394a50e5" name="crend" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a967fb97eef802a094412b3bbc73f4f52" name="size" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a10a31d6dafc76b56c928c29e10ec30da" name="max_size" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a0fcddfa38dbaebd8f28bdd68a65b06e1" name="empty" cv="const"><type>bool</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1ad3bbad24178f91ebc699dcf69d428705" name="capacity" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1ae82e04cd49f92eb63ef7ade4819d0873" name="reserve"><type>void</type><parameter name="size"><paramtype>size_type</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a82466b23b42628f89c3132779faea802" name="reserve"><type>void</type><parameter name="size"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a707e79c0e2aae4c291063eadae81a417" name="shrink_to_fit"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a59f4321db3d4a054491c3569d859c059" name="clear"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a24e8165a0430cdaa9de0fd1440d4e1c4" name="insert"><type>std::pair&lt; <classname>iterator</classname>, bool &gt;</type><parameter name="value"><paramtype>const value_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1abfc1a4deac18bd2fc436f93e4d95f331" name="insert"><type>std::pair&lt; <classname>iterator</classname>, bool &gt;</type><parameter name="value"><paramtype>const value_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1aa1951c0f2f4aa03e0ececb1b5f9e2a35" name="erase"><type><classname>iterator</classname></type><parameter name="position"><paramtype>const <classname>const_iterator</classname> &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1ac58d2595d6b69c2f7a96dd8e280634bb" name="erase"><type><classname>iterator</classname></type><parameter name="position"><paramtype>const <classname>const_iterator</classname> &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a21c6b31abacf9fd7708db505ec85f512" name="erase"><type><classname>iterator</classname></type><parameter name="first"><paramtype>const <classname>const_iterator</classname> &amp;</paramtype></parameter><parameter name="last"><paramtype>const <classname>const_iterator</classname> &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1ab55750c5b22e3fb5d6784d506f2a3bdc" name="erase"><type><classname>iterator</classname></type><parameter name="first"><paramtype>const <classname>const_iterator</classname> &amp;</paramtype></parameter><parameter name="last"><paramtype>const <classname>const_iterator</classname> &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a00592a7840f5463ca5057bccd9e6a9b4" name="erase"><type>size_type</type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1ac36801749a4ed9779ac8a3a22c174b4d" name="erase"><type>size_type</type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1acd33d44b249c6221b65be074b7beb2a8" name="find"><type><classname>iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a63c7217e8c139bb3b89f1710a4994065" name="find"><type><classname>iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a2a2ed6000103c6293a7a21be53ad960b" name="find" cv="const"><type><classname>const_iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a6965572b516edde54231df82ede82c93" name="find" cv="const"><type><classname>const_iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a7ef7368f269d972045742f354283282e" name="count" cv="const"><type>size_type</type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a01eb253f0efcbd41be53eed4692a0db3" name="count" cv="const"><type>size_type</type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1aa6526c892602c53a731f0a4130c225ce" name="lower_bound"><type><classname>iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a1bd37c3698e3c6aff932ccdea430d410" name="lower_bound"><type><classname>iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1ad87e554fb916c1a27a8684bed817796b" name="lower_bound" cv="const"><type><classname>const_iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a190ed8e5c45b8e32cfb8ee74a13c563f" name="lower_bound" cv="const"><type><classname>const_iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a41262bfbff1ad87bad5f900300c49371" name="upper_bound"><type><classname>iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a435a829b9f93acd83272920a8a039e60" name="upper_bound"><type><classname>iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a1c53665e8615f3104e21713e9db7bf28" name="upper_bound" cv="const"><type><classname>const_iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a5b8672866c335b5fdb4e85253ade8677" name="upper_bound" cv="const"><type><classname>const_iterator</classname></type><parameter name="value"><paramtype>const key_type &amp;</paramtype></parameter></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.mapped__view_8hpp" name="boost/compute/container/mapped_view.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view" name="mapped_view"><template>
      <template-type-parameter name="T"/>
    </template><purpose>A mapped view of host memory. </purpose><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link> class simplifies mapping host-memory to a compute device. This allows for host-allocated memory to be used with the Boost.Compute algorithms.</para><para>The following example shows how to map a simple C-array containing data on the host to the device and run the reduce() algorithm to calculate the sum:</para><para><programlisting language="c++"/></para><para><formalpara><title>See Also:</title><para>buffer </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a163bcbee5fb936df606fe5737073f80f" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a1503a644c4afe11426da27d3a346f7bc" name="size_type"><type>size_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1abb7740d0b199d52a5780ba9ba8a998b6" name="difference_type"><type>ptrdiff_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1aae2ec158de19ea2e9996a1f9c6796a6e" name="iterator"><type><classname>buffer_iterator</classname>&lt; T &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a2d3f6ba6731a456a3d1275e4615cdcb6" name="const_iterator"><type><classname>buffer_iterator</classname>&lt; T &gt;</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a04ca49e854e1d71f5c6dfca1c768057e"><purpose>Creates a null <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link> object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a5e4ad54e102caf6afcb722020c2f8dbc"><parameter name="host_ptr"><paramtype>T *</paramtype></parameter><parameter name="n"><paramtype>size_type</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype><default>system::default_context()</default></parameter><description><para>Creates a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link> for <computeroutput>host_ptr</computeroutput> with <computeroutput>n</computeroutput> elements. After constructing a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link> the data is available for use by a compute device. Use the <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1abeaa10d4a7954c7b167a113c4b61fa67">unmap()</link></computeroutput> method to make the updated data available to the host. </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1ac36784840b7d6a050104fc9fb0ec94ac"><parameter name="host_ptr"><paramtype>const T *</paramtype></parameter><parameter name="n"><paramtype>size_type</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype><default>system::default_context()</default></parameter><description><para>Creates a read-only <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link> for <computeroutput>host_ptr</computeroutput> with <computeroutput>n</computeroutput> elements. After constructing a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link> the data is available for use by a compute device. Use the <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1abeaa10d4a7954c7b167a113c4b61fa67">unmap()</link></computeroutput> method to make the updated data available to the host. </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1aebcd4761b4fa5e817ee02e2ed7ee2c42"><parameter name="other"><paramtype>const <classname>mapped_view</classname>&lt; T &gt; &amp;</paramtype></parameter><purpose>Creates a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a310b60c4846a5461ce41cb5e2fcfd9b2"><type><classname>mapped_view</classname>&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const <classname>mapped_view</classname>&lt; T &gt; &amp;</paramtype></parameter><purpose>Copies the mapped buffer from <computeroutput>other</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1acf32eb1d314db6ff075080a3cc974945"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a75875c256e89cdaacdcef9897381508c" name="begin"><type><classname>iterator</classname></type><purpose>Returns an iterator to the first element in the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a064d141f3ce54ccf310175d386ee2a1d" name="begin" cv="const"><type><classname>const_iterator</classname></type><purpose>Returns a const_iterator to the first element in the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a3a5e2e5836c63a01dfd0fed65136f208" name="cbegin" cv="const"><type><classname>const_iterator</classname></type><purpose>Returns a const_iterator to the first element in the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a459f1c20080ce8b4b2d2ff4539f02fa9" name="end"><type><classname>iterator</classname></type><purpose>Returns an iterator to one past the last element in the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a89df6bf69f0ffbab5778f35271920a17" name="end" cv="const"><type><classname>const_iterator</classname></type><purpose>Returns a const_iterator to one past the last element in the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a38ba7e3fbe4e6d213c2379e4f8158b04" name="cend" cv="const"><type><classname>const_iterator</classname></type><purpose>Returns a const_iterator to one past the last element in the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a29a9d4bd80fd7c06d4ca76d4264769cb" name="size" cv="const"><type>size_type</type><purpose>Returns the number of elements in the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1af206fb2697e61904b57941e38763004e" name="get_host_ptr"><type>T *</type><purpose>Returns the host data pointer. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1aab11b5d6893666776fee8239f23da765" name="get_host_ptr" cv="const"><type>const T *</type><purpose>Returns the host data pointer. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a81bea9aa832b68772efd9acc9e49df47" name="resize"><type>void</type><parameter name="size"><paramtype>size_type</paramtype></parameter><purpose>Resizes the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link> to <computeroutput>size</computeroutput> elements. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1aff935f8bee7f3e2e6712af0a887ba2b3" name="empty" cv="const"><type>bool</type><purpose>Returns <computeroutput>true</computeroutput> if the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view">mapped_view</link> is empty. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a531257763cf9448b95c7dfc1c517f3f3" name="get_buffer" cv="const"><type>const buffer &amp;</type><purpose>Returns the mapped buffer. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a5c634e964cf3380325a8510f5eace3b1" name="map"><type>void</type><parameter name="flags"><paramtype>cl_map_flags</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Maps the buffer into the host address space.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1aa4081d7bc37746c1f6d83484b47480f5" name="map"><type>void</type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Maps the buffer into the host address space for reading and writing.</para><para>Equivalent to: <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a5c634e964cf3380325a8510f5eace3b1">map</link>(CL_MAP_READ | CL_MAP_WRITE, queue);
</programlisting> </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1abeaa10d4a7954c7b167a113c4b61fa67" name="unmap"><type>void</type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Unmaps the buffer from the host address space.</para><para>See the documentation for </para></description></method>
</method-group>
<method-group name="private static functions">
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.stack_8hpp" name="boost/compute/container/stack.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1stack" name="stack"><template>
      <template-type-parameter name="T"/>
    </template><typedef id="doxygen.header_reference.classboost_1_1compute_1_1stack_1ab927105069b6f700d321321c8072d4a1" name="container_type"><type><classname>vector</classname>&lt; T &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1stack_1a21fd2e9ee754349c0da41c74140c7d0c" name="size_type"><type>container_type::size_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1stack_1a503179e626675275d3c58e64ec47e291" name="value_type"><type>container_type::value_type</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1stack_1ab948902fa53e8fe28649c9044bef3db0"/>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1stack_1aed1dc90be78d1f62cb640142f9394ae0"><parameter name="other"><paramtype>const stack&lt; T &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1stack_1a6ebe3e5806f509c34d9893fd38db20c6"><type>stack&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const stack&lt; T &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1stack_1a94faa54b43819cb861080ba675c220e9"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1stack_1aaefe7e653f5db1d87054d0ae462dfa8e" name="empty" cv="const"><type>bool</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1stack_1aa6be5ef530243e4fe3d1d185b6c80613" name="size" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1stack_1abe6d23a234530146d5f43fc2ac527d9f" name="top" cv="const"><type>value_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1stack_1ac957c5e9b167e5feabab83c65336fa3e" name="push"><type>void</type><parameter name="value"><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1stack_1a04b5f77accf79d453ff9b0cbdaf7f35e" name="pop"><type>void</type></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.string_8hpp" name="boost/compute/container/string.hpp">
<namespace name="boost">
<namespace name="compute">
<typedef id="doxygen.header_reference.string_8hpp_1aa1c9fb25e3b8186359e73351bd4742ca" name="string"><type><classname>basic_string</classname>&lt; char_ &gt;</type></typedef>





































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.valarray_8hpp" name="boost/compute/container/valarray.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1valarray" name="valarray"><template>
      <template-type-parameter name="T"/>
    </template><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1ac9e5117db898e8dd4a352af81afe1ef1" specifiers="explicit"><parameter name="context"><paramtype>const context &amp;</paramtype><default>system::default_context()</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1ac2566135295ab969fd282ff609d3dd7a" specifiers="explicit"><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype><default>system::default_context()</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a7d256380797980c3afd11d158f151594"><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype><default>system::default_context()</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a1f94b13566d2541eef088bb4144c8e49"><parameter name="values"><paramtype>const T *</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype><default>system::default_context()</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1aaf2102ffc1bb630bfa3e89c5769c51c6"><parameter name="other"><paramtype>const valarray&lt; T &gt; &amp;</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1abdc8f617dcc6c10f39b2ac10e61c7f0a"><parameter name="valarray"><paramtype>const std::valarray&lt; T &gt; &amp;</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype><default>system::default_context()</default></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1adc8c32b4b16f5d4122a9d1d83ab9dc8b"><type>valarray&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const valarray&lt; T &gt; &amp;</paramtype></parameter></copy-assignment>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1af0aa552dec1e4eec4a0bc6c9d0fda2a3"><type>valarray&lt; T &gt; &amp;</type><parameter name="valarray"><paramtype>const std::valarray&lt; T &gt; &amp;</paramtype></parameter></copy-assignment>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1ae603e94e3245a783735332da6cfadb4f" name="operator*="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a6fa51982a9c66bd4caccb049a4535a2e" name="operator/="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1ac35f10f35aabbf5a4be717d7cf01d4ab" name="operator%="><type>valarray&lt; T &gt; &amp;</type><parameter name="val"><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1aefd4ce93f0010537da5c59b5dfee0415" name="operator+" cv="const"><type>valarray&lt; T &gt;</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a4449f61e059ecec7f62562738220c5cf" name="operator-" cv="const"><type>valarray&lt; T &gt;</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a745fe6b2368962b3c0fe4661e6bf89c5" name="operator~" cv="const"><type>valarray&lt; T &gt;</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a8fdd87b5d550246b283a647d8f292625" name="operator!" cv="const"><type>valarray&lt; char &gt;</type><description><para>In OpenCL there cannot be memory buffer with bool type, for this reason return type is valarray&lt;char&gt; instead of valarray&lt;bool&gt;. 1 means true, 0 means false. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a3d98d7fc067a50b042e3d5dc31d7fea3" name="operator+="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a678c9bd03cc07bcda97bd1490a7226e3" name="operator-="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a7491683485439cecdce9ac5ef4c7d240" name="operator^="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1aed218474a3002b749734282f78858c3e" name="operator&amp;="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a710a8689b469b3dfb2c6fc05cce60f0e" name="operator|="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a9f2ca56eaa497ff08468dcf8912a6438" name="operator&lt;&lt;="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1ae47955ab5aa4f5ffb7db24f19d886faf" name="operator&gt;&gt;="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a944b94d78952fae114f06361c9c0baef" name="operator*="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const valarray&lt; T &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a1b6b02265873c94553bcddeca7fbf4f3" name="operator/="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const valarray&lt; T &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1aa1d58f1756dc3ea3240f7fe3e4ffa4b0" name="operator%="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const valarray&lt; T &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a91a24394c8e4a41457e101da5f163d77" name="operator+="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const valarray&lt; T &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a344b174d67c9ca083e3fc6b8ed5e2680" name="operator-="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const valarray&lt; T &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a409be731aeeb7a28f878f19b2fd75aac" name="operator^="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const valarray&lt; T &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a3962c3b29144932eb25c879969325c70" name="operator&amp;="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const valarray&lt; T &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a26c761a8a25666ff73da4d7f6d7cf49f" name="operator|="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const valarray&lt; T &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a13329277a6423de66c4d9b12805406b3" name="operator&lt;&lt;="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const valarray&lt; T &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a4b29cbc95dba6d768c82884406ad32a3" name="operator&gt;&gt;="><type>valarray&lt; T &gt; &amp;</type><parameter name=""><paramtype>const valarray&lt; T &gt; &amp;</paramtype></parameter></method>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1adc9a1155a9a64ba53c51cf1cc842d0eb"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a11c7058ec57d57c833f3868ee41e6745" name="size" cv="const"><type>size_t</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a6d771a66e8bed8e4671f5e7592d63854" name="resize"><type>void</type><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="value"><paramtype>T</paramtype><default>T()</default></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a775892d2e437496a7c144861029ac15e" name="operator[]"><type><emphasis>unspecified</emphasis></type><parameter name="index"><paramtype>size_t</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1ab865902ed9cb04e3710107e705366a16" name="operator[]" cv="const"><type><emphasis>unspecified</emphasis></type><parameter name="index"><paramtype>size_t</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a1381ff643d7b0e0e921122e3649646e8" name="min" cv="const"><type>T()</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1aa9c51c7e0dfab8cc3766d1136b1795d4" name="max" cv="const"><type>T()</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a097544aa706b22f74cb41399c3ffdcf3" name="sum" cv="const"><type>T</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a4fc6673771b3a8d36ac1bc930c1dfbe1" name="apply" cv="const"><type>valarray&lt; T &gt;</type><template>
          <template-type-parameter name="UnaryFunction"/>
        </template><parameter name="function"><paramtype>UnaryFunction</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a8f940c39dd4c2176fb4d903a165ab34f" name="get_buffer" cv="const"><type>const buffer &amp;</type></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1aa4a43b86ad2467b523d12d4f7f84d185" name="begin" cv="const"><type><classname>buffer_iterator</classname>&lt; T &gt;</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a4a3e7e236336c33cfbacebe495665d7a" name="end" cv="const"><type><classname>buffer_iterator</classname>&lt; T &gt;</type></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
<macro id="doxygen.header_reference.valarray_8hpp_1a7ff74bd8ca73c5eb8b396732d917c792" name="BOOST_COMPUTE_DEFINE_VALARRAY_BINARY_OPERATOR" kind="functionlike"><macro-parameter name="op"/><macro-parameter name="op_name"/><macro-parameter name="assert"/></macro>
<macro id="doxygen.header_reference.valarray_8hpp_1a5b029fb7e82c52e212a95aeb0ba7f1c1" name="BOOST_COMPUTE_DEFINE_VALARRAY_BINARY_OPERATOR_ANY" kind="functionlike"><macro-parameter name="op"/><macro-parameter name="op_name"/></macro>
<macro id="doxygen.header_reference.valarray_8hpp_1ae3470d3df7ad9ec044e377f36d872200" name="BOOST_COMPUTE_DEFINE_VALARRAY_BINARY_OPERATOR_NO_FP" kind="functionlike"><macro-parameter name="op"/><macro-parameter name="op_name"/></macro>
<macro id="doxygen.header_reference.valarray_8hpp_1a136ecffdec02169941c3dc2a7ba9711c" name="BOOST_COMPUTE_DEFINE_VALARRAY_COMPARISON_OPERATOR" kind="functionlike"><macro-parameter name="op"/><macro-parameter name="op_name"/></macro>
<macro id="doxygen.header_reference.valarray_8hpp_1a7552af82cee5af03179f211439905ecf" name="BOOST_COMPUTE_DEFINE_VALARRAY_LOGICAL_OPERATOR" kind="functionlike"><macro-parameter name="op"/><macro-parameter name="op_name"/></macro>
</header>
<header id="doxygen.header_reference.vector_8hpp" name="boost/compute/container/vector.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1vector" name="vector"><template>
      <template-type-parameter name="T"/>
      <template-type-parameter name="Alloc"><default>buffer_allocator&lt;T&gt;</default></template-type-parameter>
    </template><purpose>A resizable array of values. </purpose><description><para>The vector&lt;T&gt; class stores a dynamic array of values. Internally, the data is stored in an OpenCL buffer object.</para><para>The vector class is the prefered container for storing and accessing data on a compute device. In most cases it should be used instead of directly dealing with buffer objects. If the undelying buffer is needed, it can be accessed with the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector_1a223c44c0c5f1658eb9a09d3efc5292b0">get_buffer()</link> method.</para><para>The internal storage is allocated in a specific OpenCL context which is passed as an argument to the constructor when the vector is created.</para><para>For example, to create a vector on the device containing space for ten <computeroutput>int</computeroutput> values: <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">boost::compute::vector&lt;int&gt;</link> vec(10, context);
</programlisting></para><para>Allocation and data transfer can also be performed in a single step: <programlisting language="c++">// values on the host
int data[] = { 1, 2, 3, 4 };

// create a vector of size four and copy the values from data
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">boost::compute::vector&lt;int&gt;</link> vec(data, data + 4, queue);
</programlisting></para><para>The Boost.Compute <computeroutput>vector</computeroutput> class provides a STL-like API and is modeled after the <computeroutput>std::vector</computeroutput> class from the C++ standard library. It can be used with any of the STL-like algorithms provided by Boost.Compute including <computeroutput>copy()</computeroutput>, <computeroutput>transform()</computeroutput>, and <computeroutput>sort()</computeroutput> (among many others).</para><para>For example: <programlisting language="c++">// a vector on a compute device
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">boost::compute::vector&lt;float&gt;</link> vec = ...

// copy data to the vector from a host std:vector
boost::compute::copy(host_vec.begin(), host_vec.end(), vec.begin(), queue);

// copy data from the vector to a host std::vector
boost::compute::copy(vec.begin(), vec.end(), host_vec.begin(), queue);

// sort the values in the vector
boost::compute::sort(vec.begin(), vec.end(), queue);

// calculate the sum of the values in the vector (also see reduce())
float sum = boost::compute::accumulate(vec.begin(), vec.end(), 0, queue);

// reverse the values in the vector
boost::compute::reverse(vec.begin(), vec.end(), queue);

// fill the vector with ones
boost::compute::fill(vec.begin(), vec.end(), 1, queue);
</programlisting></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1array">array&lt;T, N&gt;</link>, buffer </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a734e174ca969dbed7fbe1cd1e142f1c3" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ae985b1eb2ea400ce94b74e97833cb586" name="allocator_type"><type>Alloc</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1aaa3d7b76bd6aa96c3ffb848c3f873531" name="size_type"><type>allocator_type::size_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a787627eb2c7c28db387d9d1b274df7ad" name="difference_type"><type>allocator_type::difference_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a530f94275abd77b110d9cb9d25b2db88" name="reference"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a5854fb9262fd95ecd03257d4db1e4cc8" name="const_reference"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a581c383fbbee2206ac72654c13ea36fc" name="pointer"><type>allocator_type::pointer</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a982ad490e1b786a9a1024fe2d117fab1" name="const_pointer"><type>allocator_type::const_pointer</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1afab28cb49f566c45a7ee5c57ee02c9a2" name="iterator"><type><classname>buffer_iterator</classname>&lt; T &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a65c9a837231c4ea06aa9861867f6bac7" name="const_iterator"><type><classname>buffer_iterator</classname>&lt; T &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a423dffc917a18530d9d198f1a3705215" name="reverse_iterator"><type>std::reverse_iterator&lt; <classname>iterator</classname> &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1af1217f2cfc124e3e1c2bd1b59d8cec6f" name="const_reverse_iterator"><type>std::reverse_iterator&lt; <classname>const_iterator</classname> &gt;</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a6a2ad89d0cfb94c4003d08e2e04e7f2e" specifiers="explicit"><parameter name="context"><paramtype>const context &amp;</paramtype><default>system::default_context()</default></parameter><purpose>Creates an empty vector in <computeroutput>context</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ac820db8458a6a7c4ef568b83979ff060" specifiers="explicit"><parameter name="count"><paramtype>size_type</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype><default>system::default_context()</default></parameter><description><para>Creates a vector with space for <computeroutput>count</computeroutput> elements in <computeroutput>context</computeroutput>.</para><para>Note that unlike <computeroutput>std::vector's</computeroutput> constructor, this will not initialize the values in the container. Either call the vector constructor which takes a value to initialize with or use the fill() algorithm to set the initial values.</para><para>For example: <programlisting language="c++">// create a vector on the device with space for ten ints
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">boost::compute::vector&lt;int&gt;</link> vec(10, context);
</programlisting> </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ae50e30e93774fad730830edbddf8162a"><parameter name="count"><paramtype>size_type</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Creates a vector with space for <computeroutput>count</computeroutput> elements and sets each equal to <computeroutput>value</computeroutput>.</para><para>For example: <programlisting language="c++">// creates a vector with four values set to nine (e.g. [9, 9, 9, 9]).
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">boost::compute::vector&lt;int&gt;</link> vec(4, 9, queue);
</programlisting> </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a4a3ccf51d4bc4e2e1ef0b7eeefe3531a"><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><description><para>Creates a vector with space for the values in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) and copies them into the vector with <computeroutput>queue</computeroutput>.</para><para>For example: <programlisting language="c++">// values on the host
int data[] = { 1, 2, 3, 4 };

// create a vector of size four and copy the values from data
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">boost::compute::vector&lt;int&gt;</link> vec(data, data + 4, queue);
</programlisting> </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a1a6318ef202eb12fdf0966b764d920f7"><parameter name="other"><paramtype>const <classname>vector</classname> &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>Creates a new vector and copies the values from <computeroutput>other</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a09d6871df297d36d7b1a695f3e527b66"><template>
          <template-type-parameter name="OtherAlloc"/>
        </template><parameter name="other"><paramtype>const <classname>vector</classname>&lt; T, OtherAlloc &gt; &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>Creates a new vector and copies the values from <computeroutput>other</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a1bb98e494106f3f44dc19aa251b902b5"><template>
          <template-type-parameter name="OtherAlloc"/>
        </template><parameter name="vector"><paramtype>const std::vector&lt; T, OtherAlloc &gt; &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter><purpose>Creates a new vector and copies the values from <computeroutput>vector</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a006390a2428ecdef2f823b4f6457bf38"><parameter name="list"><paramtype>std::initializer_list&lt; T &gt;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><default>system::default_queue()</default></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a6c5d96ce76a6a1e368ffb37eb3f2782d"><type><classname>vector</classname> &amp;</type><parameter name="other"><paramtype>const <classname>vector</classname> &amp;</paramtype></parameter></copy-assignment>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1vector_1aeb6f4139248e1a2f4b63b311dbce95d6"><type><classname>vector</classname> &amp;</type><template>
          <template-type-parameter name="OtherAlloc"/>
        </template><parameter name="other"><paramtype>const <classname>vector</classname>&lt; T, OtherAlloc &gt; &amp;</paramtype></parameter></copy-assignment>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1vector_1aa96aac06bbb7af2df14534f41c1d6c8a"><type><classname>vector</classname> &amp;</type><template>
          <template-type-parameter name="OtherAlloc"/>
        </template><parameter name="vector"><paramtype>const std::vector&lt; T, OtherAlloc &gt; &amp;</paramtype></parameter></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a0c4f0cf7bd63658827b21cf71254698d"><parameter name="other"><paramtype><classname>vector</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new vector from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a2befd8ecf4ad5f88a35e7d2fc2291052"><type><classname>vector</classname> &amp;</type><parameter name="other"><paramtype><classname>vector</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the data from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a5ae5fa56418298c47453abbbaeda13fe"><purpose>Destroys the vector object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1aeb824d9e1fb292049a02376122ab1bc3" name="begin"><type><classname>iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a0aaaae3b6b547da5de634b2bc6937c75" name="begin" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a2f6d661f35db2755e4aeb088d8432eae" name="cbegin" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a6a50298a4049ad2d1420852c325abdbc" name="end"><type><classname>iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ab5b84d943bfbe5f7391796f707ed1bad" name="end" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a0813ff4eb4f290cef78981c01d5484ad" name="cend" cv="const"><type><classname>const_iterator</classname></type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1adac8b9b85063d50bae8490c33af615a8" name="rbegin"><type>reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a8b889fab4a2ef9062a0b3a384e1b6737" name="rbegin" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ae223c778628ddb50c1a87f8792338150" name="crbegin" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a72d519c627400e23137326f9f89c7596" name="rend"><type>reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a1f1f03f323e757bf945ddf008e07b30e" name="rend" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a730861eb9f6bdac5d36381a1ed25e2f8" name="crend" cv="const"><type>const_reverse_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a89afb9e907bb8137523da7284510a2f3" name="size" cv="const"><type>size_type</type><purpose>Returns the number of elements in the vector. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ad1417bdd4ccdfd33d95bfb262bae442d" name="max_size" cv="const"><type>size_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a7e90e9ba9e8a3e4449697d3cf0d9a63d" name="resize"><type>void</type><parameter name="size"><paramtype>size_type</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Resizes the vector to <computeroutput>size</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a2b9520611f4bf2e4c7f642e1440768fd" name="resize"><type>void</type><parameter name="size"><paramtype>size_type</paramtype></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a52353dcf5a00a2c7f8e415a861d3754b" name="empty" cv="const"><type>bool</type><purpose>Returns <computeroutput>true</computeroutput> if the vector is empty. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1aca6e31afe9b81cd0be967ccf02826fd0" name="capacity" cv="const"><type>size_type</type><purpose>Returns the capacity of the vector. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ac523f129ba4eef48d0d2a4b305a1baf3" name="reserve"><type>void</type><parameter name="size"><paramtype>size_type</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a9d2ed98c4de7d4e8b0c42038b63122ed" name="reserve"><type>void</type><parameter name="size"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a4c21af3f44e1e724b5f3c49469f8eb56" name="shrink_to_fit"><type>void</type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ae634eaed77988b0ce48be86ac265c8d9" name="shrink_to_fit"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a427a511aea535d6a91151f9c1f65e066" name="operator[]"><type>reference</type><parameter name="index"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1aa1de59ec867957c30b2af66f8230c9b3" name="operator[]" cv="const"><type>const_reference</type><parameter name="index"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a367d79341d809fe277a020d665968d00" name="at"><type>reference</type><parameter name="index"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a4d42fb3e559ee2e0f543dedb73593d1e" name="at" cv="const"><type>const_reference</type><parameter name="index"><paramtype>size_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a5f6417893dd9fc16366ed7477ad5dedb" name="front"><type>reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a03dd1d9e875f1ddff51005e77b820d0d" name="front" cv="const"><type>const_reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1aea89b6023b73dd80b0f95620a909e0c3" name="back"><type>reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1aef59a73c217237f3d18fd7af79d8e839" name="back" cv="const"><type>const_reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a00d094f5b2ef17990d968cdf83130a40" name="assign"><type>void</type><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a524ca6737656189b2bde2e864ca2e3d0" name="assign"><type>void</type><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a70f4b3d3898de71c2e53c770ab7620e9" name="assign"><type>void</type><parameter name="n"><paramtype>size_type</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ae33aee5525befcb3a77efafc052aa20f" name="assign"><type>void</type><parameter name="n"><paramtype>size_type</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a851973f375fc55a244f3bb01ea501983" name="push_back"><type>void</type><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Inserts <computeroutput>value</computeroutput> at the end of the vector (resizing if neccessary).</para><para>Note that calling <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector_1a851973f375fc55a244f3bb01ea501983">push_back()</link></computeroutput> to insert data values one at a time is inefficient as there is a non-trivial overhead in performing a data transfer to the device. It is usually better to store a set of values on the host (for example, in a <computeroutput>std::vector</computeroutput>) and then transfer them in bulk using the <computeroutput>insert()</computeroutput> method or the copy() algorithm. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a2433b054279d8ee82a2e1b95f212bdf8" name="push_back"><type>void</type><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a16e5e51d2526bb427ca3f6cec84504fb" name="pop_back"><type>void</type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ab532e59899917f54a1c0a11c686755a9" name="pop_back"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a73eaf9ec84f8b82283422739b37a859c" name="insert"><type><classname>iterator</classname></type><parameter name="position"><paramtype><classname>iterator</classname></paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a79300306f7e8f9a6442ebd3c35416711" name="insert"><type><classname>iterator</classname></type><parameter name="position"><paramtype><classname>iterator</classname></paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1aee284172f585a9bf43c73273427b9578" name="insert"><type>void</type><parameter name="position"><paramtype><classname>iterator</classname></paramtype></parameter><parameter name="count"><paramtype>size_type</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1af2e50363d0cb09e2f03fbec453ed1d01" name="insert"><type>void</type><parameter name="position"><paramtype><classname>iterator</classname></paramtype></parameter><parameter name="count"><paramtype>size_type</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1aef774c27c38f02cf4607aa9b4d6bc538" name="insert"><type>void</type><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="position"><paramtype><classname>iterator</classname></paramtype></parameter><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Inserts the values in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>) into the vector at <computeroutput>position</computeroutput> using <computeroutput>queue</computeroutput>. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a24171848733fe267e5f5a692239ab62a" name="insert"><type>void</type><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="position"><paramtype><classname>iterator</classname></paramtype></parameter><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a87957e6409e38151011dfe985a101279" name="erase"><type><classname>iterator</classname></type><parameter name="position"><paramtype><classname>iterator</classname></paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a2b3930274aa604468485631b4fd918f6" name="erase"><type><classname>iterator</classname></type><parameter name="position"><paramtype><classname>iterator</classname></paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a5409bd7c2dbf74da0fa8d4d98f7036b2" name="erase"><type><classname>iterator</classname></type><parameter name="first"><paramtype><classname>iterator</classname></paramtype></parameter><parameter name="last"><paramtype><classname>iterator</classname></paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1aa7921528a7dd192c2b578c4e0f27e038" name="erase"><type><classname>iterator</classname></type><parameter name="first"><paramtype><classname>iterator</classname></paramtype></parameter><parameter name="last"><paramtype><classname>iterator</classname></paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ad267ad9916a98da58a8ce422565270a6" name="swap"><type>void</type><parameter name="other"><paramtype><classname>vector</classname> &amp;</paramtype></parameter><purpose>Swaps the contents of <computeroutput>*this</computeroutput> with <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a957a0c7ae3ed28a047d7abb566bfae83" name="clear"><type>void</type><purpose>Removes all elements from the vector. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1aba1a565255b6b1258f2872aa71b94c30" name="get_allocator" cv="const"><type>allocator_type</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a223c44c0c5f1658eb9a09d3efc5292b0" name="get_buffer" cv="const"><type>const buffer &amp;</type><purpose>Returns the underlying buffer. </purpose></method>
</method-group>
<method-group name="private member functions">
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.context__error_8hpp" name="boost/compute/exception/context_error.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1context__error" name="context_error"><inherit access="public">std::exception</inherit><purpose>A run-time OpenCL context error. </purpose><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1context__error">context_error</link> exception is thrown when the OpenCL context encounters an error condition. Boost.Compute is notified of these error conditions by registering an error handler when creating context objects (via the <computeroutput>pfn_notify</computeroutput> argument to the <computeroutput>clCreateContext()</computeroutput> function).</para><para>This exception is different than the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1opencl__error">opencl_error</link> exception which is thrown as a result of error caused when calling a single OpenCL API function.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1opencl__error">opencl_error</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1context__error_1a0d954641c9582cfd65100ad78afd709a"><parameter name="context"><paramtype>const context *</paramtype></parameter><parameter name="errinfo"><paramtype>const char *</paramtype></parameter><parameter name="private_info"><paramtype>const void *</paramtype></parameter><parameter name="private_info_size"><paramtype>size_t</paramtype></parameter><purpose>Creates a new context error exception object. </purpose></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1context__error_1ad564118530d7f2b88d4dbeec14805cf3"><purpose>Destroys the context error object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1context__error_1af018dd38991827c5d2e81d050ae07be1" name="what" cv="const"><type>const char *</type><purpose>Returns a string with a description of the error. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1context__error_1aa1eb0b495aa03fa7c88868aadfcce294" name="get_context_ptr" cv="const"><type>const context *</type><description><para>Returns a pointer to the context object which generated the error notification. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1context__error_1a6bc7920f5927a7abdb108901838b4021" name="get_private_info_ptr" cv="const"><type>const void *</type><purpose>Returns a pointer to the private info memory block. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1context__error_1a1cc6d9628c3950a20dfdf1bda60eeb84" name="get_private_info_size" cv="const"><type>size_t</type><purpose>Returns the size of the private info memory block. </purpose></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.no__device__found_8hpp" name="boost/compute/exception/no_device_found.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1no__device__found" name="no_device_found"><inherit access="public">std::exception</inherit><purpose>Exception thrown when no OpenCL device is found. </purpose><description><para>This exception is thrown when no valid OpenCL device can be found.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1opencl__error">opencl_error</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1no__device__found_1a7fe6a1edafd0c05e0b9f0178e476cc8e"><purpose>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1no__device__found">no_device_found</link> exception object. </purpose></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1no__device__found_1a43bef87d314720591325f4ab7689de1c"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1no__device__found">no_device_found</link> exception object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1no__device__found_1aac3dc076d44c802bdaf7ea60b19205b1" name="what" cv="const"><type>const char *</type><purpose>Returns a string containing a human-readable error message. </purpose></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.opencl__error_8hpp" name="boost/compute/exception/opencl_error.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1opencl__error" name="opencl_error"><inherit access="public">std::exception</inherit><purpose>A run-time OpenCL error. </purpose><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1opencl__error">opencl_error</link> class represents an error returned from an OpenCL function.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1context__error">context_error</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1opencl__error_1a9629ac31a9e21dcc5bd21a9a6dbed4d1" specifiers="explicit"><parameter name="error"><paramtype>cl_int</paramtype></parameter><purpose>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1opencl__error">opencl_error</link> exception object for <computeroutput>error</computeroutput>. </purpose></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1opencl__error_1a8b7c5dc210cfb4bce9d2dec26c23f1b7"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1opencl__error">opencl_error</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1opencl__error_1aa2d37ddfcdf63108f8aef5ec0fdd37cc" name="error_code" cv="const"><type>cl_int</type><purpose>Returns the numeric error code. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1opencl__error_1a3bf390c5669e1669c7c6ddc9131cd799" name="error_string" cv="const"><type>std::string</type><purpose>Returns a string description of the error. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1opencl__error_1a7e3e7e5d57ee51f9214f8086216b51b4" name="what" cv="const"><type>const char *</type><purpose>Returns a C-string description of the error. </purpose></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1opencl__error_1a1288e4943f4a942214a0b84a1b907129" name="to_string" specifiers="static"><type>std::string</type><parameter name="error"><paramtype>cl_int</paramtype></parameter><description><para>Static function which converts the numeric OpenCL error code <computeroutput>error</computeroutput> to a human-readable string.</para><para>For example: <programlisting language="c++">std::cout &lt;&lt; <link linkend="doxygen.header_reference.classboost_1_1compute_1_1opencl__error_1a1288e4943f4a942214a0b84a1b907129">opencl_error::to_string</link>(CL_INVALID_KERNEL_ARGS) &lt;&lt; std::endl;
</programlisting></para><para>Will print "Invalid Kernel Arguments".</para><para>If the error code is unknown (e.g. not a valid OpenCL error), a string containing "Unknown OpenCL Error" along with the error number will be returned. </para></description></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.program__build__failure_8hpp" name="boost/compute/exception/program_build_failure.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1program__build__failure" name="program_build_failure"><inherit access="public">boost::compute::opencl_error</inherit><purpose>A failure when building OpenCL program. </purpose><description><para>Instances of this class are thrown when OpenCL program build fails. Extends <link linkend="doxygen.header_reference.classboost_1_1compute_1_1opencl__error">opencl_error</link> by saving a program build log so it can be used for testing, debugging, or logging purposes.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1opencl__error">opencl_error</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1program__build__failure_1a5dcabf899ad5f7d2e1cb1014a7611d4a" specifiers="explicit"><parameter name="error"><paramtype>cl_int</paramtype></parameter><parameter name="build_log"><paramtype>const std::string &amp;</paramtype></parameter><description><para>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1program__build__failure">program_build_failure</link> exception object for <computeroutput>error</computeroutput> and <computeroutput>build_log</computeroutput>. </para></description></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1program__build__failure_1a398f0b266b18a277ba891a2c84ebb6b5"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1program__build__failure">program_build_failure</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program__build__failure_1ac6ca74f1f34934be29f8bf2dee3e32be" name="build_log" cv="const"><type>std::string</type><purpose>Retrieve the log of a failed program build. </purpose></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.set__default__queue__error_8hpp" name="boost/compute/exception/set_default_queue_error.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1set__default__queue__error" name="set_default_queue_error"><inherit access="public">std::exception</inherit><purpose>Exception thrown when failure to set default command queue. </purpose><description><para>This exception is thrown when Boost.Compute fails to set up user-provided default command queue for the system. <sbr/>
 </para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1set__default__queue__error_1a32f3671906c7a0d4d46ebff4075684a0"><purpose>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1set__default__queue__error">set_default_queue_error</link> exception object. </purpose></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1set__default__queue__error_1a4152832c5cc5e75075c902af62c8fe09"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1set__default__queue__error">set_default_queue_error</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1set__default__queue__error_1a0269d4eebb9d03886ce155fd06a3e53b" name="what" cv="const"><type>const char *</type><purpose>Returns a string with a description of the error. </purpose></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.unsupported__extension__error_8hpp" name="boost/compute/exception/unsupported_extension_error.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1unsupported__extension__error" name="unsupported_extension_error"><inherit access="public">std::exception</inherit><purpose>Exception thrown when attempting to use an unsupported OpenCL extension. </purpose><description><para>This exception is thrown when the user attempts to use an OpenCL extension which is not supported on the platform and/or device.</para><para>An example of this is attempting to use CL-GL sharing on a non-GPU device.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1opencl__error">opencl_error</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1unsupported__extension__error_1a64375fd8bed6c97c918960e875d46753" specifiers="explicit"><parameter name="extension"><paramtype>const char *</paramtype></parameter><description><para>Creates a new unsupported extension error exception object indicating that <computeroutput>extension</computeroutput> is not supported by the OpenCL platform or device. </para></description></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1unsupported__extension__error_1ad89463104add1eecb1be819956230bf6"><purpose>Destroys the unsupported extension error object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1unsupported__extension__error_1a0cd7ca23524ffba807caafcea5d42383" name="extension_name" cv="const"><type>std::string</type><purpose>Returns the name of the unsupported extension. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1unsupported__extension__error_1a7e91c8a56c8cbdae7d273172d8d036bd" name="what" cv="const"><type>const char *</type><description><para>Returns a string containing a human-readable error message containing the name of the unsupported exception. </para></description></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.as_8hpp" name="boost/compute/functional/as.hpp">
<namespace name="boost">
<namespace name="compute">
<struct id="doxygen.header_reference.structboost_1_1compute_1_1as" name="as"><template>
      <template-type-parameter name="T"/>
    </template><description><para>The <link linkend="doxygen.header_reference.structboost_1_1compute_1_1as">as</link> function converts its argument to type <computeroutput>T</computeroutput> (similar to reinterpret_cast&lt;T&gt;).</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.structboost_1_1compute_1_1convert">convert&lt;T&gt;</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.structboost_1_1compute_1_1as_1a6fdc3a05e423421abfeb5b00fe7ecf1d" name="result_type"><type>T</type></typedef>
<method-group name="public member functions">
</method-group>
</struct>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.atomic_8hpp" name="boost/compute/functional/atomic.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1atomic__add" name="atomic_add"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">function&lt; T(T *, T)&gt;</inherit><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1atomic__add_1afb741a821f428410eab8bf4879a5117e"/>
</method-group>
</class><class id="doxygen.header_reference.classboost_1_1compute_1_1atomic__and" name="atomic_and"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">function&lt; T(T *, T)&gt;</inherit><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1atomic__and_1add2f602959e831c931bf19fdbb161b21"/>
</method-group>
</class><class id="doxygen.header_reference.classboost_1_1compute_1_1atomic__cmpxchg" name="atomic_cmpxchg"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">function&lt; T(T *, T, T)&gt;</inherit><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1atomic__cmpxchg_1a435c4643c3280f5e549c4a6d10c09fec"/>
</method-group>
</class><class id="doxygen.header_reference.classboost_1_1compute_1_1atomic__dec" name="atomic_dec"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">function&lt; T(T *)&gt;</inherit><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1atomic__dec_1ada353e1c305f4785c9d9e36bb653ae08"/>
</method-group>
</class><class id="doxygen.header_reference.classboost_1_1compute_1_1atomic__inc" name="atomic_inc"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">function&lt; T(T *)&gt;</inherit><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1atomic__inc_1a3e2c4b74e0d0087071bb08c3ae6e989f"/>
</method-group>
</class><class id="doxygen.header_reference.classboost_1_1compute_1_1atomic__max" name="atomic_max"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">function&lt; T(T *, T)&gt;</inherit><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1atomic__max_1a47480be1a84e13c2ff9b2e3c03b9ce72"/>
</method-group>
</class><class id="doxygen.header_reference.classboost_1_1compute_1_1atomic__min" name="atomic_min"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">function&lt; T(T *, T)&gt;</inherit><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1atomic__min_1a052c446ef39d2f67ca7e32cf11a59e9c"/>
</method-group>
</class><class id="doxygen.header_reference.classboost_1_1compute_1_1atomic__or" name="atomic_or"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">function&lt; T(T *, T)&gt;</inherit><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1atomic__or_1ac9d350ac52006b126285c17b37bb51c2"/>
</method-group>
</class><class id="doxygen.header_reference.classboost_1_1compute_1_1atomic__sub" name="atomic_sub"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">function&lt; T(T *, T)&gt;</inherit><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1atomic__sub_1aa7aabc703e82b25c2d15f1c2dec842b7"/>
</method-group>
</class><class id="doxygen.header_reference.classboost_1_1compute_1_1atomic__xchg" name="atomic_xchg"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">function&lt; T(T *, T)&gt;</inherit><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1atomic__xchg_1a79969fd2586b19bcd9ba082a2516ac2d"/>
</method-group>
</class><class id="doxygen.header_reference.classboost_1_1compute_1_1atomic__xor" name="atomic_xor"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">function&lt; T(T *, T)&gt;</inherit><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1atomic__xor_1a2b5afbe28ce89e78b4e1512cec819eae"/>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.bind_8hpp" name="boost/compute/functional/bind.hpp">
<namespace name="boost">
<namespace name="compute">
<struct id="doxygen.header_reference.structboost_1_1compute_1_1is__placeholder" name="is_placeholder"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">boost::false_type</inherit><purpose>Meta-function returning <computeroutput>true</computeroutput> if <computeroutput>T</computeroutput> is a placeholder type. </purpose></struct><namespace name="placeholders">
<data-member id="doxygen.header_reference.bind_8hpp_1a9d120846866784fab8f626b747f9b146" name="_1"><type><classname>placeholder</classname>&lt; 0 &gt; const</type></data-member>
<data-member id="doxygen.header_reference.bind_8hpp_1a7a42922dfbf4aaed300a525d38abdaee" name="_2"><type><classname>placeholder</classname>&lt; 1 &gt; const</type></data-member>
</namespace>
















































































































<function id="doxygen.header_reference.bind_8hpp_1ab0cbccb08556fe02ac7078a1734a21e8" name="bind"><type><emphasis>unspecified</emphasis></type><template>
          <template-type-parameter name="F"/>
          <template-nontype-parameter name="Args"><type>class...</type></template-nontype-parameter>
        </template><parameter name="f"><paramtype>F</paramtype></parameter><parameter name="args"><paramtype>Args...</paramtype></parameter><description><para>Returns a function wrapper which invokes <computeroutput>f</computeroutput> with <computeroutput>args</computeroutput> when called.</para><para>For example, to generate a unary function object which returns <computeroutput>true</computeroutput> when its argument is less than <computeroutput>7</computeroutput>: <programlisting language="c++">using boost::compute::less;
using boost::compute::placeholders::_1;

auto less_than_seven = boost::compute::bind(less&lt;int&gt;(), _1, 7);
</programlisting> </para></description></function>




















</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.common_8hpp" name="boost/compute/functional/common.hpp">
<namespace name="boost">
<namespace name="compute">





































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.convert_8hpp" name="boost/compute/functional/convert.hpp">
<namespace name="boost">
<namespace name="compute">
<struct id="doxygen.header_reference.structboost_1_1compute_1_1convert" name="convert"><template>
      <template-type-parameter name="T"/>
    </template><description><para>The <link linkend="doxygen.header_reference.structboost_1_1compute_1_1convert">convert</link> function converts its argument to type <computeroutput>T</computeroutput> (similar to static_cast&lt;T&gt;).</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.structboost_1_1compute_1_1as">as&lt;T&gt;</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.structboost_1_1compute_1_1convert_1a607e232279a5923f3ca65bc26b166189" name="result_type"><type>T</type></typedef>
<method-group name="public member functions">
</method-group>
</struct>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.field_8hpp" name="boost/compute/functional/field.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1field" name="field"><template>
      <template-type-parameter name="T"/>
    </template><description><para>Returns the named field from a value.</para><para>The template-type <computeroutput>T</computeroutput> specifies the field's value type. Note that the value type must match the actual type of the field otherwise runtime compilation or logic errors may occur.</para><para>For example, to access the <computeroutput>second</computeroutput> field in a <computeroutput>std::pair&lt;int, float&gt;</computeroutput> object: <programlisting language="c++">field&lt;float&gt;("second");
</programlisting></para><para>This can also be used with vector types to access individual components as well as perform swizzle operations.</para><para>For example, to access the first and third components of an <computeroutput>int</computeroutput> vector type (e.g. <computeroutput>int4</computeroutput>): <programlisting language="c++">field&lt;int2_&gt;("xz");
</programlisting></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.structboost_1_1compute_1_1get">get&lt;N&gt;</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1field_1ab1a48209b7b898f44ba3365167793172" name="result_type"><purpose>Result type. </purpose><type>T</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1field_1ad0d6ec22c85930c54542931762d5e0be"><parameter name="field"><paramtype>const std::string &amp;</paramtype></parameter><purpose>Creates a new field functor with <computeroutput>field</computeroutput>. </purpose></constructor>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.geometry_8hpp" name="boost/compute/functional/geometry.hpp">
<namespace name="boost">
<namespace name="compute">





































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.get_8hpp" name="boost/compute/functional/get.hpp">
<namespace name="boost">
<namespace name="compute">
<struct id="doxygen.header_reference.structboost_1_1compute_1_1get" name="get"><template>
      <template-nontype-parameter name="N"><type>size_t</type></template-nontype-parameter>
    </template><description><para>Returns the <computeroutput>N'th</computeroutput> element of an aggregate type (e.g. scalarN, pair, tuple, etc.).</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1field">field&lt;T&gt;</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<method id="doxygen.header_reference.structboost_1_1compute_1_1get_1a7320a1c91c00e8efe483cbdfa6e5f74e" name="operator()" cv="const"><type><emphasis>unspecified</emphasis></type><template>
          <template-type-parameter name="Arg"/>
        </template><parameter name="arg"><paramtype>const Arg &amp;</paramtype></parameter></method>
</method-group>
</struct>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.hash_8hpp" name="boost/compute/functional/hash.hpp">
<namespace name="boost">
<namespace name="compute">
<struct id="doxygen.header_reference.structboost_1_1compute_1_1hash" name="hash"><template>
      <template-type-parameter name="Key"/>
    </template><description><para>The hash function returns a hash value for the input value.</para><para>The return type is <computeroutput>ulong_</computeroutput> (the OpenCL unsigned long type). </para></description></struct>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.identity_8hpp" name="boost/compute/functional/identity.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1identity" name="identity"><template>
      <template-type-parameter name="T"/>
    </template><description><para>Identity function which simply returns its input.</para><para>For example, to directly copy values using the transform() algorithm: <programlisting language="c++">transform(input.begin(), input.end(), output.begin(), identity&lt;int&gt;(), queue);
</programlisting></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.structboost_1_1compute_1_1as">as&lt;T&gt;</link>, <link linkend="doxygen.header_reference.structboost_1_1compute_1_1convert">convert&lt;T&gt;</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1identity_1a06b865f44797be4decc140b5678e736c" name="result_type"><purpose>Identity function result type. </purpose><type>T</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1identity_1af4f662af3892759ae7a82381e9d64192"><purpose>Creates a new identity function. </purpose></constructor>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.integer_8hpp" name="boost/compute/functional/integer.hpp">
<namespace name="boost">
<namespace name="compute">





































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.logical_8hpp" name="boost/compute/functional/logical.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1binary__negate" name="binary_negate"><template>
      <template-type-parameter name="Predicate"/>
    </template><inherit access="public">boost::compute::binary_function&lt; void, void, int &gt;</inherit><description><para>The binnary_negate function adaptor negates a binary function.</para><para><formalpara><title>See Also:</title><para>not2() </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1binary__negate_1ae6f86e9abdd89175547c9eab1e1ee035" specifiers="explicit"><parameter name="pred"><paramtype>Predicate</paramtype></parameter></constructor>
</method-group>
</class><struct id="doxygen.header_reference.structboost_1_1compute_1_1logical__not" name="logical_not"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">boost::compute::unary_function&lt; T, int &gt;</inherit><description><para>The <link linkend="doxygen.header_reference.structboost_1_1compute_1_1logical__not">logical_not</link> function negates its argument and returns it.</para><para><formalpara><title>See Also:</title><para>not1(), not2() </para>
</formalpara>
</para></description><method-group name="public member functions">
</method-group>
</struct><class id="doxygen.header_reference.classboost_1_1compute_1_1unary__negate" name="unary_negate"><template>
      <template-type-parameter name="Predicate"/>
    </template><inherit access="public">boost::compute::unary_function&lt; void, int &gt;</inherit><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1unary__negate">unary_negate</link> function adaptor negates a unary function.</para><para><formalpara><title>See Also:</title><para>not1() </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1unary__negate_1aee442732ca0d43e910615f049d10a96b" specifiers="explicit"><parameter name="pred"><paramtype>Predicate</paramtype></parameter></constructor>
</method-group>
</class>













































































































<function id="doxygen.header_reference.logical_8hpp_1a88d7ca0ec8caaa2b99ef733c0745fdfb" name="not1"><type><classname>unary_negate</classname>&lt; Predicate &gt;</type><template>
          <template-type-parameter name="Predicate"/>
        </template><parameter name="predicate"><paramtype>const Predicate &amp;</paramtype><description><para>the unary function to wrap</para></description></parameter><description><para>Returns a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1unary__negate">unary_negate</link> adaptor around <computeroutput>predicate</computeroutput>.</para><para>

</para></description><returns><para>a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1unary__negate">unary_negate</link> wrapper around <computeroutput>predicate</computeroutput> </para>
</returns></function>
<function id="doxygen.header_reference.logical_8hpp_1a91345d298ad104528b56875e98608996" name="not2"><type><classname>binary_negate</classname>&lt; Predicate &gt;</type><template>
          <template-type-parameter name="Predicate"/>
        </template><parameter name="predicate"><paramtype>const Predicate &amp;</paramtype><description><para>the binary function to wrap</para></description></parameter><description><para>Returns a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1binary__negate">binary_negate</link> adaptor around <computeroutput>predicate</computeroutput>.</para><para>

</para></description><returns><para>a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1binary__negate">binary_negate</link> wrapper around <computeroutput>predicate</computeroutput> </para>
</returns></function>





















</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.math_8hpp" name="boost/compute/functional/math.hpp">
<namespace name="boost">
<namespace name="compute">





































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.operator_8hpp" name="boost/compute/functional/operator.hpp">
<namespace name="boost">
<namespace name="compute">





































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.popcount_8hpp" name="boost/compute/functional/popcount.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1popcount" name="popcount"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">function&lt; T(T)&gt;</inherit><description><para>Returns the number of non-zero bits in <computeroutput>x</computeroutput>.</para><para>See the documentation for </para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1popcount_1aeda05059ed2eb62aeccdf4789a840f75"/>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.relational_8hpp" name="boost/compute/functional/relational.hpp">
<namespace name="boost">
<namespace name="compute">





































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.image1d_8hpp" name="boost/compute/image/image1d.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1image1d" name="image1d"><inherit access="public">boost::compute::image_object</inherit><purpose>An OpenCL 1D image object. </purpose><description><para><warning><para>This method is only available if the OpenCL version is 1.2 or later.</para>
</warning>
<formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1image__format">image_format</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d">image2d</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1a281a321bef8465a1f8050100ab26cedd"><purpose>Creates a null <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image1d">image1d</link> object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1ac0ebcc4c71365aff426213b2e478d62c"><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="image_width"><paramtype>size_t</paramtype></parameter><parameter name="format"><paramtype>const <classname>image_format</classname> &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><parameter name="host_ptr"><paramtype>void *</paramtype><default>0</default></parameter><description><para>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image1d">image1d</link> object.</para><para>See the documentation for </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1af9eb675da84188123f837e1a1043e546"><parameter name="other"><paramtype>const <classname>image1d</classname> &amp;</paramtype></parameter><purpose>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image1d">image1d</link> as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1a64822efd104ae3b92123516440ad39a6"><type><classname>image1d</classname> &amp;</type><parameter name="other"><paramtype>const <classname>image1d</classname> &amp;</paramtype></parameter><purpose>Copies the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image1d">image1d</link> from <computeroutput>other</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1a33ec43eadf99c6c211d82320b6d4ffda" cv="noexcept"><parameter name="other"><paramtype><classname>image1d</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new image object from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1a5483109f4e45fa784c555f71fc42467d" cv="noexcept"><type><classname>image1d</classname> &amp;</type><parameter name="other"><paramtype><classname>image1d</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the image from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1a562821e218dfd721e2abd4ba3e80e50b"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image1d">image1d</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1aefe01e606aaf5b2a55111db18d8ba0a0" name="size" cv="const"><type><classname>extents</classname>&lt; 1 &gt;</type><purpose>Returns the size (width) of the image. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1a01126c0b9e71d6bce7521107600d25fb" name="origin" cv="const"><type><classname>extents</classname>&lt; 1 &gt;</type><purpose>Returns the origin of the image (<computeroutput>0</computeroutput>). </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1a6cfbff275307e1de618e0ce8c659c7f7" name="get_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_image_info</paramtype></parameter><description><para>Returns information about the image.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1a247c1238872f52360639368f3995c8e1" name="get_info" cv="const"><type><emphasis>unspecified</emphasis></type><template>
          <template-nontype-parameter name="Enum"><type>int</type></template-nontype-parameter>
        </template><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1a83324ee629452cf45906e68af92e5a61" name="clone" cv="const"><type><classname>image1d</classname></type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Creates a new image with a copy of the data in <computeroutput>*this</computeroutput>. Uses <computeroutput>queue</computeroutput> to perform the copy operation. </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1a864a5ebbd6251c338189161fe4af6069" name="get_supported_formats" specifiers="static"><type>std::vector&lt; <classname>image_format</classname> &gt;</type><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><description><para>Returns the supported image formats for the context.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image1d_1a8072477f687a86fa138093f7d65e0dde" name="is_supported_format" specifiers="static"><type>bool</type><parameter name="format"><paramtype>const <classname>image_format</classname> &amp;</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><description><para>Returns <computeroutput>true</computeroutput> if <computeroutput>format</computeroutput> is a supported 1D image format for <computeroutput>context</computeroutput>. </para></description></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.image2d_8hpp" name="boost/compute/image/image2d.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1image2d" name="image2d"><inherit access="public">boost::compute::image_object</inherit><purpose>An OpenCL 2D image object. </purpose><description><para>For example, to create a 640x480 8-bit RGBA image:</para><para><programlisting language="c++"/></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1image__format">image_format</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image3d">image3d</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1acdf4d4a0d412aee2fe3882a71da870eb"><purpose>Creates a null <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d">image2d</link> object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1a3750de687122bcfc4cb674b81b6cfa3e"><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="image_width"><paramtype>size_t</paramtype></parameter><parameter name="image_height"><paramtype>size_t</paramtype></parameter><parameter name="format"><paramtype>const <classname>image_format</classname> &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><parameter name="host_ptr"><paramtype>void *</paramtype><default>0</default></parameter><parameter name="image_row_pitch"><paramtype>size_t</paramtype><default>0</default></parameter><description><para>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d">image2d</link> object.</para><para>See the documentation for </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1a27bc8070d860d524348eef8f4e04cf76"><parameter name="other"><paramtype>const <classname>image2d</classname> &amp;</paramtype></parameter><purpose>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d">image2d</link> as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1a3a9e5f57fa57f61cae93c3706a342a40"><type><classname>image2d</classname> &amp;</type><parameter name="other"><paramtype>const <classname>image2d</classname> &amp;</paramtype></parameter><purpose>Copies the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d">image2d</link> from <computeroutput>other</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1a76d5da1ddfe2f2553219a40d3e964bc8" cv="noexcept"><parameter name="other"><paramtype><classname>image2d</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new image object from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1adc96e4bc75a17f81e899164c27580e3b" cv="noexcept"><type><classname>image2d</classname> &amp;</type><parameter name="other"><paramtype><classname>image2d</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the image from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1a3e89645ff0c261e7af2a230e45f9d53b"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d">image2d</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1accc2bbd4c9543980f50761153c294d49" name="size" cv="const"><type><classname>extents</classname>&lt; 2 &gt;</type><purpose>Returns the size (width, height) of the image. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1a035e601f1993441fc1b379d5d9f89e12" name="origin" cv="const"><type><classname>extents</classname>&lt; 2 &gt;</type><purpose>Returns the origin of the image (<computeroutput>0</computeroutput>, <computeroutput>0</computeroutput>). </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1a38c582b3afa6ab11cb62d84515ad506e" name="get_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_image_info</paramtype></parameter><description><para>Returns information about the image.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1a818b0a30db771e820bfa8d7087d7c3ba" name="get_info" cv="const"><type><emphasis>unspecified</emphasis></type><template>
          <template-nontype-parameter name="Enum"><type>int</type></template-nontype-parameter>
        </template><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1aee1a44e79d42756558cc361df3fe1d84" name="clone" cv="const"><type><classname>image2d</classname></type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Creates a new image with a copy of the data in <computeroutput>*this</computeroutput>. Uses <computeroutput>queue</computeroutput> to perform the copy operation. </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1a33b5cf9f6a0f4fc21eca7c50a4a81846" name="get_supported_formats" specifiers="static"><type>std::vector&lt; <classname>image_format</classname> &gt;</type><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><description><para>Returns the supported image formats for the context.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image2d_1a0936a0b0bd83f697b8c1a13ba22ed752" name="is_supported_format" specifiers="static"><type>bool</type><parameter name="format"><paramtype>const <classname>image_format</classname> &amp;</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><description><para>Returns <computeroutput>true</computeroutput> if <computeroutput>format</computeroutput> is a supported 2D image format for <computeroutput>context</computeroutput>. </para></description></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.image3d_8hpp" name="boost/compute/image/image3d.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1image3d" name="image3d"><inherit access="public">boost::compute::image_object</inherit><purpose>An OpenCL 3D image object. </purpose><description><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1image__format">image_format</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d">image2d</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1acc08eee446c4cb62bb3eddcaea57bb1f"><purpose>Creates a null <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image3d">image3d</link> object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1a7f428bd7f0ba2d7f898a7888b7cc8ee1"><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="image_width"><paramtype>size_t</paramtype></parameter><parameter name="image_height"><paramtype>size_t</paramtype></parameter><parameter name="image_depth"><paramtype>size_t</paramtype></parameter><parameter name="format"><paramtype>const <classname>image_format</classname> &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><parameter name="host_ptr"><paramtype>void *</paramtype><default>0</default></parameter><parameter name="image_row_pitch"><paramtype>size_t</paramtype><default>0</default></parameter><parameter name="image_slice_pitch"><paramtype>size_t</paramtype><default>0</default></parameter><description><para>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image3d">image3d</link> object.</para><para>See the documentation for </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1a89c7fd668526e244fe9bd0ef961cea2b"><parameter name="other"><paramtype>const <classname>image3d</classname> &amp;</paramtype></parameter><purpose>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image3d">image3d</link> as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1a6ed9e141cb3863678dd8d71cc0d7add4"><type><classname>image3d</classname> &amp;</type><parameter name="other"><paramtype>const <classname>image3d</classname> &amp;</paramtype></parameter><purpose>Copies the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image3d">image3d</link> from <computeroutput>other</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1ab0419d15e10a9e9f5aa5d4446cb797db" cv="noexcept"><parameter name="other"><paramtype><classname>image3d</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new image object from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1a996c9b0287b0bf41f10c0d8cc7e028b7" cv="noexcept"><type><classname>image3d</classname> &amp;</type><parameter name="other"><paramtype><classname>image3d</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the image from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1a8316444071be31bc8ae839cdc779ccaa"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image3d">image3d</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1a723686bde6a7cb0b820c7143655f8164" name="size" cv="const"><type><classname>extents</classname>&lt; 3 &gt;</type><purpose>Returns the size (width, height, depth) of the image. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1af789b21c76f3f979d55a553244924c38" name="origin" cv="const"><type><classname>extents</classname>&lt; 3 &gt;</type><purpose>Returns the origin of the image (<computeroutput>0</computeroutput>, <computeroutput>0</computeroutput>, <computeroutput>0</computeroutput>). </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1a0560d6d28da38a14bf22554acdf85217" name="get_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_image_info</paramtype></parameter><description><para>Returns information about the image.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1a59edbda88959c0ea49ce5ad064fb4340" name="get_info" cv="const"><type><emphasis>unspecified</emphasis></type><template>
          <template-nontype-parameter name="Enum"><type>int</type></template-nontype-parameter>
        </template><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1ab38c8aa403d21f430f26472d805d3b5c" name="clone" cv="const"><type><classname>image3d</classname></type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Creates a new image with a copy of the data in <computeroutput>*this</computeroutput>. Uses <computeroutput>queue</computeroutput> to perform the copy operation. </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1ae254aa71f67b66d9a8798b627a3a6a07" name="get_supported_formats" specifiers="static"><type>std::vector&lt; <classname>image_format</classname> &gt;</type><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><description><para>Returns the supported 3D image formats for the context.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image3d_1a28673bef8f72d566c3aa900ce1c1df6c" name="is_supported_format" specifiers="static"><type>bool</type><parameter name="format"><paramtype>const <classname>image_format</classname> &amp;</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><description><para>Returns <computeroutput>true</computeroutput> if <computeroutput>format</computeroutput> is a supported 3D image format for <computeroutput>context</computeroutput>. </para></description></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.image__format_8hpp" name="boost/compute/image/image_format.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1image__format" name="image_format"><purpose>A OpenCL image format. </purpose><description><para>For example, to create a format for a 8-bit RGBA image: <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1image__format">boost::compute::image_format</link> rgba8(CL_RGBA, CL_UNSIGNED_INT8);
</programlisting></para><para>After being constructed, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image__format">image_format</link> objects are usually passed to the constructor of the various image classes (e.g. <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d">image2d</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image3d">image3d</link>) to create an image object on a compute device.</para><para>Image formats supported by a context can be queried with the static get_supported_formats() in each image class. For example: <programlisting language="c++">std::vector&lt;image_format&gt; formats = <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d_1a33b5cf9f6a0f4fc21eca7c50a4a81846">image2d::get_supported_formats</link>(ctx);
</programlisting></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d">image2d</link> </para>
</formalpara>
</para></description><enum id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a01126aa3b058492f1461f04080ce81ce" name="channel_order"><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a01126aa3b058492f1461f04080ce81ceac66f403960d4d8c40cb06281ecedfcf9" name="r"><default>CL_R</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a01126aa3b058492f1461f04080ce81cea1c2cb2702be04e01179c23e5d7efe32f" name="a"><default>CL_A</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a01126aa3b058492f1461f04080ce81cea3199019eef9bd82aaa52371059c06eaf" name="intensity"><default>CL_INTENSITY</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a01126aa3b058492f1461f04080ce81ceaa2f8ac8cd274cf5950ba7d4b8c71fb97" name="luminance"><default>CL_LUMINANCE</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a01126aa3b058492f1461f04080ce81ceade32ff530ef33c77bf468be76ed8e84b" name="rg"><default>CL_RG</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a01126aa3b058492f1461f04080ce81cea31977b43717dfbdf535c59b1c4e57cf2" name="ra"><default>CL_RA</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a01126aa3b058492f1461f04080ce81cea2537f958dea35c32faf032849f270802" name="rgb"><default>CL_RGB</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a01126aa3b058492f1461f04080ce81ceaac76f6c20f1e82ebc50d38ae2abf4787" name="rgba"><default>CL_RGBA</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a01126aa3b058492f1461f04080ce81cea08c25664430e030173fbcccecb89bb77" name="argb"><default>CL_ARGB</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a01126aa3b058492f1461f04080ce81cead9a7a37f9a19ad2a1edfc5b56e5cdd20" name="bgra"><default>CL_BGRA</default></enumvalue></enum>
<enum id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066" name="channel_data_type"><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066a90c789cd7e1e7a92fafec37f46ba1619" name="snorm_int8"><default>CL_SNORM_INT8</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066a1614a55bb69769c8794e219c9330569f" name="snorm_int16"><default>CL_SNORM_INT16</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066ac9775b5c0639461ae6a9da46563940dc" name="unorm_int8"><default>CL_UNORM_INT8</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066a606cdacbb0b5b73adb4b487ecf9156ed" name="unorm_int16"><default>CL_UNORM_INT16</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066a1a588e277e83a0808ce18ef687c513c0" name="unorm_short_565"><default>CL_UNORM_SHORT_565</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066adf6f22d1b0c53a014ae72a425f80f497" name="unorm_short_555"><default>CL_UNORM_SHORT_555</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066a4ab495d27afa16c8fbe8923317ccde5d" name="unorm_int_101010"><default>CL_UNORM_INT_101010</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066a142171a28eca4d50d7e1d01bf136295f" name="signed_int8"><default>CL_SIGNED_INT8</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066ae0cb69756cd84e7d5f34e3e5505efbe0" name="signed_int16"><default>CL_SIGNED_INT16</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066a9e2a003300877bc36bd2e089e73659d1" name="signed_int32"><default>CL_SIGNED_INT32</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066a9716f703e1402426ac464649493cab52" name="unsigned_int8"><default>CL_UNSIGNED_INT8</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066a954488570f5449ddbd079ff410fbd22b" name="unsigned_int16"><default>CL_UNSIGNED_INT16</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066adb824cc93433fceadd06962527b47c83" name="unsigned_int32"><default>CL_UNSIGNED_INT32</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066ac12790f23b751736b8adfb55cce7550d" name="float16"><default>CL_HALF_FLOAT</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a2b5aa5bb9e5813384be7dcae199bb066a401570d24d05989df900d56015c9321b" name="float32"><default>CL_FLOAT</default></enumvalue></enum>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1ab7d40d5ae3ba3af5f387e15843240c32" specifiers="explicit"><parameter name="order"><paramtype>cl_channel_order</paramtype></parameter><parameter name="type"><paramtype>cl_channel_type</paramtype></parameter><purpose>Creates a new image format object with <computeroutput>order</computeroutput> and <computeroutput>type</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1abd02aa258384ff3e0abdd860492b6661" specifiers="explicit"><parameter name="format"><paramtype>const cl_image_format &amp;</paramtype></parameter><purpose>Creates a new image format object from <computeroutput>format</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1adb0da510c962fdebd9ed2d95b9ea83b3"><parameter name="other"><paramtype>const <classname>image_format</classname> &amp;</paramtype></parameter><purpose>Creates a new image format object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a020f16e8bc2553dbfe1f6470daaf9fd1"><type><classname>image_format</classname> &amp;</type><parameter name="other"><paramtype>const <classname>image_format</classname> &amp;</paramtype></parameter><purpose>Copies the format from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1afaa15b750a179557f5cdcffd5225849e"><purpose>Destroys the image format object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1ac2286abf7f4c3d32a6779b042dd3f9ab" name="get_format_ptr" cv="const"><type>const cl_image_format *</type><purpose>Returns a pointer to the <computeroutput>cl_image_format</computeroutput> object. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1a6837dfd22f10e48678254fdafcaeb0a7" name="operator==" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>image_format</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if <computeroutput>*this</computeroutput> is the same as <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__format_1aae5ae12fadee82b738fd9cd6183eb44b" name="operator!=" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>image_format</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if <computeroutput>*this</computeroutput> is not the same as <computeroutput>other</computeroutput>. </purpose></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.image__object_8hpp" name="boost/compute/image/image_object.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1image__object" name="image_object"><inherit access="public">memory_object</inherit><purpose>Base-class for image objects. </purpose><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image__object">image_object</link> class is the base-class for image objects on compute devices.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1image1d">image1d</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d">image2d</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image3d">image3d</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image__object_1ae4dc3801397f5849c4b1506cf84564a9"/>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image__object_1afe7f79eb3d0d87842349fdd43ad46e30" specifiers="explicit"><parameter name="mem"><paramtype>cl_mem</paramtype></parameter><parameter name="retain"><paramtype>bool</paramtype><default>true</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image__object_1a13e850d8a10f52a66fdfcaf0836b8ff5"><parameter name="other"><paramtype>const <classname>image_object</classname> &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1image__object_1ace02eb81ed74e720c040e5c78f3b4879"><type><classname>image_object</classname> &amp;</type><parameter name="other"><paramtype>const <classname>image_object</classname> &amp;</paramtype></parameter></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image__object_1a800410d9ba27d9adcac755a3f81d5135" cv="noexcept"><parameter name="other"><paramtype><classname>image_object</classname> &amp;&amp;</paramtype></parameter></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1image__object_1aeac79ebc76645260b48ecdbb4133e7d1"><purpose>Destroys the image object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__object_1aa4e6483e75c3a3feabd9c1b60c168874" name="get_image_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_mem_info</paramtype></parameter><description><para>Returns information about the image object.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__object_1a4d0f64999f2161afeee7a0b6a6161ac7" name="format" cv="const"><type><classname>image_format</classname></type><purpose>Returns the format for the image. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__object_1ae1b4aa4baa665ffce7a57e31b190f6c7" name="width" cv="const"><type>size_t</type><purpose>Returns the width of the image. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__object_1aa616686c6233f84c7f3529299a8d0604" name="height" cv="const"><type>size_t</type><description><para>Returns the height of the image.</para><para>For 1D images, this function will return <computeroutput>1</computeroutput>. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__object_1adb5f1855c216fa71e8dc8c7e1366eccc" name="depth" cv="const"><type>size_t</type><description><para>Returns the depth of the image.</para><para>For 1D and 2D images, this function will return <computeroutput>1</computeroutput>. </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__object_1ab102addb73fefdd1836ee142ba939711" name="get_supported_formats" specifiers="static"><type>std::vector&lt; <classname>image_format</classname> &gt;</type><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="type"><paramtype>cl_mem_object_type</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><description><para>Returns the supported image formats for the <computeroutput>type</computeroutput> in <computeroutput>context</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__object_1ad5301be5c21d5032f1198fe9f802adf5" name="is_supported_format" specifiers="static"><type>bool</type><parameter name="format"><paramtype>const <classname>image_format</classname> &amp;</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="type"><paramtype>cl_mem_object_type</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><description><para>Returns <computeroutput>true</computeroutput> if <computeroutput>format</computeroutput> is a supported image format for <computeroutput>type</computeroutput> in <computeroutput>context</computeroutput> with <computeroutput>flags</computeroutput>. </para></description></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.image__sampler_8hpp" name="boost/compute/image/image_sampler.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler" name="image_sampler"><purpose>An OpenCL image sampler object. </purpose><description><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d">image2d</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image__format">image_format</link> </para>
</formalpara>
</para></description><enum id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a2e18d0663197c9b4615e4c159e52cf21" name="addressing_mode"><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a2e18d0663197c9b4615e4c159e52cf21a23abed236c239c32d3df5297fe1a11a4" name="none"><default>CL_ADDRESS_NONE</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a2e18d0663197c9b4615e4c159e52cf21a668743f6a298eadfbc3274ed6d55f8fb" name="clamp_to_edge"><default>CL_ADDRESS_CLAMP_TO_EDGE</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a2e18d0663197c9b4615e4c159e52cf21a88a25f2bc2d61b0dd4f1106a17f722f7" name="clamp"><default>CL_ADDRESS_CLAMP</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a2e18d0663197c9b4615e4c159e52cf21a306574f1971388006ff9d522ae389b14" name="repeat"><default>CL_ADDRESS_REPEAT</default></enumvalue></enum>
<enum id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a2694f99e062531b4864cde3fdcef936d" name="filter_mode"><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a2694f99e062531b4864cde3fdcef936da2cabf2e6f99e4e1533b8b968034c1165" name="nearest"><default>CL_FILTER_NEAREST</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a2694f99e062531b4864cde3fdcef936daebd1d564050ad7e9bb037088f4229992" name="linear"><default>CL_FILTER_LINEAR</default></enumvalue></enum>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1ab1d93a1a9054f4df52161b0affd7c6fc"/>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a58ebc819918c9a10dd2a49ab25fff01a"><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="normalized_coords"><paramtype>bool</paramtype></parameter><parameter name="addressing_mode"><paramtype>cl_addressing_mode</paramtype></parameter><parameter name="filter_mode"><paramtype>cl_filter_mode</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a1c3800d60bd749b8c63e49b4f6ada467" specifiers="explicit"><parameter name="sampler"><paramtype>cl_sampler</paramtype></parameter><parameter name="retain"><paramtype>bool</paramtype><default>true</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a04df5db8b42c4b987a7c79299f9d53cb"><parameter name="other"><paramtype>const <classname>image_sampler</classname> &amp;</paramtype></parameter><purpose>Creates a new image sampler object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1aa062cdf63c1100efd4c488115e9f4eb0"><type><classname>image_sampler</classname> &amp;</type><parameter name="other"><paramtype>const <classname>image_sampler</classname> &amp;</paramtype></parameter><purpose>Copies the image sampler object from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a90e98f8989b147dc498cfde37c1ecf69" cv="noexcept"><parameter name="other"><paramtype><classname>image_sampler</classname> &amp;&amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a5495cf9784a1f915a23c93dfa6b4a4d6" cv="noexcept"><type><classname>image_sampler</classname> &amp;</type><parameter name="other"><paramtype><classname>image_sampler</classname> &amp;&amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1aeb2a88cbfb12bc924139518d00253279"><purpose>Destroys the image sampler object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1ac91effbe0ba319d13d2429cb4d64d883" name="get" cv="const"><type>cl_sampler &amp;</type><purpose>Returns the underlying <computeroutput>cl_sampler</computeroutput> object. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a7ef428249a6c7ba8df7b0dd99ab7af8a" name="get_context" cv="const"><type>context</type><purpose>Returns the context for the image sampler object. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1ad6e46a4d23c065d84e2d2fda33cc5345" name="get_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_sampler_info</paramtype></parameter><description><para>Returns information about the sampler.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1ac94b65fb5d10b9f0dbc3b950ee15e822" name="get_info" cv="const"><type><emphasis>unspecified</emphasis></type><template>
          <template-nontype-parameter name="Enum"><type>int</type></template-nontype-parameter>
        </template><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1a02e5e79febee2e7231e0802ce4f9f921" name="operator==" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>image_sampler</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the sampler is the same at <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1aca64ccbadb4cdb2ba004bea32b581686" name="operator!=" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>image_sampler</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the sampler is different from <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1image__sampler_1af4eb9cfdd89f4ac5916b2d3269015fd1" name="conversion-operator" cv="const"><type>cl_sampler</type></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.acquire_8hpp" name="boost/compute/interop/opengl/acquire.hpp">
<namespace name="boost">
<namespace name="compute">


















































































































<function id="doxygen.header_reference.acquire_8hpp_1a4094d4a9e8725247122439272fcb0b97" name="opengl_enqueue_acquire_gl_objects"><type>event</type><parameter name="num_objects"><paramtype>const uint_</paramtype></parameter><parameter name="mem_objects"><paramtype>const cl_mem *</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to acquire the specified OpenGL memory objects.</para><para>See the documentation for </para></description></function>
<function id="doxygen.header_reference.acquire_8hpp_1aa2597563995d9a32b3f014f13006aeaa" name="opengl_enqueue_release_gl_objects"><type>event</type><parameter name="num_objects"><paramtype>const uint_</paramtype></parameter><parameter name="mem_objects"><paramtype>const cl_mem *</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to release the specified OpenGL memory objects.</para><para>See the documentation for </para></description></function>
<function id="doxygen.header_reference.acquire_8hpp_1a0f6b11164396585b7033557f5712950c" name="opengl_enqueue_acquire_buffer"><type>event</type><parameter name="buffer"><paramtype>const <classname>opengl_buffer</classname> &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to acquire the specified OpenGL buffer.</para><para>See the documentation for </para></description></function>
<function id="doxygen.header_reference.acquire_8hpp_1a1d9ee8368e95258c265a7a2517be33a2" name="opengl_enqueue_release_buffer"><type>event</type><parameter name="buffer"><paramtype>const <classname>opengl_buffer</classname> &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to release the specified OpenGL buffer.</para><para>See the documentation for </para></description></function>















</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.cl__gl_8hpp" name="boost/compute/interop/opengl/cl_gl.hpp">
</header>
<header id="doxygen.header_reference.cl__gl__ext_8hpp" name="boost/compute/interop/opengl/cl_gl_ext.hpp">
</header>
<header id="doxygen.header_reference.context_8hpp" name="boost/compute/interop/opengl/context.hpp">
<namespace name="boost">
<namespace name="compute">

















































































































<function id="doxygen.header_reference.context_8hpp_1ac21e2deb8b3dbac5ab375e6beb279666" name="opengl_create_shared_context"><type>context</type><description><para>Creates a shared OpenCL/OpenGL context for the currently active OpenGL context.</para><para>Once created, the shared context can be used to create OpenCL memory objects which can interact with OpenGL memory objects (e.g. VBOs).</para><para>
</para></description><throws><simpara><classname>unsupported_extension_error</classname> if no CL-GL sharing capable devices are found. </simpara>
</throws></function>



















</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.gl_8hpp" name="boost/compute/interop/opengl/gl.hpp">
</header>
<header id="doxygen.header_reference.opengl__buffer_8hpp" name="boost/compute/interop/opengl/opengl_buffer.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1opengl__buffer" name="opengl_buffer"><inherit access="public">buffer</inherit><description><para>A OpenCL buffer for accessing an OpenGL memory object. </para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__buffer_1aef11463d487740fd38271550da3adb22"><purpose>Creates a null OpenGL buffer object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__buffer_1a02787ce352008a2f77c39b1e771b8b06" specifiers="explicit"><parameter name="mem"><paramtype>cl_mem</paramtype></parameter><parameter name="retain"><paramtype>bool</paramtype><default>true</default></parameter><purpose>Creates a new OpenGL buffer object for <computeroutput>mem</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__buffer_1a409c440446df5c3ac6bf482bd68fb724"><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="bufobj"><paramtype>GLuint</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><description><para>Creates a new OpenGL buffer object in <computeroutput>context</computeroutput> for <computeroutput>bufobj</computeroutput> with <computeroutput>flags</computeroutput>.</para><para>See the documentation for </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__buffer_1ab20994a0efb927a3c748d5754daafa22"><parameter name="other"><paramtype>const <classname>opengl_buffer</classname> &amp;</paramtype></parameter><purpose>Creates a new OpenGL buffer object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1opengl__buffer_1a4c771203f28b322f0341e7e2064d5ee6"><type><classname>opengl_buffer</classname> &amp;</type><parameter name="other"><paramtype>const <classname>opengl_buffer</classname> &amp;</paramtype></parameter><purpose>Copies the OpenGL buffer object from <computeroutput>other</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__buffer_1ab6c8d5f700fff84d6913dc582fd9b5c3"><purpose>Destroys the OpenGL buffer object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1opengl__buffer_1a2c007cb5ae03d0d4debebb9d31cbe605" name="get_opengl_object" cv="const"><type>GLuint</type><description><para>Returns the OpenGL memory object ID.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1opengl__buffer_1a59972e7fd68f23cbae884614b47e0878" name="get_opengl_type" cv="const"><type>cl_gl_object_type</type><description><para>Returns the OpenGL memory object type.</para><para>See the documentation for </para></description></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.opengl__renderbuffer_8hpp" name="boost/compute/interop/opengl/opengl_renderbuffer.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1opengl__renderbuffer" name="opengl_renderbuffer"><inherit access="public">boost::compute::image_object</inherit><description><para>A OpenCL buffer for accessing an OpenGL renderbuffer object. </para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__renderbuffer_1af01fb7e256c20b8c34547ba011a575fb"><purpose>Creates a null OpenGL renderbuffer object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__renderbuffer_1a01fb15d95e21007e163e60c8cc3bc48e" specifiers="explicit"><parameter name="mem"><paramtype>cl_mem</paramtype></parameter><parameter name="retain"><paramtype>bool</paramtype><default>true</default></parameter><purpose>Creates a new OpenGL renderbuffer object for <computeroutput>mem</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__renderbuffer_1afbea6a598344cf3b0317b076e76f7416"><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="renderbuffer"><paramtype>GLuint</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><description><para>Creates a new OpenGL renderbuffer object in <computeroutput>context</computeroutput> for <computeroutput>renderbuffer</computeroutput> with <computeroutput>flags</computeroutput>.</para><para>See the documentation for </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__renderbuffer_1abba2afb38bb07419ca4badc70dbf8430"><parameter name="other"><paramtype>const <classname>opengl_renderbuffer</classname> &amp;</paramtype></parameter><purpose>Creates a new OpenGL renderbuffer object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1opengl__renderbuffer_1a3467e1c7fec7c84bf5784a6b9e2b1022"><type><classname>opengl_renderbuffer</classname> &amp;</type><parameter name="other"><paramtype>const <classname>opengl_renderbuffer</classname> &amp;</paramtype></parameter><purpose>Copies the OpenGL renderbuffer object from <computeroutput>other</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__renderbuffer_1adf67ab947154c3058ff0a050d46f166b"><purpose>Destroys the OpenGL buffer object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1opengl__renderbuffer_1a1cf6d0d61122e4d9d682fe29a9bb6fa5" name="size" cv="const"><type><classname>extents</classname>&lt; 2 &gt;</type><purpose>Returns the size (width, height) of the renderbuffer. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1opengl__renderbuffer_1ae882594771cfb7899866a670e4f62cdb" name="origin" cv="const"><type><classname>extents</classname>&lt; 2 &gt;</type><purpose>Returns the origin of the renderbuffer (<computeroutput>0</computeroutput>, <computeroutput>0</computeroutput>). </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1opengl__renderbuffer_1a6ce74317f55871d7eb88c3e6c7b83340" name="get_opengl_object" cv="const"><type>GLuint</type><description><para>Returns the OpenGL memory object ID.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1opengl__renderbuffer_1a1cf27755ded4e7d8f68edc454d81496c" name="get_opengl_type" cv="const"><type>cl_gl_object_type</type><description><para>Returns the OpenGL memory object type.</para><para>See the documentation for </para></description></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.opengl__texture_8hpp" name="boost/compute/interop/opengl/opengl_texture.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1opengl__texture" name="opengl_texture"><inherit access="public">boost::compute::image_object</inherit><description><para>A OpenCL <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d">image2d</link> for accessing an OpenGL texture object. </para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__texture_1a5d57009b39f0505549c219f7fc0222f7"><purpose>Creates a null OpenGL texture object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__texture_1ac855bfd227407ddb1e2701aabf1066ea" specifiers="explicit"><parameter name="mem"><paramtype>cl_mem</paramtype></parameter><parameter name="retain"><paramtype>bool</paramtype><default>true</default></parameter><purpose>Creates a new OpenGL texture object for <computeroutput>mem</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__texture_1ae2923a80f1594a39a7138fad13757407"><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><parameter name="texture_target"><paramtype>GLenum</paramtype></parameter><parameter name="miplevel"><paramtype>GLint</paramtype></parameter><parameter name="texture"><paramtype>GLuint</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><description><para>Creates a new OpenGL texture object in <computeroutput>context</computeroutput> for <computeroutput>texture</computeroutput> with <computeroutput>flags</computeroutput>.</para><para>See the documentation for </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__texture_1a8702a9c139658bcc0a94f0fc81638e89"><parameter name="other"><paramtype>const <classname>opengl_texture</classname> &amp;</paramtype></parameter><purpose>Creates a new OpenGL texture object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1opengl__texture_1a557999f58791a6ef3aada1f76113d6b9"><type><classname>opengl_texture</classname> &amp;</type><parameter name="other"><paramtype>const <classname>opengl_texture</classname> &amp;</paramtype></parameter><purpose>Copies the OpenGL texture object from <computeroutput>other</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1opengl__texture_1aef70b4d5cdda130527fac1ede5ed9ac6"><purpose>Destroys the texture object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1opengl__texture_1a903dde74b325bcb5791ae2c51d1e3c09" name="size" cv="const"><type><classname>extents</classname>&lt; 2 &gt;</type><purpose>Returns the size (width, height) of the texture. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1opengl__texture_1a033345467a4c89933e6e609985b4dbd9" name="origin" cv="const"><type><classname>extents</classname>&lt; 2 &gt;</type><purpose>Returns the origin of the texture (<computeroutput>0</computeroutput>, <computeroutput>0</computeroutput>). </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1opengl__texture_1a17dec5ac9e5a99bda6e2b665abde6ed8" name="get_texture_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_gl_texture_info</paramtype></parameter><description><para>Returns information about the texture.</para><para>See the documentation for </para></description></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.buffer__iterator_8hpp" name="boost/compute/iterator/buffer_iterator.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator" name="buffer_iterator"><template>
      <template-type-parameter name="T"/>
    </template><purpose>An iterator for values in a buffer. </purpose><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator">buffer_iterator</link> class iterates over values in a memory buffer on a compute device. It is the most commonly used iterator in Boost.Compute and is used by the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">vector&lt;T&gt;</link> and <link linkend="doxygen.header_reference.classboost_1_1compute_1_1array">array&lt;T, N&gt;</link> container classes.</para><para>Buffer iterators store a reference to a memory buffer along with an index into that memory buffer.</para><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator">buffer_iterator</link> class allows for arbitrary OpenCL memory objects (including those created outside of Boost.Compute) to be used with the Boost.Compute algorithms (such as transform() and sort()). For example, to reverse the contents of an OpenCL memory buffer containing a set of integers:</para><para><programlisting language="c++"/></para><para><formalpara><title>See Also:</title><para>buffer, make_buffer_iterator() </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1a00411fd98211d0c053f26b055ecf7438" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1a0ede885cc3648b7d5868ad45cf879822" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1a7b9bd7366cd8e27350d91e6c2c7cb446" name="difference_type"><type>super_type::difference_type</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1a345ccd3293bb1bfc59d2eb3f6bbd74e5"/>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1a88c3b774dbb159bfdbc545b96ab7ce02"><parameter name="buffer"><paramtype>const buffer &amp;</paramtype></parameter><parameter name="index"><paramtype>size_t</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1a646eb83ed7881f39fe5f4addefae3821"><parameter name="other"><paramtype>const <classname>buffer_iterator</classname>&lt; T &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1a2117839d2c6597dab8026fd560852893"><type><classname>buffer_iterator</classname>&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const <classname>buffer_iterator</classname>&lt; T &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1a3c99bbb15cecb9622a542d9340b0a4fa"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1aea8b9df422e15c0b0b6cd59b3151e531" name="get_buffer" cv="const"><type>const buffer &amp;</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1a2f99c1869cf7cec272223c4e1e2c13e8" name="get_index" cv="const"><type>size_t</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1a9c40afd28b83091904bdc655b840d1c2" name="read" cv="const"><type>T</type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1afcabf27ad7cd863ec28100bedd817e27" name="write"><type>void</type><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
</method-group>
<method-group name="private member functions">
</method-group>
</class>































































































































<function id="doxygen.header_reference.buffer__iterator_8hpp_1a7350e9c75873f10d70c8e1025b0f0873" name="make_buffer_iterator"><type><classname>buffer_iterator</classname>&lt; T &gt;</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="buffer"><paramtype>const buffer &amp;</paramtype><description><para>the buffer object </para></description></parameter><parameter name="index"><paramtype>size_t</paramtype><default>0</default><description><para>the index in the buffer</para></description></parameter><description><para>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator">buffer_iterator</link> for <computeroutput>buffer</computeroutput> at <computeroutput>index</computeroutput>.</para><para>

</para></description><returns><para>a <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator">buffer_iterator</link></computeroutput> for <computeroutput>buffer</computeroutput> at <computeroutput>index</computeroutput> </para>
</returns></function>




</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.constant__buffer__iterator_8hpp" name="boost/compute/iterator/constant_buffer_iterator.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator" name="constant_buffer_iterator"><template>
      <template-type-parameter name="T"/>
    </template><purpose>An iterator for a buffer in the <computeroutput>constant</computeroutput> memory space. </purpose><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator">constant_buffer_iterator</link> class provides an iterator for values in a buffer in the <computeroutput>constant</computeroutput> memory space.</para><para>For iterating over values in the <computeroutput>global</computeroutput> memory space (the most common case), use the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator">buffer_iterator</link> class.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator">buffer_iterator</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1abcea35892e027d471f7b987a84f8ebe1" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a46472aaa1df77b522f8a939277b15277" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a876b98808fabd9a0a19fb1a83184aa22" name="difference_type"><type>super_type::difference_type</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a83f4644fade3012801246ca892343de4"/>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a5536d90b3537f9b48016d9083d38f549"><parameter name="buffer"><paramtype>const buffer &amp;</paramtype></parameter><parameter name="index"><paramtype>size_t</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a5c87b00abb6d5b966cf9924d4db437d7"><parameter name="other"><paramtype>const <classname>constant_buffer_iterator</classname>&lt; T &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a6773f55f0d793a45de5565347d261cdb"><type><classname>constant_buffer_iterator</classname>&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const <classname>constant_buffer_iterator</classname>&lt; T &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a89f3c2efbfbcd60d0319584eebe548de"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1acefbdb8d1d9891af96a5294bc7540bce" name="get_buffer" cv="const"><type>const buffer &amp;</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1ae9a3e74b15045a751368375a2af7c1c5" name="get_index" cv="const"><type>size_t</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a3a8d2784b81d65cd432e4032795861fe" name="read" cv="const"><type>T</type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1afdddbaf2386feb36f2dd34fa8c499514" name="write"><type>void</type><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a0999f8348a8b3b941c762b4649438de0" name="operator[]" cv="const"><type><emphasis>unspecified</emphasis></type><template>
          <template-type-parameter name="Expr"/>
        </template><parameter name="expr"><paramtype>const Expr &amp;</paramtype></parameter></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1ad2613d61eb9c4a8579cb3d96a84234df" name="dereference" cv="const"><type>reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a45a4b6e2d00222f51b98a2daad50bdb3" name="equal" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>constant_buffer_iterator</classname>&lt; T &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1aa6b681136abcbbd68697f5cf1c9152e1" name="increment"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a53ed1cbbc00fdc0e36999a1791e4561d" name="decrement"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1af4ee0e6f7846376c49aea60045b9d168" name="advance"><type>void</type><parameter name="n"><paramtype>difference_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a9b8a726fecfce455755c2c18406fb081" name="distance_to" cv="const"><type>difference_type</type><parameter name="other"><paramtype>const <classname>constant_buffer_iterator</classname>&lt; T &gt; &amp;</paramtype></parameter></method>
</method-group>
</class>






























































































































<function id="doxygen.header_reference.constant__buffer__iterator_8hpp_1ac55ee0b4bdd578c4ff83a9457ffdb967" name="make_constant_buffer_iterator"><type><classname>constant_buffer_iterator</classname>&lt; T &gt;</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="buffer"><paramtype>const buffer &amp;</paramtype><description><para>the buffer object </para></description></parameter><parameter name="index"><paramtype>size_t</paramtype><default>0</default><description><para>the index in the buffer</para></description></parameter><description><para>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator">constant_buffer_iterator</link> for <computeroutput>buffer</computeroutput> at <computeroutput>index</computeroutput>.</para><para>

</para></description><returns><para>a <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator">constant_buffer_iterator</link></computeroutput> for <computeroutput>buffer</computeroutput> at <computeroutput>index</computeroutput> </para>
</returns></function>





</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.constant__iterator_8hpp" name="boost/compute/iterator/constant_iterator.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator" name="constant_iterator"><template>
      <template-type-parameter name="T"/>
    </template><purpose>An iterator with a constant value. </purpose><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator">constant_iterator</link> class provides an iterator which returns a constant value when dereferenced.</para><para>For example, this could be used to implement the fill() algorithm in terms of the copy() algorithm by copying from a range of constant iterators:</para><para><programlisting language="c++"/></para><para><formalpara><title>See Also:</title><para>make_constant_iterator() </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator_1a56142a5d82ce527d98b7b084128d0a4c" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator_1aaa171295a86ac7174eba88f4aa728f91" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator_1aa3557e8b835341047674d999d05f2214" name="difference_type"><type>super_type::difference_type</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator_1ab760b6c866f14a6b22c67cc0f34a2b1d"><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><parameter name="index"><paramtype>size_t</paramtype><default>0</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator_1a1b85b06386770ffa1e920e65f063539a"><parameter name="other"><paramtype>const <classname>constant_iterator</classname>&lt; T &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator_1a1c97c32ec92d656dd19e910833058a91"><type><classname>constant_iterator</classname>&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const <classname>constant_iterator</classname>&lt; T &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator_1ae65702c8d7df96d02f46b56462e74298"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator_1a046c3326e8a61db138e7b942a7b17976" name="get_index" cv="const"><type>size_t</type></method>
</method-group>
<method-group name="private member functions">
</method-group>
</class>





























































































































<function id="doxygen.header_reference.constant__iterator_8hpp_1ab57a9b9fd96bd27ff54a9f1ddf8695e5" name="make_constant_iterator"><type><classname>constant_iterator</classname>&lt; T &gt;</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="value"><paramtype>const T &amp;</paramtype><description><para>the constant value </para></description></parameter><parameter name="index"><paramtype>size_t</paramtype><default>0</default><description><para>the iterators index</para></description></parameter><description><para>Returns a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator">constant_iterator</link> with <computeroutput>value</computeroutput> at <computeroutput>index</computeroutput>.</para><para>

</para></description><returns><para>a <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator">constant_iterator</link></computeroutput> with <computeroutput>value</computeroutput> </para>
</returns></function>






</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.counting__iterator_8hpp" name="boost/compute/iterator/counting_iterator.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator" name="counting_iterator"><template>
      <template-type-parameter name="T"/>
    </template><purpose>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator">counting_iterator</link> class implements a counting iterator. </purpose><description><para>A counting iterator returns an internal value (initialized with <computeroutput>init</computeroutput>) which is incremented each time the iterator is incremented.</para><para>For example, this could be used to implement the iota() algorithm in terms of the copy() algorithm by copying from a range of counting iterators:</para><para><programlisting language="c++"/></para><para><formalpara><title>See Also:</title><para>make_counting_iterator() </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1a58d70d508182ce244554251c96a41abe" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1a498d3fb94cca6864eb38dd22980f154d" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1a4b208c5c748435c4b24df0d55ddf894c" name="difference_type"><type>super_type::difference_type</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1a1b0b776810ed79f0acef10b95b0af1f7"><parameter name="init"><paramtype>const T &amp;</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1a64bd6e5f852947e59f7f93d71639ce3a"><parameter name="other"><paramtype>const <classname>counting_iterator</classname>&lt; T &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1a8f02d5ef8a37b27211ba7c28bb899a14"><type><classname>counting_iterator</classname>&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const <classname>counting_iterator</classname>&lt; T &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1a876379cdf57890f780c76f24b3c086bc"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1aadb8712d8c3de4c8875311409d197dc9" name="get_index" cv="const"><type>size_t</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1a0155dec66f068cdba75549ebcaf90ebd" name="operator[]" cv="const"><type><emphasis>unspecified</emphasis></type><template>
          <template-type-parameter name="Expr"/>
        </template><parameter name="expr"><paramtype>const Expr &amp;</paramtype></parameter></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1a87d73e335549149b95df5c202ed35b41" name="dereference" cv="const"><type>reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1a44a42296fc797564b3ab0300da6e509d" name="equal" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>counting_iterator</classname>&lt; T &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1a39ff3cc89aa57aeaaa36b838aeda4577" name="increment"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1a9f18c93eafbe1fbc7c984d0d3787a1c5" name="decrement"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1aabcc3769aff8dfec701fae84ffe3e189" name="advance"><type>void</type><parameter name="n"><paramtype>difference_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1aa9908f549b2454460982b3134c20fa88" name="distance_to" cv="const"><type>difference_type</type><parameter name="other"><paramtype>const <classname>counting_iterator</classname>&lt; T &gt; &amp;</paramtype></parameter></method>
</method-group>
</class>




























































































































<function id="doxygen.header_reference.counting__iterator_8hpp_1a2986ac07f2f0f37de832dc3ad143f631" name="make_counting_iterator"><type><classname>counting_iterator</classname>&lt; T &gt;</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="init"><paramtype>const T &amp;</paramtype><description><para>the initial value</para></description></parameter><description><para>Returns a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator">counting_iterator</link> starting at <computeroutput>init</computeroutput>.</para><para>

For example, to create a counting iterator which returns unsigned integers and increments from one: <programlisting language="c++">auto iter = make_counting_iterator&lt;uint_&gt;(1);
</programlisting> </para></description><returns><para>a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator">counting_iterator</link> with <computeroutput>init</computeroutput>.</para>
</returns></function>







</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.discard__iterator_8hpp" name="boost/compute/iterator/discard_iterator.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1discard__iterator" name="discard_iterator"><purpose>An iterator which discards all values written to it. </purpose><description><para><formalpara><title>See Also:</title><para>make_discard_iterator(), <link linkend="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator">constant_iterator</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1discard__iterator_1a196ee36257a04ab4e3f86dd22981c172" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1discard__iterator_1a27fd9e81d8089366756357d6e9f4d5a7" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1discard__iterator_1ada04d7d8411da8ae7f062c6f5841b2e6" name="difference_type"><type>super_type::difference_type</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1discard__iterator_1a08dd9db87707d3ff6ad4fecb423cb886"><parameter name="index"><paramtype>size_t</paramtype><default>0</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1discard__iterator_1ab9bf2ea4b59b7fe7143b1e6202315c41"><parameter name="other"><paramtype>const <classname>discard_iterator</classname> &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1discard__iterator_1a4445a449484b5c2499b1569d656927ab"><type><classname>discard_iterator</classname> &amp;</type><parameter name="other"><paramtype>const <classname>discard_iterator</classname> &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1discard__iterator_1a4e80766de323f63abecc21671a93000f"/>
</method-group>
<method-group name="private member functions">
</method-group>
</class><struct-specialization id="doxygen.header_reference.structboost_1_1compute_1_1is__device__iterator_3_01discard__iterator_01_4" name="is_device_iterator"><template>
    </template><specialization><template-arg>discard_iterator</template-arg></specialization><inherit access="public">boost::true_type</inherit><purpose>internal_ (<link linkend="doxygen.header_reference.structboost_1_1compute_1_1is__device__iterator">is_device_iterator</link> specialization for <link linkend="doxygen.header_reference.classboost_1_1compute_1_1discard__iterator">discard_iterator</link>) </purpose></struct-specialization>



























































































































<function id="doxygen.header_reference.discard__iterator_8hpp_1af15cd15e6d5a86ef15966709a5ac5fe6" name="make_discard_iterator"><type><classname>discard_iterator</classname></type><parameter name="index"><paramtype>size_t</paramtype><default>0</default><description><para>the index of the iterator</para></description></parameter><description><para>Returns a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1discard__iterator">discard_iterator</link> with <computeroutput>index</computeroutput>.</para><para>

</para></description><returns><para>a <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1discard__iterator">discard_iterator</link></computeroutput> at <computeroutput>index</computeroutput> </para>
</returns></function>








</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.function__input__iterator_8hpp" name="boost/compute/iterator/function_input_iterator.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator" name="function_input_iterator"><template>
      <template-type-parameter name="Function"/>
    </template><purpose>Iterator which returns the result of a function when dereferenced. </purpose><description><para>For example:</para><para><programlisting language="c++"/></para><para><formalpara><title>See Also:</title><para>make_function_input_iterator() </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1ad75fcd503520b2bab2ee4c6fd6aad432" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a0d0865af242aeb6c323c2367e09c17ac" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1ac65c82cc065c2b500cf3c1620b185d58" name="difference_type"><type>super_type::difference_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a53b60978d9863094dbc020d82dd34d9a" name="function"><type>Function</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a68f35681634bd54c7c926a948894befc"><parameter name="function"><paramtype>const Function &amp;</paramtype></parameter><parameter name="index"><paramtype>size_t</paramtype><default>0</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a044b53d4d91396bf7903ecd53752e233"><parameter name="other"><paramtype>const <classname>function_input_iterator</classname>&lt; Function &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a590904b23a7af0e8bfb43ecd3db26597"><type><classname>function_input_iterator</classname>&lt; Function &gt; &amp;</type><parameter name="other"><paramtype>const <classname>function_input_iterator</classname>&lt; Function &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a5df0480f40909d0d0ec080bee49ccdb4"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a3d88b15e70058b1e9cb9bbe43094e725" name="get_index" cv="const"><type>size_t</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a3d7ca0b630cfaae8dc67c9cbc6a9852a" name="operator[]" cv="const"><type><emphasis>unspecified</emphasis></type><template>
          <template-type-parameter name="Expr"/>
        </template><parameter name="expr"><paramtype>const Expr &amp;</paramtype></parameter></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a692553bd8818174d885fd6f80866f875" name="dereference" cv="const"><type>reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a49de1ce7afe8c445e403d0d424449c6f" name="equal" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>function_input_iterator</classname>&lt; Function &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a0b29281351d5a68a3f0a3b65d158a6e9" name="increment"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a0a5d6bb2148cd6cf8bb40df02a29a0d4" name="decrement"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1af5b2eaeb3a97fc36a70f02d966782342" name="advance"><type>void</type><parameter name="n"><paramtype>difference_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1aa53c16b5e1ad845516a08526ab81556c" name="distance_to" cv="const"><type>difference_type</type><parameter name="other"><paramtype>const <classname>function_input_iterator</classname>&lt; Function &gt; &amp;</paramtype></parameter></method>
</method-group>
</class>


























































































































<function id="doxygen.header_reference.function__input__iterator_8hpp_1a23fd765ee4fd190a2345ddb2ec438d67" name="make_function_input_iterator"><type><classname>function_input_iterator</classname>&lt; Function &gt;</type><template>
          <template-type-parameter name="Function"/>
        </template><parameter name="function"><paramtype>const Function &amp;</paramtype><description><para>function to execute when dereferenced </para></description></parameter><parameter name="index"><paramtype>size_t</paramtype><default>0</default><description><para>index of the iterator</para></description></parameter><description><para>Returns a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator">function_input_iterator</link> with <computeroutput>function</computeroutput>.</para><para>

</para></description><returns><para>a <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator">function_input_iterator</link></computeroutput> with <computeroutput>function</computeroutput> </para>
</returns></function>









</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.permutation__iterator_8hpp" name="boost/compute/iterator/permutation_iterator.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator" name="permutation_iterator"><template>
      <template-type-parameter name="ElementIterator"/>
      <template-type-parameter name="IndexIterator"/>
    </template><purpose>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator">permutation_iterator</link> class provides a permuation iterator. </purpose><description><para>A permutation iterator iterates over a value range and an index range. When dereferenced, it returns the value from the value range using the current index from the index range.</para><para>For example, to reverse a range using the copy() algorithm and a permutation sequence:</para><para><programlisting language="c++"/></para><para><formalpara><title>See Also:</title><para>make_permutation_iterator() </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1af9ad41cb78ee435a89f982030e8c80c6" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1aaa878c409b1731657d344dacf5fc41ed" name="value_type"><type>super_type::value_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a7658f2226d784c005fcd97c06f94ad2b" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a788a33745b609d6c4bd4c089aada46d6" name="base_type"><type>super_type::base_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a0655b6e9ba478ebd83de070013399db3" name="difference_type"><type>super_type::difference_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a1e47223a3b9ef5d6a4e8d5557ddc247c" name="index_iterator"><type>IndexIterator</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a46f4d5749474846f737e88c62ddb04fa"><parameter name="e"><paramtype>ElementIterator</paramtype></parameter><parameter name="i"><paramtype>IndexIterator</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a739d3c1a192e8512e24b1bcb135966bd"><parameter name="other"><paramtype>const <classname>permutation_iterator</classname>&lt; ElementIterator, IndexIterator &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1aff05f28405bcf7712f87492ced31cba2"><type><classname>permutation_iterator</classname>&lt; ElementIterator, IndexIterator &gt; &amp;</type><parameter name="other"><paramtype>const <classname>permutation_iterator</classname>&lt; ElementIterator, IndexIterator &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a56f162ef83659025dbdc904104d5fcc5"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a89f26d818f50d0e926aeab0ac127cdf6" name="get_index" cv="const"><type>size_t</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a0fd6c1e5897c846376fc8f6f3aea0029" name="get_buffer" cv="const"><type>const buffer &amp;</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a71a724500dbde5850b6e883ecfee8f82" name="operator[]" cv="const"><type><emphasis>unspecified</emphasis></type><template>
          <template-type-parameter name="IndexExpr"/>
        </template><parameter name="expr"><paramtype>const IndexExpr &amp;</paramtype></parameter></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a44eedc97c2f4d2c9f3344a238c98f52e" name="dereference" cv="const"><type>reference</type></method>
</method-group>
</class>

























































































































<function id="doxygen.header_reference.permutation__iterator_8hpp_1a0592cbbf2a9f590b05eae7f2a7c016ee" name="make_permutation_iterator"><type><classname>permutation_iterator</classname>&lt; ElementIterator, IndexIterator &gt;</type><template>
          <template-type-parameter name="ElementIterator"/>
          <template-type-parameter name="IndexIterator"/>
        </template><parameter name="e"><paramtype>ElementIterator</paramtype><description><para>the element range iterator </para></description></parameter><parameter name="i"><paramtype>IndexIterator</paramtype><description><para>the index range iterator</para></description></parameter><description><para>Returns a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator">permutation_iterator</link> for <computeroutput>e</computeroutput> using indices from <computeroutput>i</computeroutput>.</para><para>

</para></description><returns><para>a <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator">permutation_iterator</link></computeroutput> for <computeroutput>e</computeroutput> using <computeroutput>i</computeroutput> </para>
</returns></function>










</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.strided__iterator_8hpp" name="boost/compute/iterator/strided_iterator.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator" name="strided_iterator"><template>
      <template-type-parameter name="Iterator"/>
    </template><purpose>An iterator adaptor with adjustable iteration step. </purpose><description><para>The strided iterator adaptor skips over multiple elements each time it is incremented or decremented.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator">buffer_iterator</link>, make_strided_iterator(), make_strided_iterator_end() </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a18521510223b7838b2394409a24aa183" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a4f12b185b632d5cc711f13110c161129" name="value_type"><type>super_type::value_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a50b96585a0e0031bc4fcde4a53235ccf" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a691a0f913349d380b54739af11c58994" name="base_type"><type>super_type::base_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1ab20e87be93b234cbe24ad13f3e8cfd50" name="difference_type"><type>super_type::difference_type</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a9f120aa66554960116997ae1c4030d2d"><parameter name="iterator"><paramtype>Iterator</paramtype></parameter><parameter name="stride"><paramtype>difference_type</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a778ea031986cbbf72ac206d4419ca840"><parameter name="other"><paramtype>const <classname>strided_iterator</classname>&lt; Iterator &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1ad54b01561a9e43d996d6dc6e52abd01b"><type><classname>strided_iterator</classname>&lt; Iterator &gt; &amp;</type><parameter name="other"><paramtype>const <classname>strided_iterator</classname>&lt; Iterator &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a500af63ba2c633f19322af584c858470"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a0b1595ef2752b1dd8fd6528e2d190792" name="get_index" cv="const"><type>size_t</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a3dd9747b3090e65a548dd49537abf117" name="get_buffer" cv="const"><type>const buffer &amp;</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1ae62ec124db206b98fa734b2358421b76" name="operator[]" cv="const"><type><emphasis>unspecified</emphasis></type><template>
          <template-type-parameter name="IndexExpression"/>
        </template><parameter name="expr"><paramtype>const IndexExpression &amp;</paramtype></parameter></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a4db98d018e8c93ee8335ce5c7d383c43" name="dereference" cv="const"><type>reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a07cfd35da5617beb6d76cca3ee2fb939" name="equal" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>strided_iterator</classname>&lt; Iterator &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a8543230fb22075b3d2e28bc37b97aa18" name="increment"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a5f4adeeaa0de390a14a9efa73e4f7d32" name="decrement"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1ab9b699f93f833ef0c773392c98f79f6d" name="advance"><type>void</type><parameter name="n"><paramtype>typename super_type::difference_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1ac003f273d68e12871c2f0deb87a9dade" name="distance_to" cv="const"><type>difference_type</type><parameter name="other"><paramtype>const <classname>strided_iterator</classname>&lt; Iterator &gt; &amp;</paramtype></parameter></method>
</method-group>
</class>























































































































<function id="doxygen.header_reference.strided__iterator_8hpp_1ae5eb8f260ce5dbfe86608230c86e3b89" name="make_strided_iterator"><type><classname>strided_iterator</classname>&lt; Iterator &gt;</type><template>
          <template-type-parameter name="Iterator"/>
        </template><parameter name="iterator"><paramtype>Iterator</paramtype><description><para>the underlying iterator </para></description></parameter><parameter name="stride"><paramtype>typename std::iterator_traits&lt; Iterator &gt;::difference_type</paramtype><description><para>the iteration step for <link linkend="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator">strided_iterator</link></para></description></parameter><description><para>Returns a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator">strided_iterator</link> for <computeroutput>iterator</computeroutput> with <computeroutput>stride</computeroutput>.</para><para>

For example, to create an iterator which iterates over every other element in a <computeroutput>vector&lt;int&gt;</computeroutput>: <programlisting language="c++">auto <link linkend="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator">strided_iterator</link> = make_strided_iterator(vec.begin(), 2);
</programlisting> </para></description><returns><para>a <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator">strided_iterator</link></computeroutput> for <computeroutput>iterator</computeroutput> with <computeroutput>stride</computeroutput>.</para>
</returns></function>
<function id="doxygen.header_reference.strided__iterator_8hpp_1a5ffb1c6792fc13a94b7e45b3f023910b" name="make_strided_iterator_end"><type><classname>strided_iterator</classname>&lt; Iterator &gt;</type><template>
          <template-type-parameter name="Iterator"/>
        </template><parameter name="first"><paramtype>Iterator</paramtype><description><para>the iterator referring to the first element accessible through <link linkend="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator">strided_iterator</link> for <computeroutput>first</computeroutput> with <computeroutput>stride</computeroutput> </para></description></parameter><parameter name="last"><paramtype>Iterator</paramtype><description><para>the iterator referring to the last element that may be accessible through <link linkend="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator">strided_iterator</link> for <computeroutput>first</computeroutput> with <computeroutput>stride</computeroutput> </para></description></parameter><parameter name="stride"><paramtype>typename std::iterator_traits&lt; Iterator &gt;::difference_type</paramtype><description><para>the iteration step</para></description></parameter><description><para>Returns a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator">strided_iterator</link> which refers to element that would follow the last element accessible through <link linkend="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator">strided_iterator</link> for <computeroutput>first</computeroutput> iterator with <computeroutput>stride</computeroutput>.</para><para>Parameter <computeroutput>stride</computeroutput> must be greater than zero.</para><para>

It can be helpful when iterating over <link linkend="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator">strided_iterator</link>: <programlisting language="c++">// vec.size() may not be divisible by 3
auto strided_iterator_begin = make_strided_iterator(vec.begin(), 3);
auto strided_iterator_end = make_strided_iterator_end(vec.begin(), vec.end(), 3);

// copy every 3rd element to result
boost::compute::copy(
        strided_iterator_begin,
        strided_iterator_end,
        result.begin(),
        queue
);
</programlisting> </para></description><returns><para>a <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator">strided_iterator</link></computeroutput> referring to element that would follow the last element accessible through <link linkend="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator">strided_iterator</link> for <computeroutput>first</computeroutput> iterator with <computeroutput>stride</computeroutput>.</para>
</returns></function>











</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.transform__iterator_8hpp" name="boost/compute/iterator/transform_iterator.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator" name="transform_iterator"><template>
      <template-type-parameter name="InputIterator"/>
      <template-type-parameter name="UnaryFunction"/>
    </template><purpose>A transform iterator adaptor. </purpose><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator">transform_iterator</link> adaptor applies a unary function to each element produced from the underlying iterator when dereferenced.</para><para>For example, to copy from an input range to an output range while taking the absolute value of each element:</para><para><programlisting language="c++"/></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator">buffer_iterator</link>, make_transform_iterator() </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1a4e292bdfd5ce958165d67eeb8273367a" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1a0d250d8d5525f1351580292cb03c50b5" name="value_type"><type>super_type::value_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1ab9f08250ac90949fb99bf904893c4ced" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1a32a80d40b6fdc0414d14d6f008840e61" name="base_type"><type>super_type::base_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1a48e8fb8267f306f36ac4ce627e90daff" name="difference_type"><type>super_type::difference_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1af9dbd9b7fa9b9a8557749938d7ccbc4e" name="unary_function"><type>UnaryFunction</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1acebdc8b40928e7eced007ae3d88465a1"><parameter name="iterator"><paramtype>InputIterator</paramtype></parameter><parameter name="transform"><paramtype>UnaryFunction</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1a093d71af9e6a794bdcb84394a34390a7"><parameter name="other"><paramtype>const <classname>transform_iterator</classname>&lt; InputIterator, UnaryFunction &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1a737cf7438197fe9e2445882d1d87385f"><type><classname>transform_iterator</classname>&lt; InputIterator, UnaryFunction &gt; &amp;</type><parameter name="other"><paramtype>const <classname>transform_iterator</classname>&lt; InputIterator, UnaryFunction &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1aff581ba483411a13bbb7a6451201c735"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1ab9d23d9947b8ddcc02ed01e09b55c67a" name="get_index" cv="const"><type>size_t</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1ac92180fc2e177aab274f8a56aa9bfccb" name="get_buffer" cv="const"><type>const buffer &amp;</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1a14062b86d1da913f110c70b1ebd8b600" name="operator[]" cv="const"><type><emphasis>unspecified</emphasis></type><template>
          <template-type-parameter name="IndexExpression"/>
        </template><parameter name="expr"><paramtype>const IndexExpression &amp;</paramtype></parameter></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1a50d227cbee4dd79c267e87e62ad2c174" name="dereference" cv="const"><type>reference</type></method>
</method-group>
</class>






















































































































<function id="doxygen.header_reference.transform__iterator_8hpp_1afc472da67a672b1492c289f1ac5bc489" name="make_transform_iterator"><type><classname>transform_iterator</classname>&lt; InputIterator, UnaryFunction &gt;</type><template>
          <template-type-parameter name="InputIterator"/>
          <template-type-parameter name="UnaryFunction"/>
        </template><parameter name="iterator"><paramtype>InputIterator</paramtype><description><para>the underlying iterator </para></description></parameter><parameter name="transform"><paramtype>UnaryFunction</paramtype><description><para>the unary transform function</para></description></parameter><description><para>Returns a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator">transform_iterator</link> for <computeroutput>iterator</computeroutput> with <computeroutput>transform</computeroutput>.</para><para>

For example, to create an iterator which returns the square-root of each value in a <computeroutput>vector&lt;int&gt;</computeroutput>: <programlisting language="c++">auto sqrt_iterator = make_transform_iterator(vec.begin(), sqrt&lt;int&gt;());
</programlisting> </para></description><returns><para>a <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator">transform_iterator</link></computeroutput> for <computeroutput>iterator</computeroutput> with <computeroutput>transform</computeroutput> </para>
</returns></function>













</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.zip__iterator_8hpp" name="boost/compute/iterator/zip_iterator.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator" name="zip_iterator"><template>
      <template-type-parameter name="IteratorTuple"/>
    </template><purpose>A zip iterator adaptor. </purpose><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator">zip_iterator</link> class combines values from multiple input iterators. When dereferenced it returns a tuple containing each value at the current position in each input range.</para><para><formalpara><title>See Also:</title><para>make_zip_iterator() </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1afef56f1c03a4f3880ebbbef1052e8058" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1ae64b9c08dfc6a2f2fce6a048ea19924f" name="value_type"><type>super_type::value_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1aa91151ef25564cb9d9404531f42a8643" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1afcf4e2653f7557db6714b40cfc1c5e20" name="difference_type"><type>super_type::difference_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1a0593a20c81a935f946006e6b93fb13e6" name="iterator_tuple"><type>IteratorTuple</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1a7ae062950c96252178e889afc1d1f7c4"><parameter name="iterators"><paramtype>IteratorTuple</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1a94e8c0bb9541539cbe17ec8dadcb9f5f"><parameter name="other"><paramtype>const <classname>zip_iterator</classname>&lt; IteratorTuple &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1afb2e05719189ca20c33ba88b9e72f9d5"><type><classname>zip_iterator</classname>&lt; IteratorTuple &gt; &amp;</type><parameter name="other"><paramtype>const <classname>zip_iterator</classname>&lt; IteratorTuple &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1a784f479d89c6726526ee0ac4edaae2b5"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1a7f2da6716558eacc8ca9683a2e8d55d5" name="get_iterator_tuple" cv="const"><type>const IteratorTuple &amp;</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1adc90d010d727035162a1cfc64d1863a4" name="operator[]" cv="const"><type><emphasis>unspecified</emphasis></type><template>
          <template-type-parameter name="IndexExpression"/>
        </template><parameter name="expr"><paramtype>const IndexExpression &amp;</paramtype></parameter></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1a8cb8b386b4090fb36047ade2d6f1d2b7" name="dereference" cv="const"><type>reference</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1a26e8969a7ff19cd4cca73d14ef5034ab" name="equal" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>zip_iterator</classname>&lt; IteratorTuple &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1ab6232f5dc098bbe3bcee7344cf03294d" name="increment"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1aafbd7a60b6c6ad031b4b2ef340b2f8ec" name="decrement"><type>void</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1adaccf75065b8d043665c7163e69a4d73" name="advance"><type>void</type><parameter name="n"><paramtype>difference_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1adcd58089bc31cef95264b4e29cf1de11" name="distance_to" cv="const"><type>difference_type</type><parameter name="other"><paramtype>const <classname>zip_iterator</classname>&lt; IteratorTuple &gt; &amp;</paramtype></parameter></method>
</method-group>
</class>





















































































































<function id="doxygen.header_reference.zip__iterator_8hpp_1a61f6a47653b05278c49d586e6aa3c352" name="make_zip_iterator"><type><classname>zip_iterator</classname>&lt; IteratorTuple &gt;</type><template>
          <template-type-parameter name="IteratorTuple"/>
        </template><parameter name="iterators"><paramtype>IteratorTuple</paramtype><description><para>a tuple of input iterators to zip together</para></description></parameter><description><para>Creates a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator">zip_iterator</link> for <computeroutput>iterators</computeroutput>.</para><para>

For example, to zip together iterators from three vectors (<computeroutput>a</computeroutput>, <computeroutput>b</computeroutput>, and <computeroutput>c</computeroutput>): <programlisting language="c++">auto zipped = boost::compute::make_zip_iterator(
    boost::make_tuple(a.begin(), b.begin(), c.begin())
);
</programlisting> </para></description><returns><para>a <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator">zip_iterator</link></computeroutput> for <computeroutput>iterators</computeroutput> </para>
</returns></function>














</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.local__buffer_8hpp" name="boost/compute/memory/local_buffer.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1local__buffer" name="local_buffer"><template>
      <template-type-parameter name="T"/>
    </template><purpose>Represents a local memory buffer on the device. </purpose><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1local__buffer">local_buffer</link> class represents a block of local memory on a compute device.</para><para>This class is most commonly used to set local memory arguments for compute kernels: <programlisting language="c++">// set argument to a local buffer with storage for 32 float's
kernel.set_arg(0, local_buffer&lt;float&gt;(32));
</programlisting></para><para><formalpara><title>See Also:</title><para>buffer, kernel </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1local__buffer_1abfd551a184c9a229f80f432fff414cb6"><parameter name="size"><paramtype>const size_t</paramtype></parameter><purpose>Creates a local buffer object for <computeroutput>size</computeroutput> elements. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1local__buffer_1adf61fafa764e986e2885921bdafc62cf"><parameter name="other"><paramtype>const <classname>local_buffer</classname> &amp;</paramtype></parameter><purpose>Creates a local buffer object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1local__buffer_1ac3058deda035efb546695ce381b26e52"><type><classname>local_buffer</classname> &amp;</type><parameter name="other"><paramtype>const <classname>local_buffer</classname> &amp;</paramtype></parameter><purpose>Copies <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1local__buffer_1a00ed6949e52bdba31fb423dd59e7af81"><purpose>Destroys the local memory object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1local__buffer_1ae83055317d5d4f2f72e77d76ade51d12" name="size" cv="const"><type>size_t</type><purpose>Returns the number of elements in the local buffer. </purpose></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.svm__ptr_8hpp" name="boost/compute/memory/svm_ptr.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr" name="svm_ptr"><template>
      <template-type-parameter name="T"/>
    </template><typedef id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1a1d38ca55e96c7739fc163e4fa3e02bff" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1a52beb7ada6967afa1d305090dc7e0540" name="difference_type"><type>std::ptrdiff_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1a6a937b0a4ef83e2b1404d48dc8d99b3b" name="pointer"><type>T *</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1adbd26781028e964e083cc7c2fe523bc2" name="reference"><type>T &amp;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1a04c594dc3b03252b81491b0c634bd1c5" name="iterator_category"><type>std::random_access_iterator_tag</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1aec9cb7e01e4718997f31fcc431f773fb"/>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1a9781e7e844515e9c7d63826a8812e214"><parameter name="ptr"><paramtype>void *</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1a55dd3b8acd7ed8a15c4943c41db5181e"><parameter name="other"><paramtype>const svm_ptr&lt; T &gt; &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1aa84b378a2a901283cc1b8c68eac921f6"><type>svm_ptr&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const svm_ptr&lt; T &gt; &amp;</paramtype></parameter></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1a23ca2f89735a7310ec5d7c626f3643f7"/>
<method id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1a2d1f859e05c39dfb5a45ca59e49dfdb4" name="get" cv="const"><type>void *</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1ab89c9b3bba08215721f8c824e0aa3fda" name="operator+"><type>svm_ptr&lt; T &gt;</type><parameter name="n"><paramtype>difference_type</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1a9893dc8e56412fb4d7cf52d4b3222204" name="operator-"><type>difference_type</type><parameter name="other"><paramtype>svm_ptr&lt; T &gt;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1a13681e6b24e0060f3a502b518637335e" name="get_context" cv="const"><type>const context &amp;</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1ad9c1b7c9f61ab6cb4aa0bf47440a8968" name="operator==" cv="const"><type>bool</type><parameter name="other"><paramtype>const svm_ptr&lt; T &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1acb894289797cd4ee1caff4d029a3615a" name="operator!=" cv="const"><type>bool</type><parameter name="other"><paramtype>const svm_ptr&lt; T &gt; &amp;</paramtype></parameter></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.bernoulli__distribution_8hpp" name="boost/compute/random/bernoulli_distribution.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1bernoulli__distribution" name="bernoulli_distribution"><template>
      <template-type-parameter name="RealType"><default>float</default></template-type-parameter>
    </template><purpose>Produces random boolean values according to the following discrete probability function with parameter p : P(true/p) = p and P(false/p) = (1 - p) </purpose><description><para>The following example shows how to setup a bernoulli distribution to produce random boolean values with parameter p = 0.25</para><para><programlisting language="c++"/> </para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1bernoulli__distribution_1a5c21c7ce220db7d19be39b7a73873b7b"><parameter name="p"><paramtype>RealType</paramtype><default>0.5f</default></parameter><purpose>Creates a new bernoulli distribution. </purpose></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1bernoulli__distribution_1ac752f9697c383951ffde48da16038330"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1bernoulli__distribution">bernoulli_distribution</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1bernoulli__distribution_1aac5f066331a80f5645689c64ccfe68d4" name="p" cv="const"><type>RealType</type><purpose>Returns the value of the parameter p. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1bernoulli__distribution_1a325d9039bfd04006305b6d0fd2cbe43f" name="generate"><type>void</type><template>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="Generator"/>
        </template><parameter name="first"><paramtype>OutputIterator</paramtype></parameter><parameter name="last"><paramtype>OutputIterator</paramtype></parameter><parameter name="generator"><paramtype>Generator &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Generates bernoulli distributed booleans and stores them in the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>). </para></description></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1bernoulli__distribution_1a9e0d19d18d2d91b9310f7e8e6a973d8c" name="BOOST_STATIC_ASSERT_MSG"><type/><parameter name=""><paramtype>boost::is_floating_point&lt; RealType &gt;::value</paramtype></parameter><parameter name=""><paramtype>"Template argument must be a floating point type"</paramtype></parameter></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.default__random__engine_8hpp" name="boost/compute/random/default_random_engine.hpp">
<namespace name="boost">
<namespace name="compute">
<typedef id="doxygen.header_reference.default__random__engine_8hpp_1a7c2aab6bcd8462a80a6283c9b52b8bcf" name="default_random_engine"><type><classname>mt19937</classname></type></typedef>





































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.discrete__distribution_8hpp" name="boost/compute/random/discrete_distribution.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1discrete__distribution" name="discrete_distribution"><template>
      <template-type-parameter name="IntType"><default>uint_</default></template-type-parameter>
    </template><purpose>Produces random integers on the interval [0, n), where probability of each integer is given by the weight of the ith integer divided by the sum of all weights. </purpose><description><para>The following example shows how to setup a discrete distribution to produce 0 and 1 with equal probability</para><para><programlisting language="c++"/> </para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1discrete__distribution_1a49114f5b24eb97cdce900cefe7e77d77" name="result_type"><type>IntType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1discrete__distribution_1af583a4c6a1df475bea5c84d921b5cb18"><description><para>Creates a new discrete distribution with a single weight p = { 1 }. This distribution produces only zeroes. </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1discrete__distribution_1acdd9c33f6008bb10d0be6ac09fbabe8c"><template>
          <template-type-parameter name="InputIterator"/>
        </template><parameter name="first"><paramtype>InputIterator</paramtype></parameter><parameter name="last"><paramtype>InputIterator</paramtype></parameter><description><para>Creates a new discrete distribution with weights given by the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>). </para></description></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1discrete__distribution_1acc0d9a5e28531e6d057d802c803804a4"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1discrete__distribution">discrete_distribution</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1discrete__distribution_1a14085d34e641eaece16416f1adfe466d" name="probabilities" cv="const"><type>::std::vector&lt; double &gt;</type><purpose>Returns the probabilities. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1discrete__distribution_1a768260ca4ad3a1d916e022c56e364c5b" name="BOOST_PREVENT_MACRO_SUBSTITUTION" cv="const"><type>result_type min</type><purpose>Returns the minimum potentially generated value. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1discrete__distribution_1a9ccff7aa557bc4ce7d29bfa103a939c9" name="BOOST_PREVENT_MACRO_SUBSTITUTION" cv="const"><type>result_type max</type><purpose>Returns the maximum potentially generated value. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1discrete__distribution_1a2b4c9ccfcc986e698c4ef1cc93e4086b" name="generate"><type>void</type><template>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="Generator"/>
        </template><parameter name="first"><paramtype>OutputIterator</paramtype></parameter><parameter name="last"><paramtype>OutputIterator</paramtype></parameter><parameter name="generator"><paramtype>Generator &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Generates uniformly distributed integers and stores them to the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>). </para></description></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1discrete__distribution_1ae219407396ca418b015bf940772c71b8" name="BOOST_STATIC_ASSERT_MSG"><type/><parameter name=""><paramtype>boost::is_integral&lt; IntType &gt;::value</paramtype></parameter><parameter name=""><paramtype>"Template argument must be integral"</paramtype></parameter></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.linear__congruential__engine_8hpp" name="boost/compute/random/linear_congruential_engine.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine" name="linear_congruential_engine"><template>
      <template-type-parameter name="T"><default>uint_</default></template-type-parameter>
    </template><purpose>'Quick and Dirty' linear congruential engine </purpose><description><para>Quick and dirty linear congruential engine to generate low quality random numbers very quickly. For uses in which good quality of random numbers is required(Monte-Carlo Simulations), use other engines like Mersenne Twister instead. </para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine_1a8e513fab05a8bd613e6357a529327617" name="result_type"><type>T</type></typedef>
<data-member id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine_1ace2ad91ddb7ff6bc58cfdb618aaf85a1" name="default_seed" specifiers="static"><type>const T</type></data-member>
<data-member id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine_1a2cca4fb9cb4a20a53397c0bd15bfbd09" name="a" specifiers="static"><type>const T</type></data-member>
<data-member id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine_1a0f3e9a941d8a7538dff1f11742981270" name="threads" specifiers="static"><type>const size_t</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine_1ac741f5c145d01b342ab303b736fb8803" specifiers="explicit"><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><parameter name="value"><paramtype>result_type</paramtype><default>default_seed</default></parameter><purpose>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine">linear_congruential_engine</link> and seeds it with <computeroutput>value</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine_1a07604125e47bcab4bdd72bfc3f4c123b"><parameter name="other"><paramtype>const <classname>linear_congruential_engine</classname>&lt; T &gt; &amp;</paramtype></parameter><purpose>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine">linear_congruential_engine</link> object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine_1a998bbe2e17882c97f76ec041abb76cb7"><type><classname>linear_congruential_engine</classname>&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const <classname>linear_congruential_engine</classname>&lt; T &gt; &amp;</paramtype></parameter><purpose>Copies <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine_1ae8ada5b6db39c386d6aa7b064005d372"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine">linear_congruential_engine</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine_1ae43b8dac470c7ca8f04d79a7477ef9e2" name="seed"><type>void</type><parameter name="value"><paramtype>result_type</paramtype><description><para>seed value for the random-number generator </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><description><para>command queue to perform the operation</para></description></parameter><description><para>Seeds the random number generator with <computeroutput>value</computeroutput>.</para><para>
If no seed value is provided, <computeroutput>default_seed</computeroutput> is used. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine_1ab43c5c3c9b6dc33baf24ea147a106707" name="seed"><type>void</type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine_1a99c6553629b855f840d6f638a46fdbff" name="generate"><type>void</type><template>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>OutputIterator</paramtype></parameter><parameter name="last"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Generates random numbers and stores them to the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>). </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine_1ac7bd6e63583aa95bdce31e144e06204c" name="generate"><type>void</type><template>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="Function"/>
        </template><parameter name="first"><paramtype>OutputIterator</paramtype></parameter><parameter name="last"><paramtype>OutputIterator</paramtype></parameter><parameter name="op"><paramtype>Function</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Generates random numbers, transforms them with <computeroutput>op</computeroutput>, and then stores them to the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>). </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1linear__congruential__engine_1a888a63e96796cf866264bd754add90d1" name="discard"><type>void</type><parameter name="z"><paramtype>size_t</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Generates <computeroutput>z</computeroutput> random numbers and discards them. </purpose></method>
</method-group>
<method-group name="private member functions">
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.mersenne__twister__engine_8hpp" name="boost/compute/random/mersenne_twister_engine.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine" name="mersenne_twister_engine"><template>
      <template-type-parameter name="T"/>
    </template><purpose>Mersenne twister pseudorandom number generator. </purpose><typedef id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine_1aa471c9925edcf8926f7ec0335bc207d7" name="result_type"><type>T</type></typedef>
<data-member id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine_1a7fb0eafcf9b4744ad7749b2b68b147c6" name="default_seed" specifiers="static"><type>const T</type></data-member>
<data-member id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine_1a1ce6818ee2880295c4a5633761eaa8c9" name="n" specifiers="static"><type>const T</type></data-member>
<data-member id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine_1a6556d0a3a97e042e6a2d0dcf9ce5746b" name="m" specifiers="static"><type>const T</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine_1add9339ea2472df640051b660d8eedfe1" specifiers="explicit"><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><parameter name="value"><paramtype>result_type</paramtype><default>default_seed</default></parameter><purpose>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine">mersenne_twister_engine</link> and seeds it with <computeroutput>value</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine_1ab6ceb81e5f50f494bebcb8ff31c3e601"><parameter name="other"><paramtype>const <classname>mersenne_twister_engine</classname>&lt; T &gt; &amp;</paramtype></parameter><purpose>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine">mersenne_twister_engine</link> object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine_1a90ee81e1ec2b34d33e45149b0b7553b1"><type><classname>mersenne_twister_engine</classname>&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const <classname>mersenne_twister_engine</classname>&lt; T &gt; &amp;</paramtype></parameter><purpose>Copies <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine_1a3ff2cc2ba403e86d1bfba97dbf881202"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine">mersenne_twister_engine</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine_1a4ddd66ce97cd40a88706db864917a603" name="seed"><type>void</type><parameter name="value"><paramtype>result_type</paramtype><description><para>seed value for the random-number generator </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><description><para>command queue to perform the operation</para></description></parameter><description><para>Seeds the random number generator with <computeroutput>value</computeroutput>.</para><para>
If no seed value is provided, <computeroutput>default_seed</computeroutput> is used. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine_1a5d6e3965d40d3c58e7dfd65ac95f9672" name="seed"><type>void</type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine_1a2845ac12f71b512db7b33eaa7381a222" name="generate"><type>void</type><template>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>OutputIterator</paramtype></parameter><parameter name="last"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Generates random numbers and stores them to the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>). </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine_1a7e9588bf3678afb3e709ee6f9ea8b986" name="generate"><type>void</type><template>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="Function"/>
        </template><parameter name="first"><paramtype>OutputIterator</paramtype></parameter><parameter name="last"><paramtype>OutputIterator</paramtype></parameter><parameter name="op"><paramtype>Function</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Generates random numbers, transforms them with <computeroutput>op</computeroutput>, and then stores them to the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>). </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1mersenne__twister__engine_1a16ab957324d13565bca0508f04080ac3" name="discard"><type>void</type><parameter name="z"><paramtype>size_t</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Generates <computeroutput>z</computeroutput> random numbers and discards them. </purpose></method>
</method-group>
<method-group name="private member functions">
</method-group>
</class><typedef id="doxygen.header_reference.mersenne__twister__engine_8hpp_1af06b21196def83d84a36551010773a88" name="mt19937"><type><classname>mersenne_twister_engine</classname>&lt; uint_ &gt;</type></typedef>





































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.normal__distribution_8hpp" name="boost/compute/random/normal_distribution.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1normal__distribution" name="normal_distribution"><template>
      <template-type-parameter name="RealType"><default>float</default></template-type-parameter>
    </template><purpose>Produces random, normally-distributed floating-point numbers. </purpose><description><para>The following example shows how to setup a normal distribution to produce random <computeroutput>float</computeroutput> values centered at <computeroutput>5</computeroutput>:</para><para><programlisting language="c++"/></para><para><formalpara><title>See Also:</title><para>default_random_engine, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1uniform__real__distribution">uniform_real_distribution</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1normal__distribution_1ac727aa72992a37aafc777d472b56e956" name="result_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1normal__distribution_1acd147377f22af409a34ba163b7b12870"><parameter name="mean"><paramtype>RealType</paramtype><default>0.f</default></parameter><parameter name="stddev"><paramtype>RealType</paramtype><default>1.f</default></parameter><description><para>Creates a new normal distribution producing numbers with the given <computeroutput>mean</computeroutput> and <computeroutput>stddev</computeroutput>. </para></description></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1normal__distribution_1a567290fb1e11bb73b8ecd45dab3eeab9"><purpose>Destroys the normal distribution object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1normal__distribution_1a1935b19d53b891b9db5382d51429063d" name="mean" cv="const"><type>result_type</type><purpose>Returns the mean value of the distribution. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1normal__distribution_1a6f0751eb9119f5521a63b8206d31ec74" name="stddev" cv="const"><type>result_type</type><purpose>Returns the standard-deviation of the distribution. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1normal__distribution_1a3dc3acda51837c37be2fe0579c107f2a" name="BOOST_PREVENT_MACRO_SUBSTITUTION" cv="const"><type>result_type min</type><purpose>Returns the minimum value of the distribution. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1normal__distribution_1aeb7cd330b90d723a9eeb91835f7a7b67" name="BOOST_PREVENT_MACRO_SUBSTITUTION" cv="const"><type>result_type max</type><purpose>Returns the maximum value of the distribution. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1normal__distribution_1a1fdf22b943d4316a970a214ebd8694d1" name="generate"><type>void</type><template>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="Generator"/>
        </template><parameter name="first"><paramtype>OutputIterator</paramtype></parameter><parameter name="last"><paramtype>OutputIterator</paramtype></parameter><parameter name="generator"><paramtype>Generator &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Generates normally-distributed floating-point numbers and stores them to the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>). </para></description></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1normal__distribution_1a9969fcfb6c0da51436a346f0e3a6ca06" name="BOOST_STATIC_ASSERT_MSG"><type/><parameter name=""><paramtype>boost::is_floating_point&lt; RealType &gt;::value</paramtype></parameter><parameter name=""><paramtype>"Template argument must be a floating point type"</paramtype></parameter></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.threefry__engine_8hpp" name="boost/compute/random/threefry_engine.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine" name="threefry_engine"><template>
      <template-type-parameter name="T"><default>uint_</default></template-type-parameter>
    </template><purpose>Threefry pseudorandom number generator. </purpose><typedef id="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine_1a388947f6598172c40591fcc3af994908" name="result_type"><type>T</type></typedef>
<data-member id="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine_1ad9ef78a58751c6a9d90aa756a01f3a1d" name="default_seed" specifiers="static"><type>const ulong_</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine_1abc77fc6a4cf4640f1ece15ce63c17167" specifiers="explicit"><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><parameter name="value"><paramtype>ulong_</paramtype><default>default_seed</default></parameter><purpose>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine">threefry_engine</link> and seeds it with <computeroutput>value</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine_1acadf07616e8ec7de7d194d702cb37433"><parameter name="other"><paramtype>const <classname>threefry_engine</classname>&lt; T &gt; &amp;</paramtype></parameter><purpose>Creates a new <link linkend="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine">threefry_engine</link> object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine_1a0f27db0365c085ad3b78ce28d41a0410"><type><classname>threefry_engine</classname>&lt; T &gt; &amp;</type><parameter name="other"><paramtype>const <classname>threefry_engine</classname>&lt; T &gt; &amp;</paramtype></parameter><purpose>Copies <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine_1a50cbe666c1188ed3f43db3f09a324927"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine">threefry_engine</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine_1a29419222e51bb5162d108fcc17203692" name="seed"><type>void</type><parameter name="value"><paramtype>ulong_</paramtype><description><para>seed value for the random-number generator </para></description></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype><description><para>command queue to perform the operation</para></description></parameter><description><para>Seeds the random number generator with <computeroutput>value</computeroutput>.</para><para>
If no seed value is provided, <computeroutput>default_seed</computeroutput> is used. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine_1a28ffe6ef2dfc52ee4d02627eeae772d7" name="seed"><type>void</type><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine_1a6fc485f7b261ed831ab5f78a46c7264d" name="generate"><type>void</type><template>
          <template-type-parameter name="OutputIterator"/>
        </template><parameter name="first"><paramtype>OutputIterator</paramtype></parameter><parameter name="last"><paramtype>OutputIterator</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Generates random numbers and stores them to the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>). </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine_1ac32593fb34912932d247c571f2f7d7b5" name="generate"><type>void</type><template>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="Function"/>
        </template><parameter name="first"><paramtype>OutputIterator</paramtype></parameter><parameter name="last"><paramtype>OutputIterator</paramtype></parameter><parameter name="op"><paramtype>Function</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Generates random numbers, transforms them with <computeroutput>op</computeroutput>, and then stores them to the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>). </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine_1a8f085bdc1011d8b519b2c8fe5ab6f34e" name="discard"><type>void</type><parameter name="z"><paramtype>size_t</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><purpose>Generates <computeroutput>z</computeroutput> random numbers and discards them. </purpose></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1threefry__engine_1a5bf642417144930c18174773c6ec60cd" name="load_program"><type>void</type></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.uniform__int__distribution_8hpp" name="boost/compute/random/uniform_int_distribution.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1uniform__int__distribution" name="uniform_int_distribution"><template>
      <template-type-parameter name="IntType"><default>uint_</default></template-type-parameter>
    </template><purpose>Produces uniformily distributed random integers. </purpose><description><para>The following example shows how to setup a uniform int distribution to produce random integers 0 and 1.</para><para><programlisting language="c++"/> </para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1uniform__int__distribution_1ab70974f1a2130bf98743b2299d4734ea" name="result_type"><type>IntType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1uniform__int__distribution_1a0b7b96c42b6e440ba893d37790d51a78" specifiers="explicit"><parameter name="a"><paramtype>IntType</paramtype><default>0</default></parameter><parameter name="b"><paramtype>IntType</paramtype><default>(std::numeric_limits&lt; IntType &gt;::max)()</default></parameter><description><para>Creates a new uniform distribution producing numbers in the range [<computeroutput>a</computeroutput>, <computeroutput>b</computeroutput>]. </para></description></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1uniform__int__distribution_1a7031ca679572552544b1f66ccdc80997"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1uniform__int__distribution">uniform_int_distribution</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1uniform__int__distribution_1aa291e9ef35def47552905c9ae1382198" name="a" cv="const"><type>result_type</type><purpose>Returns the minimum value of the distribution. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1uniform__int__distribution_1a604dbf8f414b6d46bdf7bbd6a599a7fd" name="b" cv="const"><type>result_type</type><purpose>Returns the maximum value of the distribution. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1uniform__int__distribution_1a03e9ba40c45a225758bc90f23b13a8f7" name="generate"><type>void</type><template>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="Generator"/>
        </template><parameter name="first"><paramtype>OutputIterator</paramtype></parameter><parameter name="last"><paramtype>OutputIterator</paramtype></parameter><parameter name="generator"><paramtype>Generator &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Generates uniformily distributed integers and stores them to the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>). </para></description></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1uniform__int__distribution_1a96a2c2a8cc76e7faf893a74be443d653" name="BOOST_STATIC_ASSERT_MSG"><type/><parameter name=""><paramtype>boost::is_integral&lt; IntType &gt;::value</paramtype></parameter><parameter name=""><paramtype>"Template argument must be integral"</paramtype></parameter></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.uniform__real__distribution_8hpp" name="boost/compute/random/uniform_real_distribution.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1uniform__real__distribution" name="uniform_real_distribution"><template>
      <template-type-parameter name="RealType"><default>float</default></template-type-parameter>
    </template><purpose>Produces uniformly distributed random floating-point numbers. </purpose><description><para>The following example shows how to setup a uniform real distribution to produce random <computeroutput>float</computeroutput> values between <computeroutput>1</computeroutput> and <computeroutput>100</computeroutput>.</para><para><programlisting language="c++"/></para><para><formalpara><title>See Also:</title><para>default_random_engine, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1normal__distribution">normal_distribution</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1uniform__real__distribution_1acc99fbf63b4a68a6e2c95d40bde37af2" name="result_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1uniform__real__distribution_1a17ded422506c178ba584e6058b832a8d"><parameter name="a"><paramtype>RealType</paramtype><default>0.f</default></parameter><parameter name="b"><paramtype>RealType</paramtype><default>1.f</default></parameter><description><para>Creates a new uniform distribution producing numbers in the range [<computeroutput>a</computeroutput>, <computeroutput>b</computeroutput>). Requires a &lt; b </para></description></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1uniform__real__distribution_1a82f8a8f58c4778785d2ae07a9e35e87c"><purpose>Destroys the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1uniform__real__distribution">uniform_real_distribution</link> object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1uniform__real__distribution_1a923fa3188716a1996f1f106924ca44c3" name="a" cv="const"><type>result_type</type><purpose>Returns the minimum value of the distribution. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1uniform__real__distribution_1aa13cccda30f496a0591fd6d6b5c8246b" name="b" cv="const"><type>result_type</type><purpose>Returns the maximum value of the distribution. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1uniform__real__distribution_1a28bf4d118de9a929bbdc3366d1752d1f" name="generate"><type>void</type><template>
          <template-type-parameter name="OutputIterator"/>
          <template-type-parameter name="Generator"/>
        </template><parameter name="first"><paramtype>OutputIterator</paramtype></parameter><parameter name="last"><paramtype>OutputIterator</paramtype></parameter><parameter name="generator"><paramtype>Generator &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><description><para>Generates uniformly distributed floating-point numbers and stores them to the range [<computeroutput>first</computeroutput>, <computeroutput>last</computeroutput>). </para></description></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1uniform__real__distribution_1ae512953e7aae63ea59f4684bbd5061dc" name="BOOST_STATIC_ASSERT_MSG"><type/><parameter name=""><paramtype>boost::is_floating_point&lt; RealType &gt;::value</paramtype></parameter><parameter name=""><paramtype>"Template argument must be a floating point type"</paramtype></parameter></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.common__type_8hpp" name="boost/compute/type_traits/common_type.hpp">
<namespace name="boost">
</namespace>
</header>
<header id="doxygen.header_reference.is__device__iterator_8hpp" name="boost/compute/type_traits/is_device_iterator.hpp">
<namespace name="boost">
<namespace name="compute">
<struct id="doxygen.header_reference.structboost_1_1compute_1_1is__device__iterator" name="is_device_iterator"><template>
      <template-type-parameter name="Iterator"/>
    </template><inherit access="public">boost::false_type</inherit><description><para>Meta-function returning <computeroutput>true</computeroutput> if <computeroutput>Iterator</computeroutput> is a device-iterator.</para><para>By default, this function returns false. Device iterator types (such as <link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator">buffer_iterator</link>) should specialize this trait and return <computeroutput>true</computeroutput>.</para><para>For example: <programlisting language="c++">is_device_iterator&lt;buffer_iterator&lt;int&gt;&gt;::value == true
is_device_iterator&lt;std::vector&lt;int&gt;::iterator&gt;::value == false
</programlisting> </para></description></struct>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.is__fundamental_8hpp" name="boost/compute/type_traits/is_fundamental.hpp">
<namespace name="boost">
<namespace name="compute">
<struct id="doxygen.header_reference.structboost_1_1compute_1_1is__fundamental" name="is_fundamental"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">boost::false_type</inherit><description><para>Meta-function returning <computeroutput>true</computeroutput> if <computeroutput>T</computeroutput> is a fundamental (i.e. built-in) type.</para><para>For example, <programlisting language="c++">is_fundamental&lt;float&gt;::value == true
is_fundamental&lt;std::pair&lt;int, float&gt;&gt;::value == false
</programlisting> </para></description></struct>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.is__vector__type_8hpp" name="boost/compute/type_traits/is_vector_type.hpp">
<namespace name="boost">
<namespace name="compute">
<struct id="doxygen.header_reference.structboost_1_1compute_1_1is__vector__type" name="is_vector_type"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">boost::mpl::bool_&lt; vector_size&lt; T &gt;::value !=1 &gt;</inherit><description><para>Meta-function returning <computeroutput>true</computeroutput> if <computeroutput>T</computeroutput> is a vector type.</para><para>For example, <programlisting language="c++">is_vector_type&lt;int&gt;::value == false
is_vector_type&lt;float4_&gt;::value == true
</programlisting></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.structboost_1_1compute_1_1make__vector__type">make_vector_type</link>, <link linkend="doxygen.header_reference.structboost_1_1compute_1_1vector__size">vector_size</link> </para>
</formalpara>
</para></description></struct>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.make__vector__type_8hpp" name="boost/compute/type_traits/make_vector_type.hpp">
<namespace name="boost">
<namespace name="compute">
<struct id="doxygen.header_reference.structboost_1_1compute_1_1make__vector__type" name="make_vector_type"><template>
      <template-type-parameter name="Scalar"/>
      <template-nontype-parameter name="Size"><type>size_t</type></template-nontype-parameter>
    </template><description><para>Meta-function which returns a vector type for <computeroutput>Scalar</computeroutput> with <computeroutput>Size</computeroutput>.</para><para>For example, <programlisting language="c++">make_vector_type&lt;int, 2&gt;::type == int2_
make_vector_type&lt;float, 4&gt;::type == float4_
</programlisting></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.structboost_1_1compute_1_1is__vector__type">is_vector_type</link> </para>
</formalpara>
</para></description></struct>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.result__of_8hpp" name="boost/compute/type_traits/result_of.hpp">
<namespace name="boost">
<namespace name="compute">
<struct id="doxygen.header_reference.structboost_1_1compute_1_1result__of" name="result_of"><template>
      <template-type-parameter name="Signature"/>
    </template><description><para>Returns the result of <computeroutput>Function</computeroutput> when called with <computeroutput>Args</computeroutput>.</para><para>For example, <programlisting language="c++">// int + int = int
result_of&lt;plus(int, int)&gt;::type == int
</programlisting> </para></description><typedef id="doxygen.header_reference.structboost_1_1compute_1_1result__of_1a70a1273db43a1bfe5e073a5365670a17" name="type"><type>::boost::tr1_result_of&lt; Signature &gt;::type</type></typedef>
</struct>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.scalar__type_8hpp" name="boost/compute/type_traits/scalar_type.hpp">
<namespace name="boost">
<namespace name="compute">
<struct id="doxygen.header_reference.structboost_1_1compute_1_1scalar__type" name="scalar_type"><template>
      <template-type-parameter name="Vector"/>
    </template><description><para>Meta-function returning the scalar type for a vector type.</para><para>For example, <programlisting language="c++"><link linkend="doxygen.header_reference.structboost_1_1compute_1_1scalar__type_1ae10106dde10db51a18222010f7c8affd">scalar_type&lt;float4_&gt;::type</link> == float
</programlisting> </para></description></struct>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.type__definition_8hpp" name="boost/compute/type_traits/type_definition.hpp">
<namespace name="boost">
<namespace name="compute">


































































































































<function id="doxygen.header_reference.type__definition_8hpp_1a1045ce633967edb16d85acc6bbd569ab" name="type_definition"><type>std::string</type><template>
          <template-type-parameter name="T"/>
        </template><description><para>Returns the OpenCL type definition for <computeroutput>T</computeroutput>.</para><para>
<formalpara><title>See Also:</title><para>type_name&lt;T&gt;() </para>
</formalpara>
</para></description><returns><para>a string containing the type definition for <computeroutput>T</computeroutput> </para>
</returns></function>


</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.type__name_8hpp" name="boost/compute/type_traits/type_name.hpp">
<namespace name="boost">
<namespace name="compute">

































































































































<function id="doxygen.header_reference.type__name_8hpp_1a721aaced4c9b158376ed813e6179c14a" name="type_name"><type>const char *</type><template>
          <template-type-parameter name="T"/>
        </template><description><para>Returns the OpenCL type name for the type <computeroutput>T</computeroutput> as a string.</para><para>
For example: <programlisting language="c++">type_name&lt;float&gt;() == "float"
type_name&lt;float4_&gt;() == "float4"
</programlisting></para><para><formalpara><title>See Also:</title><para>type_definition&lt;T&gt;() </para>
</formalpara>
</para></description><returns><para>a string containing the type name for <computeroutput>T</computeroutput> </para>
</returns></function>



</namespace>
</namespace>
<macro id="doxygen.header_reference.type__name_8hpp_1ae7b81fb30f37751b13358493057a982c" name="BOOST_COMPUTE_TYPE_NAME" kind="functionlike"><macro-parameter name="type"/><macro-parameter name="name"/><description><para>Registers the OpenCL type for the C++ <computeroutput>type</computeroutput> to <computeroutput>name</computeroutput>.</para><para>For example, the following will allow Eigen's <computeroutput>Vector2f</computeroutput> type to be used with Boost.Compute algorithms and containers as the built-in <computeroutput>float2</computeroutput> type. <programlisting language="c++">BOOST_COMPUTE_TYPE_NAME(Eigen::Vector2f, float2)
</programlisting></para><para>This macro should be invoked in the global namespace.</para><para><formalpara><title>See Also:</title><para>type_name() </para>
</formalpara>
</para></description></macro>
</header>
<header id="doxygen.header_reference.vector__size_8hpp" name="boost/compute/type_traits/vector_size.hpp">
<namespace name="boost">
<namespace name="compute">
<struct id="doxygen.header_reference.structboost_1_1compute_1_1vector__size" name="vector_size"><template>
      <template-type-parameter name="T"/>
    </template><description><para>Meta-function returning the size (number of components) of a vector type <computeroutput>T</computeroutput>. For scalar types this function returns <computeroutput>1</computeroutput>.</para><para>For example, <programlisting language="c++">vector_size&lt;float&gt;::value == 1
vector_size&lt;float4_&gt;::value == 4
</programlisting> </para></description><method-group name="public member functions">
</method-group>
</struct>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.dim_8hpp" name="boost/compute/utility/dim.hpp">
<namespace name="boost">
<namespace name="compute">




































































































































<function id="doxygen.header_reference.dim_8hpp_1af6310f0b069f0950524a9acf2b831f6e" name="dim"><type><classname>extents</classname>&lt; sizeof...(Args)&gt;</type><template>
          <template-nontype-parameter name="Args"><type>class...</type></template-nontype-parameter>
        </template><parameter name="args"><paramtype>Args...</paramtype></parameter><description><para>The variadic <computeroutput>dim()</computeroutput> function provides a concise syntax for creating <link linkend="doxygen.header_reference.classboost_1_1compute_1_1extents">extents</link> objects.</para><para>For example, <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1extents">extents&lt;2&gt;</link> region = dim(640, 480); // region == (640, 480)
</programlisting></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1extents">extents&lt;N&gt;</link> </para>
</formalpara>
</para></description></function>
</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.extents_8hpp" name="boost/compute/utility/extents.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1extents" name="extents"><template>
      <template-nontype-parameter name="N"><type>size_t</type></template-nontype-parameter>
    </template><description><para>The extents class contains an array of n-dimensional extents.</para><para><formalpara><title>See Also:</title><para>dim() </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a04b590206787ac71a3a2753128f73018" name="size_type"><type>size_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1extents_1aed1468ed0f041de58373c3b58eb7b6e5" name="array_type"><type>boost::array&lt; size_t, N &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a3aab20f3c69e9000ffc8b46350dc4172" name="iterator"><type>array_type::iterator</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1extents_1af4a621a4858210ae95f2e26e452f1253" name="const_iterator"><type>array_type::const_iterator</type></typedef>
<data-member id="doxygen.header_reference.classboost_1_1compute_1_1extents_1ae3467afa6ba66e739bfbc694f249f1f6" name="static_size" specifiers="static"><type>const size_type</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a3b690142c5152a19830eec0a0181a077"><description><para>Creates an extents object with each component set to zero.</para><para>For example: <programlisting language="c++">extents&lt;3&gt; exts(); // (0, 0, 0)
</programlisting> </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1extents_1ab1e9c402e45fc53b3fa9498f66313b37" specifiers="explicit"><parameter name="value"><paramtype>size_t</paramtype></parameter><description><para>Creates an extents object with each component set to <computeroutput>value</computeroutput>.</para><para>For example: <programlisting language="c++">extents&lt;3&gt; exts(1); // (1, 1, 1)
</programlisting> </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a0dc627c0b01016ccf7126a12ade2f9f0"><parameter name="values"><paramtype>std::initializer_list&lt; size_t &gt;</paramtype></parameter><purpose>Creates an extents object with <computeroutput>values</computeroutput>. </purpose></constructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a22e365d98888e189b77f640ad4ec9b12" name="size" cv="const"><type>size_type</type><purpose>Returns the size (i.e. dimensionality) of the extents array. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a510151db8a7ef28762ba3c904db2017f" name="linear" cv="const"><type>size_type</type><description><para>Returns the linear size of the extents. This is equivalent to the product of each extent in each dimension. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a1c6047a8b920b2cf1e8fcd8849aafbee" name="data"><type>size_t *</type><description><para>Returns a pointer to the extents data array.</para><para>This is useful for passing the extents data to OpenCL APIs which expect an array of <computeroutput>size_t</computeroutput>. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a89bd8f8e9cde9eba5f8b1ad27f59f2c4" name="data" cv="const"><type>const size_t *</type><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a9f6233ecfdca59f6b9525fe5501d81c5" name="begin"><type>iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a2750e96d051a2ca73dae34865bbb5458" name="begin" cv="const"><type>const_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1ab1b2e3342f3a3b0cbbe949d1363c7809" name="cbegin" cv="const"><type>const_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a3c199085d32e406bf2c419db03983024" name="end"><type>iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1add846baaf181014b05d427138027aa4c" name="end" cv="const"><type>const_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1ae7b785a02ed4f12e2f44bdccba58b5a8" name="cend" cv="const"><type>const_iterator</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a3a944849aa794e5cabf54ddd9b3d1d49" name="operator[]"><type>size_t &amp;</type><parameter name="index"><paramtype>size_t</paramtype></parameter><purpose>Returns a reference to the extent at <computeroutput>index</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a7ad4409a6fcf73abc374f2fd376cfba8" name="operator[]" cv="const"><type>const size_t &amp;</type><parameter name="index"><paramtype>size_t</paramtype></parameter><purpose>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1ad0558ae0433736dac114a2a3439dae28" name="operator==" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>extents</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the extents in <computeroutput>*this</computeroutput> are the same as <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1extents_1ac124b9221e8629f265fc887631e1dcb7" name="operator!=" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>extents</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the extents in <computeroutput>*this</computeroutput> are not the same as <computeroutput>other</computeroutput>. </purpose></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.invoke_8hpp" name="boost/compute/utility/invoke.hpp">
<namespace name="boost">
<namespace name="compute">



































































































































<function id="doxygen.header_reference.invoke_8hpp_1a5466e1d6a89e69a8f028b3ec5a86039d" name="invoke"><type><classname>result_of</classname>&lt; Function(Args...)&gt;::type</type><template>
          <template-type-parameter name="Function"/>
          <template-nontype-parameter name="Args"><type>class...</type></template-nontype-parameter>
        </template><parameter name="function"><paramtype>const Function &amp;</paramtype></parameter><parameter name="queue"><paramtype>command_queue &amp;</paramtype></parameter><parameter name="args"><paramtype>const Args &amp;...</paramtype></parameter><description><para>Invokes <computeroutput>function</computeroutput> with <computeroutput>args</computeroutput> on <computeroutput>queue</computeroutput>.</para><para>For example, to invoke the builtin abs() function: <programlisting language="c++">int result = invoke(abs&lt;int&gt;(), queue, -10); // returns 10
</programlisting> </para></description></function>

</namespace>
</namespace>
<macro id="doxygen.header_reference.invoke_8hpp_1a5df144dee17b000fb35f6a7b248e3d68" name="BOOST_COMPUTE_DETAIL_INVOKE_ARG" kind="functionlike"><macro-parameter name="z"/><macro-parameter name="n"/><macro-parameter name="unused"/></macro>
<macro id="doxygen.header_reference.invoke_8hpp_1ae34da9a5abfb7553f29529ea06aee268" name="BOOST_COMPUTE_DETAIL_INVOKE_ADD_ARG" kind="functionlike"><macro-parameter name="z"/><macro-parameter name="n"/><macro-parameter name="unused"/></macro>
<macro id="doxygen.header_reference.invoke_8hpp_1a3d45bf6808f66df79d98ca8f5dfe2eef" name="BOOST_COMPUTE_DETAIL_DEFINE_INVOKE" kind="functionlike"><macro-parameter name="z"/><macro-parameter name="n"/><macro-parameter name="unused"/></macro>
</header>
<header id="doxygen.header_reference.program__cache_8hpp" name="boost/compute/utility/program_cache.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1program__cache" name="program_cache"><inherit access="private">boost::noncopyable</inherit><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1program__cache">program_cache</link> class stores program objects in a LRU cache.</para><para>This class can be used to help mitigate the overhead of OpenCL's run-time kernel compilation model. Commonly used programs can be stored persistently in the cache and only compiled once on their first use.</para><para>Program objects are stored and retreived based on a user-defined cache key along with the options used to build the program (if any).</para><para>For example, to insert a program into the cache: <programlisting language="c++">cache.insert("foo", foo_program);
</programlisting></para><para>And to retreive the program later: <programlisting language="c++">boost::optional&lt;program&gt; p = cache.get("foo");
if(p){
    // program found in cache
}
</programlisting></para><para><formalpara><title>See Also:</title><para>program </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1program__cache_1a84e0692477326ac81c4a7efc80620128"><parameter name="capacity"><paramtype>size_t</paramtype></parameter><description><para>Creates a new program cache with space for <computeroutput>capacity</computeroutput> number of program objects. </para></description></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1program__cache_1a92e57ec6cffd528aa2d5647961cd8dce"><purpose>Destroys the program cache. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program__cache_1a89e723a895aa03b6573d45f8c4c81d24" name="size" cv="const"><type>size_t</type><purpose>Returns the number of program objects currently stored in the cache. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program__cache_1ad99c6b183398a05c4e7e22988f10489a" name="capacity" cv="const"><type>size_t</type><purpose>Returns the total capacity of the cache. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program__cache_1aa9d46e4c29defa08e2a90ff7b73e1a04" name="clear"><type>void</type><purpose>Clears the program cache. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program__cache_1a7e5faffa06528eeb1038ba018f979385" name="get"><type>boost::optional&lt; program &gt;</type><parameter name="key"><paramtype>const std::string &amp;</paramtype></parameter><description><para>Returns the program object with <computeroutput>key</computeroutput>. Returns a null optional if no program with <computeroutput>key</computeroutput> exists in the cache. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program__cache_1a076bc660c68a229e52f32a3df8418a48" name="get"><type>boost::optional&lt; program &gt;</type><parameter name="key"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="options"><paramtype>const std::string &amp;</paramtype></parameter><description><para>Returns the program object with <computeroutput>key</computeroutput> and <computeroutput>options</computeroutput>. Returns a null optional if no program with <computeroutput>key</computeroutput> and <computeroutput>options</computeroutput> exists in the cache. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program__cache_1ada3d8fe892405920b8ad7402e74a63fd" name="insert"><type>void</type><parameter name="key"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="program"><paramtype>const program &amp;</paramtype></parameter><purpose>Inserts <computeroutput>program</computeroutput> into the cache with <computeroutput>key</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program__cache_1a85c91cf64e7cafd6474780e279bc873c" name="insert"><type>void</type><parameter name="key"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="options"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="program"><paramtype>const program &amp;</paramtype></parameter><purpose>Inserts <computeroutput>program</computeroutput> into the cache with <computeroutput>key</computeroutput> and <computeroutput>options</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program__cache_1a05ecc23ce46c93f8db9332978ffdc9ec" name="get_or_build"><type>program</type><parameter name="key"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="options"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="source"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><description><para>Loads the program with <computeroutput>key</computeroutput> from the cache if it exists. Otherwise builds a new program with <computeroutput>source</computeroutput> and <computeroutput>options</computeroutput>, stores it in the cache, and returns it.</para><para>This is a convenience function to simplify the common pattern of attempting to load a program from the cache and, if not present, building the program from source and storing it in the cache.</para><para>Equivalent to: <programlisting language="c++">boost::optional&lt;program&gt; p = <link linkend="doxygen.header_reference.classboost_1_1compute_1_1program__cache_1a7e5faffa06528eeb1038ba018f979385">get</link>(key, options);
if(!p){
    p = program::create_with_source(source, context);
    p-&gt;build(options);
    <link linkend="doxygen.header_reference.classboost_1_1compute_1_1program__cache_1ada3d8fe892405920b8ad7402e74a63fd">insert</link>(key, options, *p);
}
return *p;
</programlisting> </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1program__cache_1a02824381fa15307631edc0743186773c" name="get_global_cache" specifiers="static"><type>boost::shared_ptr&lt; <classname>program_cache</classname> &gt;</type><parameter name="context"><paramtype>const context &amp;</paramtype></parameter><description><para>Returns the global program cache for <computeroutput>context</computeroutput>.</para><para>This global cache is used internally by Boost.Compute to store compiled program objects used by its algorithms. All Boost.Compute programs are stored with a cache key beginning with <computeroutput>"__boost"</computeroutput>. User programs should avoid using the same prefix in order to prevent collisions. </para></description></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.source_8hpp" name="boost/compute/utility/source.hpp">
<macro id="doxygen.header_reference.source_8hpp_1ab401351638fe91745773b1784a1bc3bc" name="BOOST_COMPUTE_STRINGIZE_SOURCE" kind="functionlike"><macro-parameter name="source"/><description><para>Stringizes OpenCL source code.</para><para>For example, to create a simple kernel which squares each input value: <programlisting language="c++">const char source[] = BOOST_COMPUTE_STRINGIZE_SOURCE(
    __kernel void square(const float *input, float *output)
    {
        const uint i = get_global_id(0);
        const float x = input[i];
        output[i] = x * x;
    }
);

// create and build square program
program square_program = program::build_with_source(source, context);

// create square kernel
kernel square_kernel(square_program, "square");
</programlisting> </para></description></macro>
</header>
<header id="doxygen.header_reference.wait__list_8hpp" name="boost/compute/utility/wait_list.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1wait__list" name="wait_list"><purpose>Stores a list of events. </purpose><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1wait__list">wait_list</link> class stores a set of event objects and can be used to specify dependencies for OpenCL operations or to wait on the host until all of the events have completed.</para><para>This class also provides convenience functions for interacting with OpenCL APIs which typically accept event dependencies as a <computeroutput>cl_event*</computeroutput> pointer and a <computeroutput>cl_uint</computeroutput> size. For example: <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1a3682a810134894e12a3fd980351aee20">wait_list</link> events = ...;

clEnqueueNDRangeKernel(..., events.get_event_ptr(), events.size(), ...);
</programlisting></para><para><formalpara><title>See Also:</title><para>event, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1future">future&lt;T&gt;</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1a461edba305e0714c9e5374b43eadb051" name="iterator"><type>std::vector&lt; event &gt;::iterator</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1aae03602a22333db1251149f7977d362b" name="const_iterator"><type>std::vector&lt; event &gt;::const_iterator</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1a3682a810134894e12a3fd980351aee20"><purpose>Creates an empty wait-list. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1aeb56d694820b95ef7c17297867d0d1b0"><parameter name="event"><paramtype>const event &amp;</paramtype></parameter><purpose>Creates a wait-list containing <computeroutput>event</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1ad40d44391323b117f89da4d76ffb6b1f"><parameter name="other"><paramtype>const <classname>wait_list</classname> &amp;</paramtype></parameter><purpose>Creates a new wait-list as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1a90d5d169a2ccf4544f9b3b1ee5577dbb"><parameter name="events"><paramtype>std::initializer_list&lt; event &gt;</paramtype></parameter><purpose>Creates a wait-list from <computeroutput>events</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1a6df6d284c80ed65ec342f3fd79fd8582"><type><classname>wait_list</classname> &amp;</type><parameter name="other"><paramtype>const <classname>wait_list</classname> &amp;</paramtype></parameter><purpose>Copies the events in the wait-list from <computeroutput>other</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1ab6437fb631bbdb975a692bddcecffb4e"><parameter name="other"><paramtype><classname>wait_list</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new wait list object from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1a315cfd4653a31469fdb7b528f47e4afe"><type><classname>wait_list</classname> &amp;</type><parameter name="other"><paramtype><classname>wait_list</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the wait list from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1ae0176f11d020bfc0a4485b078b154bf7"><purpose>Destroys the wait-list. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1afc600098b56e26dfaba7e13ef42641c2" name="empty" cv="const"><type>bool</type><purpose>Returns <computeroutput>true</computeroutput> if the wait-list is empty. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1aff65805438ba6d0f525e238ebf14a1cb" name="size" cv="const"><type>uint_</type><purpose>Returns the number of events in the wait-list. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1a7365454eb05d526477eb86d7b13d62f9" name="clear"><type>void</type><purpose>Removes all of the events from the wait-list. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1a87d7101140f0e856ffd3606b38c66fb1" name="get_event_ptr" cv="const"><type>const cl_event *</type><description><para>Returns a cl_event pointer to the first event in the wait-list. Returns <computeroutput>0</computeroutput> if the wait-list is empty.</para><para>This can be used to pass the wait-list to OpenCL functions which expect a <computeroutput>cl_event</computeroutput> pointer to refer to a list of events. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1a7c8fc6a7b60dbe51b5ffe883a9ba50c6" name="reserve"><type>void</type><parameter name="new_capacity"><paramtype>size_t</paramtype></parameter><purpose>Reserves a minimum length of storage for the wait list object. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1a75e3947185d3274db42638a23cf9e01e" name="insert"><type>void</type><parameter name="event"><paramtype>const event &amp;</paramtype></parameter><purpose>Inserts <computeroutput>event</computeroutput> into the wait-list. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1afba79e2ad941a7618f438c7bb249bfb4" name="insert"><type>void</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="future"><paramtype>const <classname>future</classname>&lt; T &gt; &amp;</paramtype></parameter><purpose>Inserts the event from <computeroutput>future</computeroutput> into the wait-list. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1ada7933ea39d1cf52e061ba5974962426" name="wait" cv="const"><type>void</type><description><para>Blocks until all of the events in the wait-list have completed.</para><para>Does nothing if the wait-list is empty. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1ae059394777f1b27ae7b6a55eb3ba9211" name="operator[]" cv="const"><type>const event &amp;</type><parameter name="pos"><paramtype>size_t</paramtype></parameter><purpose>Returns a reference to the event at specified location <computeroutput>pos</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1a8c8e10079a864a2e80d501cb2d9d3da5" name="operator[]"><type>event &amp;</type><parameter name="pos"><paramtype>size_t</paramtype></parameter><purpose>Returns a reference to the event at specified location <computeroutput>pos</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1abba536d24c1a0c35a2eca0ba0ef932cb" name="begin"><type>iterator</type><purpose>Returns an iterator to the first element of the wait-list. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1a378382603116d4b41311fed193c76416" name="begin" cv="const"><type>const_iterator</type><purpose>Returns an iterator to the first element of the wait-list. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1a0b9aa25e018322dd12a2fafd18e2f777" name="cbegin" cv="const"><type>const_iterator</type><purpose>Returns an iterator to the first element of the wait-list. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1ad2fda183e57ee7dad5659f7461938376" name="end"><type>iterator</type><purpose>Returns an iterator to the element following the last element of the wait-list. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1ab2860624eb664abcb7c0f70dfed8f505" name="end" cv="const"><type>const_iterator</type><purpose>Returns an iterator to the element following the last element of the wait-list. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1aa63fcbaa21ad25f13d235bd8b592ec4e" name="cend" cv="const"><type>const_iterator</type><purpose>Returns an iterator to the element following the last element of the wait-list. </purpose></method>
</method-group>
</class>




































































































































</namespace>
</namespace>
</header>
</library-reference>