<?xml version="1.0" standalone="yes"?>
<library-reference id="header_reference"><title>Header Reference</title><header id="doxygen.header_reference.compute_8hpp" name="boost/compute.hpp">
</header>
<header id="doxygen.header_reference.algorithm_8hpp" name="boost/compute/algorithm.hpp">
<para>Meta-header to include all Boost.Compute algorithm headers. </para></header>
<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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1context">context</link>);

// 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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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.allocator_8hpp" name="boost/compute/allocator.hpp">
<para>Meta-header to include all Boost.Compute allocator headers. </para></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 <link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer">buffer</link> objects. </purpose><description><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer">buffer</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1ad6f0dd4c3d37a1c6a461bc6ef14a2618" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1a9609c377c9807e30f9efc2700eb98962" name="pointer"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1a1b06ad4174ecdaa582b9868a2d928eee" name="const_pointer"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1a6934acc0e93bc9be0252cc608f834436" name="size_type"><type>std::size_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__allocator_1a10397455007e2d89ede6f5623417bb9f" 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 <classname>context</classname> &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><classname>context</classname></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 <classname>context</classname> &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.async_8hpp" name="boost/compute/async.hpp">
<para>Meta-header to include all Boost.Compute async headers. </para></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><link linkend="doxygen.header_reference.classboost_1_1compute_1_1event">event</link>, <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 <classname>event</classname> &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><classname>event</classname></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 <link linkend="doxygen.header_reference.classboost_1_1compute_1_1event">event</link> 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><link linkend="doxygen.header_reference.classboost_1_1compute_1_1event">event</link>, <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. <link linkend="doxygen.header_reference.classboost_1_1compute_1_1event">event</link>, <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
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1wait__guard_1ae3710ec0f98885da809e6ea7a8df6952">wait_guard&lt;event&gt;</link> 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.buffer_8hpp" name="boost/compute/buffer.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1buffer" name="buffer"><inherit access="public">boost::compute::memory_object</inherit><purpose>A memory buffer on a compute device. </purpose><description><para>The buffer class represents a memory buffer on a compute device.</para><para>Buffers are allocated within a compute context. For example, to allocate a memory buffer for 32 float's:</para><para><programlisting language="c++"/></para><para>Once created, data can be copied to and from the buffer using the <computeroutput>enqueue_*_buffer</computeroutput>() methods in the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1command__queue">command_queue</link> class. For example, to copy a set of <computeroutput>int</computeroutput> values from the host to the device: <programlisting language="c++">int data[] = { 1, 2, 3, 4 };

queue.enqueue_write_buffer(buf, 0, 4 * sizeof(int), data);
</programlisting></para><para>Also see the copy() algorithm for a higher-level interface to copying data between the host and the device. For a higher-level, dynamically-resizable, type-safe container for data on a compute device, use the vector&lt;T&gt; class.</para><para>Buffer objects have reference semantics. Creating a copy of a buffer object simply creates another reference to the underlying OpenCL memory object. To create an actual copy use the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer_1ac2aa43949315d53ef5851632ef0bba5e">buffer::clone()</link> method.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1context">context</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1command__queue">command_queue</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer_1a00737b2bdc8e28fe6697933f6fc3eba8"><purpose>Creates a null buffer object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer_1a0d1747a34bf8c61423349300338ad808" specifiers="explicit"><parameter name="mem"><paramtype>cl_mem</paramtype></parameter><parameter name="retain"><paramtype>bool</paramtype><default>true</default></parameter><description><para>Creates a buffer object for <computeroutput>mem</computeroutput>. If <computeroutput>retain</computeroutput> is <computeroutput>true</computeroutput>, the reference count for <computeroutput>mem</computeroutput> will be incremented. </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer_1a8ebcbc85b43675cf69866a2c3e483a9e"><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><parameter name="size"><paramtype>size_t</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>Create a new memory buffer in of <computeroutput>size</computeroutput> with <computeroutput>flags</computeroutput> in <computeroutput>context</computeroutput>.</para><para>See the documentation for </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer_1aa0799aaf34a8b5341b808cebaa0d4b43"><parameter name="other"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><purpose>Creates a new buffer object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1buffer_1a1280f969afcf5b6676a0aeca305ff2d1"><type><classname>buffer</classname> &amp;</type><parameter name="other"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><purpose>Copies the buffer object from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer_1a6eba0c71c24b030ee95c94cd98a5d9bc" cv="noexcept"><parameter name="other"><paramtype><classname>buffer</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new buffer object from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1buffer_1a74c701264ea5c35d95b227305cfbe7cc" cv="noexcept"><type><classname>buffer</classname> &amp;</type><parameter name="other"><paramtype><classname>buffer</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the buffer from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1buffer_1a8f1cbdbe8b59e1a554ee232770ce8011"><purpose>Destroys the buffer object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1buffer_1ab7d5f756e34b291f8893bb95a1ba3381" name="size" cv="const"><type>size_t</type><purpose>Returns the size of the buffer in bytes. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1buffer_1a46f46b5662c66a0192bec8e9dc37d731" name="get_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 buffer.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1buffer_1a148412b2ac583f4af69ca3140f7b8395" 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_1buffer_1ac2aa43949315d53ef5851632ef0bba5e" name="clone" cv="const"><type><classname>buffer</classname></type><parameter name="queue"><paramtype><classname>command_queue</classname> &amp;</paramtype></parameter><description><para>Creates a new buffer with a copy of the data in <computeroutput>*this</computeroutput>. Uses <computeroutput>queue</computeroutput> to perform the copy. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1buffer_1a11501120b23d0e6fda2794cd7ed0f20b" name="create_subbuffer"><type><classname>buffer</classname></type><parameter name="flags"><paramtype>cl_mem_flags</paramtype></parameter><parameter name="origin"><paramtype>size_t</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><description><para>Creates a new buffer out of this buffer. The new buffer is a sub region of this buffer. <computeroutput>flags</computeroutput> The mem_flags which should be used to create the new buffer <computeroutput>origin</computeroutput> The start index in this buffer <computeroutput>size</computeroutput> The size of the new sub buffer</para><para>See the documentation for </para></description></method>
</method-group>
</class>








































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.cl_8hpp" name="boost/compute/cl.hpp">
</header>
<header id="doxygen.header_reference.closure_8hpp" name="boost/compute/closure.hpp">
<namespace name="boost">
<namespace name="compute">









































































































































</namespace>
</namespace>
<macro id="doxygen.header_reference.closure_8hpp_1acba2537465bd13ba411a5c525941634d" name="BOOST_COMPUTE_CLOSURE" kind="functionlike"><macro-parameter name="return_type"><description><para>The return type for the function. </para></description></macro-parameter><macro-parameter name="name"><description><para>The name of the function. </para></description></macro-parameter><macro-parameter name="arguments"><description><para>A list of arguments for the function. </para></description></macro-parameter><macro-parameter name="capture"><description><para>A list of variables to capture. </para></description></macro-parameter><macro-parameter name="source"><description><para>The OpenCL C source code for the function.</para></description></macro-parameter><description><para>Creates a closure function object with <computeroutput>name</computeroutput> and <computeroutput>source</computeroutput>.</para><para>
For example, to create a function which checks if a 2D point is contained in a circle of a given radius: <programlisting language="c++">// radius variable declared in C++
float radius = 1.5f;

// create a closure function which returns true if the 2D point
// argument is contained within a circle of the given radius
BOOST_COMPUTE_CLOSURE(bool, is_in_circle, (const float2_ p), (radius),
{
    return sqrt(p.x*p.x + p.y*p.y) &lt; radius;
});

// vector of 2D points
boost::compute::vector&lt;float2_&gt; points = ...

// count number of points in the circle
size_t count = boost::compute::count_if(
    points.begin(), points.end(), is_in_circle, queue
);
</programlisting></para><para><formalpara><title>See Also:</title><para>BOOST_COMPUTE_FUNCTION() </para>
</formalpara>
</para></description></macro>
</header>
<header id="doxygen.header_reference.command__queue_8hpp" name="boost/compute/command_queue.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1command__queue" name="command_queue"><purpose>A command queue. </purpose><description><para>Command queues provide the interface for interacting with compute devices. The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1command__queue">command_queue</link> class provides methods to copy data to and from a compute device as well as execute compute kernels.</para><para>Command queues are created for a compute device within a compute context.</para><para>For example, to create a context and command queue for the default device on the system (this is the normal set up code used by almost all OpenCL programs): <programlisting language="c++">#include &lt;<link linkend="doxygen.header_reference.core_8hpp">boost/compute/core.hpp</link>&gt;

// get the default compute device
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1device">boost::compute::device</link> device = <link linkend="doxygen.header_reference.classboost_1_1compute_1_1system_1a7e1531ff30d091e9127eaa6d96cbb3b7">boost::compute::system::default_device</link>();

// set up a compute context and command queue
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1context">boost::compute::context</link> context(device);
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1command__queue">boost::compute::command_queue</link> queue(context, device);
</programlisting></para><para>The default command queue for the system can be obtained with the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1system_1a6196ebd5ef73c5ac11060487e5b79043">system::default_queue()</link> method.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer">buffer</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1context">context</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1kernel">kernel</link> </para>
</formalpara>
</para></description><enum id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a759b08101388989261e14b566e0260d0" name="properties"><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a759b08101388989261e14b566e0260d0a9d34ba222b5614e1fc090fa84df64441" name="enable_profiling"><default>CL_QUEUE_PROFILING_ENABLE</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a759b08101388989261e14b566e0260d0a962ce753d672e751e8101efbc42da9db" name="enable_out_of_order_execution"><default>CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE</default></enumvalue></enum>
<enum id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1aae600a8524e098b4a0bcdcb8508e0fed" name="map_flags"><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1aae600a8524e098b4a0bcdcb8508e0feda6b9f7fc1e4a65ebfb367d62e3f9b6f6c" name="map_read"><default>CL_MAP_READ</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1aae600a8524e098b4a0bcdcb8508e0feda21beee8f9363ae8a8d10fe37941c8c70" name="map_write"><default>CL_MAP_WRITE</default></enumvalue></enum>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ab763551d9887b72bb9cdabd5f93179be"><purpose>Creates a null command queue. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1abaff2e3103793dcdf84ca0bf1fc8366b" specifiers="explicit"><parameter name="queue"><paramtype>cl_command_queue</paramtype></parameter><parameter name="retain"><paramtype>bool</paramtype><default>true</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a177b03840609a5ab8b97571c4b0cbe9d"><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><parameter name="device"><paramtype>const <classname>device</classname> &amp;</paramtype></parameter><parameter name="properties"><paramtype>cl_command_queue_properties</paramtype><default>0</default></parameter><description><para>Creates a command queue in <computeroutput>context</computeroutput> for <computeroutput>device</computeroutput> with <computeroutput>properties</computeroutput>.</para><para>See the documentation for </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a6e8a753f0cae2a97fcc99df23c7baeb7"><parameter name="other"><paramtype>const <classname>command_queue</classname> &amp;</paramtype></parameter><purpose>Creates a new command queue object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a8596650ce4c136e2b091cffae595d8cc"><type><classname>command_queue</classname> &amp;</type><parameter name="other"><paramtype>const <classname>command_queue</classname> &amp;</paramtype></parameter><purpose>Copies the command queue object from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ae0cccc3f30b185c2a5ccdd6f4f8d2408" cv="noexcept"><parameter name="other"><paramtype><classname>command_queue</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new command queue object from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ad8e8f4c518532fec2031ab552791f734" cv="noexcept"><type><classname>command_queue</classname> &amp;</type><parameter name="other"><paramtype><classname>command_queue</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the command queue from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1af789f36b544953ac9df781ca5c9daba6"><description><para>Destroys the command queue.</para><para>See the documentation for </para></description></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a57923f8335da0f7d126100040218bad5" name="get" cv="const"><type>cl_command_queue &amp;</type><purpose>Returns the underlying OpenCL command queue. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ae7852f68e6e787d7c67a30ea92d0d972" name="get_device" cv="const"><type><classname>device</classname></type><purpose>Returns the device that the command queue issues commands to. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a4534aaf6aa8dd52780cee2f094d8b2bd" name="get_context" cv="const"><type><classname>context</classname></type><purpose>Returns the context for the command queue. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1af57669be2ef8b3dfc37172e63e8b16f3" name="get_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_command_queue_info</paramtype></parameter><description><para>Returns information about the command queue.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a2330935cf6dbebc90824bb979a3523a3" 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_1command__queue_1a10e1fc5d8689deb924fd0b6b9621ac75" name="get_properties" cv="const"><type>cl_command_queue_properties</type><purpose>Returns the properties for the command queue. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a5f3f5b329c986f19f6b1673690f4c59c" name="get_default_device_queue" cv="const"><type><classname>command_queue</classname></type><description><para>Returns the current default device command queue for the underlying device.</para><para><warning><para>This method is only available if the OpenCL version is 2.1 or later. </para>
</warning>
</para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a0fecfb5909c7b7d7173558b036aba6b5" name="set_as_default_device_queue" cv="const"><type>void</type><description><para>Replaces the default device command queue for the underlying device with this command queue. Command queue must have been created with CL_QUEUE_ON_DEVICE flag.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1adb6faa9b3bb69c2bd600d677051d4248" name="enqueue_read_buffer"><type><classname>event</classname></type><parameter name="buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="offset"><paramtype>size_t</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="host_ptr"><paramtype>void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to read data from <computeroutput>buffer</computeroutput> to host memory.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1adde4b5999238a713f4ca20edfa191e37" name="enqueue_read_buffer_async"><type><classname>event</classname></type><parameter name="buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="offset"><paramtype>size_t</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="host_ptr"><paramtype>void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to read data from <computeroutput>buffer</computeroutput> to host memory. The copy will be performed asynchronously.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1aae2b490d1d1bf6bc1133b10c669ce2e1" name="enqueue_read_buffer_rect"><type><classname>event</classname></type><parameter name="buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="buffer_origin"><paramtype>const size_t</paramtype></parameter><parameter name="host_origin"><paramtype>const size_t</paramtype></parameter><parameter name="region"><paramtype>const size_t</paramtype></parameter><parameter name="buffer_row_pitch"><paramtype>size_t</paramtype></parameter><parameter name="buffer_slice_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_row_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_slice_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_ptr"><paramtype>void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to read a rectangular region from <computeroutput>buffer</computeroutput> to host memory.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a52245cf2c35448c560d4a89927fecd88" name="enqueue_read_buffer_rect_async"><type><classname>event</classname></type><parameter name="buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="buffer_origin"><paramtype>const size_t</paramtype></parameter><parameter name="host_origin"><paramtype>const size_t</paramtype></parameter><parameter name="region"><paramtype>const size_t</paramtype></parameter><parameter name="buffer_row_pitch"><paramtype>size_t</paramtype></parameter><parameter name="buffer_slice_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_row_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_slice_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_ptr"><paramtype>void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to read a rectangular region from <computeroutput>buffer</computeroutput> to host memory. The copy will be performed asynchronously.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ae0f48e8fe4989935eed4a94cdab0db40" name="enqueue_write_buffer"><type><classname>event</classname></type><parameter name="buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="offset"><paramtype>size_t</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="host_ptr"><paramtype>const void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to write data from host memory to <computeroutput>buffer</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ae9f53be1cb853201d3678ffaacfa53ea" name="enqueue_write_buffer_async"><type><classname>event</classname></type><parameter name="buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="offset"><paramtype>size_t</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="host_ptr"><paramtype>const void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to write data from host memory to <computeroutput>buffer</computeroutput>. The copy is performed asynchronously.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1af888840a4d0ffd9d4e195735a74b3d9b" name="enqueue_write_buffer_rect"><type><classname>event</classname></type><parameter name="buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="buffer_origin"><paramtype>const size_t</paramtype></parameter><parameter name="host_origin"><paramtype>const size_t</paramtype></parameter><parameter name="region"><paramtype>const size_t</paramtype></parameter><parameter name="buffer_row_pitch"><paramtype>size_t</paramtype></parameter><parameter name="buffer_slice_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_row_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_slice_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_ptr"><paramtype>void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to write a rectangular region from host memory to <computeroutput>buffer</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a992915b1537161c64bf7791f4a72aaa6" name="enqueue_write_buffer_rect_async"><type><classname>event</classname></type><parameter name="buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="buffer_origin"><paramtype>const size_t</paramtype></parameter><parameter name="host_origin"><paramtype>const size_t</paramtype></parameter><parameter name="region"><paramtype>const size_t</paramtype></parameter><parameter name="buffer_row_pitch"><paramtype>size_t</paramtype></parameter><parameter name="buffer_slice_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_row_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_slice_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_ptr"><paramtype>void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to write a rectangular region from host memory to <computeroutput>buffer</computeroutput>. The copy is performed asynchronously.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ae316d1c0be2281e16ad7ce9a99b31b4d" name="enqueue_copy_buffer"><type><classname>event</classname></type><parameter name="src_buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="dst_buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="src_offset"><paramtype>size_t</paramtype></parameter><parameter name="dst_offset"><paramtype>size_t</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to copy data from <computeroutput>src_buffer</computeroutput> to <computeroutput>dst_buffer</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a486bd79d63756dcf8df4fd5f347225e3" name="enqueue_copy_buffer_rect"><type><classname>event</classname></type><parameter name="src_buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="dst_buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="src_origin"><paramtype>const size_t</paramtype></parameter><parameter name="dst_origin"><paramtype>const size_t</paramtype></parameter><parameter name="region"><paramtype>const size_t</paramtype></parameter><parameter name="buffer_row_pitch"><paramtype>size_t</paramtype></parameter><parameter name="buffer_slice_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_row_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_slice_pitch"><paramtype>size_t</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to copy a rectangular region from <computeroutput>src_buffer</computeroutput> to <computeroutput>dst_buffer</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ae7c524b30c07876931b6876715c873ed" name="enqueue_fill_buffer"><type><classname>event</classname></type><parameter name="buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="pattern"><paramtype>const void *</paramtype></parameter><parameter name="pattern_size"><paramtype>size_t</paramtype></parameter><parameter name="offset"><paramtype>size_t</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to fill <computeroutput>buffer</computeroutput> with <computeroutput>pattern</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ac1597ca1f3f56837794f20879c1894b6" name="enqueue_map_buffer"><type>void *</type><parameter name="buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_map_flags</paramtype></parameter><parameter name="offset"><paramtype>size_t</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="map_buffer_event"><paramtype><classname>event</classname> &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 map <computeroutput>buffer</computeroutput> into the host address space. Event associated with map operation is returned through <computeroutput>map_buffer_event</computeroutput> parameter.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a6c7d21808b92327e35865dcac78751bd" name="enqueue_map_buffer"><type>void *</type><parameter name="buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_map_flags</paramtype></parameter><parameter name="offset"><paramtype>size_t</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</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></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a6197d47b13116970f7d18d9976155fb3" name="enqueue_map_buffer_async"><type>void *</type><parameter name="buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_map_flags</paramtype></parameter><parameter name="offset"><paramtype>size_t</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="map_buffer_event"><paramtype><classname>event</classname> &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 map <computeroutput>buffer</computeroutput> into the host address space. Map operation is performed asynchronously. The pointer to the mapped region cannot be used until the map operation has completed.</para><para>Event associated with map operation is returned through <computeroutput>map_buffer_event</computeroutput> parameter.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ac954fa28b0c2ff71c567e71905b70ce2" name="enqueue_unmap_buffer"><type><classname>event</classname></type><parameter name="buffer"><paramtype>const <classname>buffer</classname> &amp;</paramtype></parameter><parameter name="mapped_ptr"><paramtype>void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to unmap <computeroutput>buffer</computeroutput> from the host memory space.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1aa01258e00cec1a1092f7746b7e26f308" name="enqueue_unmap_mem_object"><type><classname>event</classname></type><parameter name="mem"><paramtype>cl_mem</paramtype></parameter><parameter name="mapped_ptr"><paramtype>void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to unmap <computeroutput>mem</computeroutput> from the host memory space.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1af856c183fe1ad003a40c3fe82ba9c7df" name="enqueue_read_image"><type><classname>event</classname></type><parameter name="image"><paramtype>const <classname>image_object</classname> &amp;</paramtype></parameter><parameter name="origin"><paramtype>const size_t *</paramtype></parameter><parameter name="region"><paramtype>const size_t *</paramtype></parameter><parameter name="row_pitch"><paramtype>size_t</paramtype></parameter><parameter name="slice_pitch"><paramtype>size_t</paramtype></parameter><parameter name="host_ptr"><paramtype>void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to read data from <computeroutput>image</computeroutput> to host memory.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a4f002f07d720b15fe4e499ef6b61da47" name="enqueue_read_image"><type><classname>event</classname></type><template>
          <template-nontype-parameter name="N"><type>size_t</type></template-nontype-parameter>
        </template><parameter name="image"><paramtype>const <classname>image_object</classname> &amp;</paramtype></parameter><parameter name="origin"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="region"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="host_ptr"><paramtype>void *</paramtype></parameter><parameter name="row_pitch"><paramtype>size_t</paramtype><default>0</default></parameter><parameter name="slice_pitch"><paramtype>size_t</paramtype><default>0</default></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</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></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1aa653b8bfdaed9a3fc98937b92200cfdd" name="enqueue_write_image"><type><classname>event</classname></type><parameter name="image"><paramtype><classname>image_object</classname> &amp;</paramtype></parameter><parameter name="origin"><paramtype>const size_t *</paramtype></parameter><parameter name="region"><paramtype>const size_t *</paramtype></parameter><parameter name="host_ptr"><paramtype>const void *</paramtype></parameter><parameter name="input_row_pitch"><paramtype>size_t</paramtype><default>0</default></parameter><parameter name="input_slice_pitch"><paramtype>size_t</paramtype><default>0</default></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to write data from host memory to <computeroutput>image</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ab42c1ea2218989c11ac3ba39eb586098" name="enqueue_write_image"><type><classname>event</classname></type><template>
          <template-nontype-parameter name="N"><type>size_t</type></template-nontype-parameter>
        </template><parameter name="image"><paramtype><classname>image_object</classname> &amp;</paramtype></parameter><parameter name="origin"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="region"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="host_ptr"><paramtype>const void *</paramtype></parameter><parameter name="input_row_pitch"><paramtype>const size_t</paramtype><default>0</default></parameter><parameter name="input_slice_pitch"><paramtype>const size_t</paramtype><default>0</default></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</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></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a3af17ef3b21cce47aa7bf0a649caff07" name="enqueue_map_image"><type>void *</type><parameter name="image"><paramtype>const <classname>image_object</classname> &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_map_flags</paramtype></parameter><parameter name="origin"><paramtype>const size_t *</paramtype></parameter><parameter name="region"><paramtype>const size_t *</paramtype></parameter><parameter name="output_row_pitch"><paramtype>size_t &amp;</paramtype></parameter><parameter name="output_slice_pitch"><paramtype>size_t &amp;</paramtype></parameter><parameter name="map_image_event"><paramtype><classname>event</classname> &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 map <computeroutput>image</computeroutput> into the host address space.</para><para>Event associated with map operation is returned through <computeroutput>map_image_event</computeroutput> parameter.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a94cdb686ed47811199d913eb3d1d4622" name="enqueue_map_image"><type>void *</type><parameter name="image"><paramtype>const <classname>image_object</classname> &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_map_flags</paramtype></parameter><parameter name="origin"><paramtype>const size_t *</paramtype></parameter><parameter name="region"><paramtype>const size_t *</paramtype></parameter><parameter name="output_row_pitch"><paramtype>size_t &amp;</paramtype></parameter><parameter name="output_slice_pitch"><paramtype>size_t &amp;</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</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></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1af830bef5e0ba324b8d35b18063bd3f80" name="enqueue_map_image"><type>void *</type><template>
          <template-nontype-parameter name="N"><type>size_t</type></template-nontype-parameter>
        </template><parameter name="image"><paramtype><classname>image_object</classname> &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_map_flags</paramtype></parameter><parameter name="origin"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="region"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="output_row_pitch"><paramtype>size_t &amp;</paramtype></parameter><parameter name="output_slice_pitch"><paramtype>size_t &amp;</paramtype></parameter><parameter name="map_image_event"><paramtype><classname>event</classname> &amp;</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</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></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ad9df51b3c4d7879659ce7ec71107b17a" name="enqueue_map_image"><type>void *</type><template>
          <template-nontype-parameter name="N"><type>size_t</type></template-nontype-parameter>
        </template><parameter name="image"><paramtype><classname>image_object</classname> &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_map_flags</paramtype></parameter><parameter name="origin"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="region"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="output_row_pitch"><paramtype>size_t &amp;</paramtype></parameter><parameter name="output_slice_pitch"><paramtype>size_t &amp;</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</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></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1affded81e5c3a382e7b74bbce7c216994" name="enqueue_map_image_async"><type>void *</type><parameter name="image"><paramtype>const <classname>image_object</classname> &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_map_flags</paramtype></parameter><parameter name="origin"><paramtype>const size_t *</paramtype></parameter><parameter name="region"><paramtype>const size_t *</paramtype></parameter><parameter name="output_row_pitch"><paramtype>size_t &amp;</paramtype></parameter><parameter name="output_slice_pitch"><paramtype>size_t &amp;</paramtype></parameter><parameter name="map_image_event"><paramtype><classname>event</classname> &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 map <computeroutput>image</computeroutput> into the host address space. Map operation is performed asynchronously. The pointer to the mapped region cannot be used until the map operation has completed.</para><para>Event associated with map operation is returned through <computeroutput>map_image_event</computeroutput> parameter.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a04f00802683a6f1493951501dd1adb26" name="enqueue_map_image_async"><type>void *</type><template>
          <template-nontype-parameter name="N"><type>size_t</type></template-nontype-parameter>
        </template><parameter name="image"><paramtype><classname>image_object</classname> &amp;</paramtype></parameter><parameter name="flags"><paramtype>cl_map_flags</paramtype></parameter><parameter name="origin"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="region"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="output_row_pitch"><paramtype>size_t &amp;</paramtype></parameter><parameter name="output_slice_pitch"><paramtype>size_t &amp;</paramtype></parameter><parameter name="map_image_event"><paramtype><classname>event</classname> &amp;</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</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></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a09a3ac06be7d0e60c90a49aad275066a" name="enqueue_unmap_image"><type><classname>event</classname></type><parameter name="image"><paramtype>const <classname>image_object</classname> &amp;</paramtype></parameter><parameter name="mapped_ptr"><paramtype>void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to unmap <computeroutput>image</computeroutput> from the host memory space.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a457d4ca8e3db95e53599d7526531effd" name="enqueue_copy_image"><type><classname>event</classname></type><parameter name="src_image"><paramtype>const <classname>image_object</classname> &amp;</paramtype></parameter><parameter name="dst_image"><paramtype><classname>image_object</classname> &amp;</paramtype></parameter><parameter name="src_origin"><paramtype>const size_t *</paramtype></parameter><parameter name="dst_origin"><paramtype>const size_t *</paramtype></parameter><parameter name="region"><paramtype>const size_t *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to copy data from <computeroutput>src_image</computeroutput> to <computeroutput>dst_image</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a70cd711abf19da53cf474b8a48919647" name="enqueue_copy_image"><type><classname>event</classname></type><template>
          <template-nontype-parameter name="N"><type>size_t</type></template-nontype-parameter>
        </template><parameter name="src_image"><paramtype>const <classname>image_object</classname> &amp;</paramtype></parameter><parameter name="dst_image"><paramtype><classname>image_object</classname> &amp;</paramtype></parameter><parameter name="src_origin"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="dst_origin"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="region"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</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></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a3a49b4032558c51fd314b5112532661b" name="enqueue_copy_image_to_buffer"><type><classname>event</classname></type><parameter name="src_image"><paramtype>const <classname>image_object</classname> &amp;</paramtype></parameter><parameter name="dst_buffer"><paramtype><classname>memory_object</classname> &amp;</paramtype></parameter><parameter name="src_origin"><paramtype>const size_t *</paramtype></parameter><parameter name="region"><paramtype>const size_t *</paramtype></parameter><parameter name="dst_offset"><paramtype>size_t</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to copy data from <computeroutput>src_image</computeroutput> to <computeroutput>dst_buffer</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a2ba35a6a5d0011c2d6b00e961d3bc849" name="enqueue_copy_buffer_to_image"><type><classname>event</classname></type><parameter name="src_buffer"><paramtype>const <classname>memory_object</classname> &amp;</paramtype></parameter><parameter name="dst_image"><paramtype><classname>image_object</classname> &amp;</paramtype></parameter><parameter name="src_offset"><paramtype>size_t</paramtype></parameter><parameter name="dst_origin"><paramtype>const size_t *</paramtype></parameter><parameter name="region"><paramtype>const size_t *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to copy data from <computeroutput>src_buffer</computeroutput> to <computeroutput>dst_image</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a74ab1d75539976a7bce4a76f88279a2f" name="enqueue_fill_image"><type><classname>event</classname></type><parameter name="image"><paramtype><classname>image_object</classname> &amp;</paramtype></parameter><parameter name="fill_color"><paramtype>const void *</paramtype></parameter><parameter name="origin"><paramtype>const size_t *</paramtype></parameter><parameter name="region"><paramtype>const size_t *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to fill <computeroutput>image</computeroutput> with <computeroutput>fill_color</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a0f61d22eb9ba55dff85d60481b0eedbc" name="enqueue_fill_image"><type><classname>event</classname></type><template>
          <template-nontype-parameter name="N"><type>size_t</type></template-nontype-parameter>
        </template><parameter name="image"><paramtype><classname>image_object</classname> &amp;</paramtype></parameter><parameter name="fill_color"><paramtype>const void *</paramtype></parameter><parameter name="origin"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="region"><paramtype>const <classname>extents</classname>&lt; N &gt;</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</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></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a97213005961d78f37741384c7809ff9d" name="enqueue_migrate_memory_objects"><type><classname>event</classname></type><parameter name="num_mem_objects"><paramtype>uint_</paramtype></parameter><parameter name="mem_objects"><paramtype>const cl_mem *</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_migration_flags</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to migrate <computeroutput>mem_objects</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ae25de1cdf6763552b9c58a7080e46b53" name="enqueue_nd_range_kernel"><type><classname>event</classname></type><parameter name="kernel"><paramtype>const <classname>kernel</classname> &amp;</paramtype></parameter><parameter name="work_dim"><paramtype>size_t</paramtype></parameter><parameter name="global_work_offset"><paramtype>const size_t *</paramtype></parameter><parameter name="global_work_size"><paramtype>const size_t *</paramtype></parameter><parameter name="local_work_size"><paramtype>const size_t *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a kernel for execution.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a9f1b543aa5a8763a6b2d47be60f40a5f" name="enqueue_nd_range_kernel"><type><classname>event</classname></type><template>
          <template-nontype-parameter name="N"><type>size_t</type></template-nontype-parameter>
        </template><parameter name="kernel"><paramtype>const <classname>kernel</classname> &amp;</paramtype></parameter><parameter name="global_work_offset"><paramtype>const <classname>extents</classname>&lt; N &gt; &amp;</paramtype></parameter><parameter name="global_work_size"><paramtype>const <classname>extents</classname>&lt; N &gt; &amp;</paramtype></parameter><parameter name="local_work_size"><paramtype>const <classname>extents</classname>&lt; N &gt; &amp;</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</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></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a42eb8702988e990edf0f7523013f6b81" name="enqueue_1d_range_kernel"><type><classname>event</classname></type><parameter name="kernel"><paramtype>const <classname>kernel</classname> &amp;</paramtype></parameter><parameter name="global_work_offset"><paramtype>size_t</paramtype></parameter><parameter name="global_work_size"><paramtype>size_t</paramtype></parameter><parameter name="local_work_size"><paramtype>size_t</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Convenience method which calls <link linkend="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ae25de1cdf6763552b9c58a7080e46b53">enqueue_nd_range_kernel()</link> with a one-dimensional range. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ad0d8725e13b4de9f390d6bb2a53b8511" name="enqueue_task"><type><classname>event</classname></type><parameter name="kernel"><paramtype>const <classname>kernel</classname> &amp;</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a kernel to execute using a single work-item.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a57c89d927f1bad949c806e3c986627e8" name="enqueue_native_kernel"><type><classname>event</classname></type><parameter name=""><paramtype>void(BOOST_COMPUTE_CL_CALLBACK *user_func)(void *)</paramtype></parameter><parameter name="args"><paramtype>void *</paramtype></parameter><parameter name="cb_args"><paramtype>size_t</paramtype></parameter><parameter name="num_mem_objects"><paramtype>uint_</paramtype></parameter><parameter name="mem_list"><paramtype>const cl_mem *</paramtype></parameter><parameter name="args_mem_loc"><paramtype>const void **</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><purpose>Enqueues a function to execute on the host. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1aaab0bb48a706c77f38eedc37d288245f" name="enqueue_native_kernel"><type><classname>event</classname></type><parameter name=""><paramtype>void(BOOST_COMPUTE_CL_CALLBACK *user_func)(void)</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Convenience overload for <link linkend="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a57c89d927f1bad949c806e3c986627e8">enqueue_native_kernel()</link> which enqueues a native kernel on the host with a nullary function. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ac60e916a0b94742bd4bb9704cbb3fce8" name="flush"><type>void</type><description><para>Flushes the command queue.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a562fa4aeee34d148a036456ffbf9ac49" name="finish"><type>void</type><description><para>Blocks until all outstanding commands in the queue have finished.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1af31ccf13c1617ecfea1e4794a5cc40dc" name="enqueue_barrier"><type>void</type><purpose>Enqueues a barrier in the queue. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a713bb89445189c44c20264913f5474c2" name="enqueue_barrier"><type><classname>event</classname></type><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype></parameter><description><para>Enqueues a barrier in the queue after <computeroutput>events</computeroutput>.</para><para><warning><para>This method is only available if the OpenCL version is 1.2 or later. </para>
</warning>
</para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a6df474b8bc7d519ef698bbad59b17b67" name="enqueue_marker"><type><classname>event</classname></type><description><para>Enqueues a marker in the queue and returns an event that can be used to track its progress. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a09a556e19516384880ebef4fbd8bd8ff" name="enqueue_marker"><type><classname>event</classname></type><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype></parameter><description><para>Enqueues a marker after <computeroutput>events</computeroutput> in the queue and returns an event that can be used to track its progress.</para><para><warning><para>This method is only available if the OpenCL version is 1.2 or later. </para>
</warning>
</para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a172636bb282989a6b8833451ffe5aeb2" name="enqueue_svm_memcpy"><type><classname>event</classname></type><parameter name="dst_ptr"><paramtype>void *</paramtype></parameter><parameter name="src_ptr"><paramtype>const void *</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to copy <computeroutput>size</computeroutput> bytes of data from <computeroutput>src_ptr</computeroutput> to <computeroutput>dst_ptr</computeroutput>.</para><para><warning><para>This method is only available if the OpenCL version is 2.0 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a913778142731c817a3697952dc4521b5" name="enqueue_svm_memcpy_async"><type><classname>event</classname></type><parameter name="dst_ptr"><paramtype>void *</paramtype></parameter><parameter name="src_ptr"><paramtype>const void *</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to copy <computeroutput>size</computeroutput> bytes of data from <computeroutput>src_ptr</computeroutput> to <computeroutput>dst_ptr</computeroutput>. The operation is performed asynchronously.</para><para><warning><para>This method is only available if the OpenCL version is 2.0 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a5f5abab3ffc21119bd117513fc8d9d6c" name="enqueue_svm_fill"><type><classname>event</classname></type><parameter name="svm_ptr"><paramtype>void *</paramtype></parameter><parameter name="pattern"><paramtype>const void *</paramtype></parameter><parameter name="pattern_size"><paramtype>size_t</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to fill <computeroutput>size</computeroutput> bytes of data at <computeroutput>svm_ptr</computeroutput> with <computeroutput>pattern</computeroutput>.</para><para><warning><para>This method is only available if the OpenCL version is 2.0 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1ac7328b1fc09e982ad5b8114a02fef21f" name="enqueue_svm_free"><type><classname>event</classname></type><parameter name="svm_ptr"><paramtype>void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to free <computeroutput>svm_ptr</computeroutput>.</para><para><warning><para>This method is only available if the OpenCL version is 2.0 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1aa170ab74a27672aa2dd8b58a591c637a" name="enqueue_svm_map"><type><classname>event</classname></type><parameter name="svm_ptr"><paramtype>void *</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="flags"><paramtype>cl_map_flags</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to map <computeroutput>svm_ptr</computeroutput> to the host memory space.</para><para><warning><para>This method is only available if the OpenCL version is 2.0 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a8378add9c9b88c878764d5decbded84c" name="enqueue_svm_unmap"><type><classname>event</classname></type><parameter name="svm_ptr"><paramtype>void *</paramtype></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to unmap <computeroutput>svm_ptr</computeroutput> from the host memory space.</para><para><warning><para>This method is only available if the OpenCL version is 2.0 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a77dc2a288cec0211084bb54058eb5fdd" name="enqueue_svm_migrate_memory"><type><classname>event</classname></type><parameter name="svm_ptrs"><paramtype>const std::vector&lt; const void * &gt; &amp;</paramtype></parameter><parameter name="sizes"><paramtype>const std::vector&lt; size_t &gt; &amp;</paramtype></parameter><parameter name="flags"><paramtype>const cl_mem_migration_flags</paramtype><default>0</default></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to indicate which device a set of ranges of SVM allocations should be associated with. The pair <computeroutput>svm_ptrs</computeroutput>[i] and <computeroutput>sizes</computeroutput>[i] together define the starting address and number of bytes in a range to be migrated.</para><para>If <computeroutput>sizes</computeroutput> is empty, then that means every allocation containing any <computeroutput>svm_ptrs</computeroutput>[i] is to be migrated. Also, if <computeroutput>sizes</computeroutput>[i] is zero, then the entire allocation containing <computeroutput>svm_ptrs</computeroutput>[i] is migrated.</para><para><warning><para>This method is only available if the OpenCL version is 2.1 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1afefabde725fc68f7f5b5a45095b5cb2e" name="enqueue_svm_migrate_memory"><type><classname>event</classname></type><parameter name="svm_ptr"><paramtype>const void *</paramtype></parameter><parameter name="size"><paramtype>const size_t</paramtype><default>0</default></parameter><parameter name="flags"><paramtype>const cl_mem_migration_flags</paramtype><default>0</default></parameter><parameter name="events"><paramtype>const <classname>wait_list</classname> &amp;</paramtype><default>wait_list()</default></parameter><description><para>Enqueues a command to indicate which device a range of SVM allocation should be associated with. The pair <computeroutput>svm_ptr</computeroutput> and <computeroutput>size</computeroutput> together define the starting address and number of bytes in a range to be migrated.</para><para>If <computeroutput>size</computeroutput> is 0, then the entire allocation containing <computeroutput>svm_ptr</computeroutput> is migrated. The default value for <computeroutput>size</computeroutput> is 0.</para><para><warning><para>This method is only available if the OpenCL version is 2.1 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a564d3d7243f628a6d638592f35b0a3be" name="operator==" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>command_queue</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the command queue is the same at <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a213019f987066466f7caaa92040ecc58" name="operator!=" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>command_queue</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the command queue is different from <computeroutput>other</computeroutput>. </purpose></method>
</method-group>
</class>








































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.config_8hpp" name="boost/compute/config.hpp">
<macro id="doxygen.header_reference.config_8hpp_1a92655e57917c9ef3f0adc8c991b6b2df" name="BOOST_COMPUTE_CL_CALLBACK"/>
<macro id="doxygen.header_reference.config_8hpp_1ac91412cd29a914a723bfde8d18b3eed6" name="BOOST_COMPUTE_MAX_ARITY"/>
</header>
<header id="doxygen.header_reference.container_8hpp" name="boost/compute/container.hpp">
<para>Meta-header to include all Boost.Compute container headers. </para></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=""><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_1a8155aa3971be6ee9e67ddcb531835db8" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1a3837c2b83fd5c23325ff4fe78bcafb87" name="size_type"><type>std::size_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1af677420ce52c537c5b5aefe64b013fe4" name="difference_type"><type>ptrdiff_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1a4dfeb33c1440a73f9b5a11137b3461b7" name="reference"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1adbf2ae415e97dad25df4226a14592752" name="const_reference"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1aedabb41eeffa7e4aadaa098fb55e602c" name="pointer"><type>T *</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1ac14954906949c4c5589c3616306e5c35" name="const_pointer"><type>const T *</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1a1337daac72a1eb435af1a22fbd96c103" name="iterator"><type><classname>buffer_iterator</classname>&lt; T &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1ae785723fd2f7007b4d406eea700a2f0c" name="const_iterator"><type><classname>buffer_iterator</classname>&lt; T &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1ac45a3540b93f842524335268f64e551b" name="reverse_iterator"><type>std::reverse_iterator&lt; <classname>iterator</classname> &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1array_1a9b3e49ac647e90359a9c6b16a93ef060" 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 <classname>context</classname> &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 <classname>context</classname> &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 <classname>command_queue</classname> &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 <classname>command_queue</classname> &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 <classname>command_queue</classname> &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 <classname>buffer</classname> &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><classname>command_queue</classname></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_1a5130bd0996663b3e2acc3191aeb077f4" name="traits_type"><type>Traits</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1a1b44a03c10f7ca026f7f5f253c10662f" name="value_type"><type>Traits::char_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1ae117317baa876c24341bfa40a018ce41" name="size_type"><type>size_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1basic__string_1ae13235d9cc94f0c3a0a5dd384ac4985b" 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_1ad965663212367e5f60e94c0a76d61804" 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_1ac7df4c7721c05ded1d63a61e9f6e2ad9" 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_1aa075da5cbb705f93a1fb11ea6647461b" 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_1a52c4d812cdcba112d3b9eaf72ae338d8" 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_1a85c25ab238c8ce1e039fe4a5d7ca27e2" 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_1af44c467422615d79eb5ad7c642529f0f" name="block_type"><type>Block</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a89568b9689e17c698be944f23825dcde" name="allocator_type"><type>Alloc</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a900bbd4c191f2572ea4aca0ed91fd5a3" name="container_type"><type><classname>vector</classname>&lt; Block, Alloc &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1dynamic__bitset_1a39539a6f8a0b826442ef38955a95a12a" 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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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_1ab6974be61a7610dd60e74738b7e3351a" name="key_type"><type>Key</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a53a234e23744bb8c62368970e841590d" name="mapped_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1aac2209f5438d7f44f7690e7481665717" 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_1acb383872cd5cef4f0eaaa04cd2c53770" name="value_type"><type>vector_type::value_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a553a26eae5aa05fe42cf4e05f8390c8d" name="size_type"><type>vector_type::size_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a7074def5b24339a4a509339434fbe66e" name="difference_type"><type>vector_type::difference_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a27347b23b87aecefbf77ae897dfc54e7" name="reference"><type>vector_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1aed6679384b6f2edc5c3460d2ac165028" name="const_reference"><type>vector_type::const_reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a0a000aec14a937a98003681c965ed7f6" name="pointer"><type>vector_type::pointer</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a564524fe2e3cad32f836d1417e3f164c" name="const_pointer"><type>vector_type::const_pointer</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1add35208a28fe45452bbcbcf8a88188e8" name="iterator"><type><classname>vector_type::iterator</classname></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1abceab0770f46ee85ce40bddd15668dd9" name="const_iterator"><type><classname>vector_type::const_iterator</classname></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a6c94281eac9c581cf7016493f3e78b9f" name="reverse_iterator"><type>vector_type::reverse_iterator</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__map_1a78f795590af7820ba76332a5c1675e8a" 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 <classname>context</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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_1a044dd294699c649f0eb810e8869da271" name="key_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1aad72f8145812675739b4bd3fad7f2bcf" 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_1a6c557ded9c6d8515a556501b64fadf40" 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_1a6f0ccd7d738eb01ee2791e85d62593a6" 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_1a3597285455f0053c270ef6d16a326587" name="reference"><type><classname>vector</classname>&lt; T &gt;::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a67dd955e64f086e915ca377385623231" 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_1a38affb4c4e1a35558259fe59d4e4fb7b" name="pointer"><type><classname>vector</classname>&lt; T &gt;::pointer</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a1e7314e2a74a74dae583ce85ac830d06" 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_1ab4cb2cacd1258ccd3f12b3cf2239f808" name="iterator"><type><classname>vector</classname>&lt; T &gt;::iterator</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1flat__set_1a9c5cf55cf1dc655b697d8b5883adbe01" 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_1ae598552e74aef0f8afaded3253f345a5" 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_1a83854f2fafa9342ce0d7f638bdb114fd" 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 <classname>context</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer">buffer</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1adb2e4a5dcd6ec27beab02749353ee243" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a8fa651de3cd4e6fd0a014cb1fe3e2670" name="size_type"><type>size_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1aa8e3da53ca9c0bf238a05ca2444f44a6" name="difference_type"><type>ptrdiff_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1af3ce333e299d3ca654ece5905d594732" name="iterator"><type><classname>buffer_iterator</classname>&lt; T &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1mapped__view_1a7a9456b76e18edbaef10e8ec1daf021a" 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 <classname>context</classname> &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 <classname>context</classname> &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 <classname>buffer</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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_1aa3992b7731844adef6ebe3de172f9f75" name="container_type"><type><classname>vector</classname>&lt; T &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1stack_1a14ea8ed55f686f4aee5dfa7ff5886bf1" name="size_type"><type>container_type::size_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1stack_1a5850c542f8bb10fea6c42f1c5d06eb38" 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 <classname>context</classname> &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 <classname>context</classname> &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 <classname>context</classname> &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 <classname>context</classname> &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 <classname>context</classname> &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_1a296a339abf8b50c6fd7c31b76c2df343" name="min" cv="const"><type>T</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1valarray_1a9433866cedc9fa6ac4cb6a64bf5e563e" 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 <classname>buffer</classname> &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>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer">buffer</link> </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a2c34ca8a08e03f2a316459d695777356" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1abec312120f4ae9477de3100915621bf8" name="allocator_type"><type>Alloc</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a5cf578688a9b09b3e8c0f2d336ea688f" name="size_type"><type>allocator_type::size_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a1981a15946de337581968e6dc1708527" name="difference_type"><type>allocator_type::difference_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ab786df24ebcf3a0494f3a3e2ce045724" name="reference"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a8f0b5e7e058612567d6043e5172aa0e6" name="const_reference"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a7e5ebdbb165c0b9eb51a202bbc421752" name="pointer"><type>allocator_type::pointer</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a10ec9ef2eb335994b87a884554e08150" name="const_pointer"><type>allocator_type::const_pointer</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1aef2e48662bd9ed4a866300bbf91d6eb0" name="iterator"><type><classname>buffer_iterator</classname>&lt; T &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ad9948dcdaee21c2a90101c786e7ebf4c" name="const_iterator"><type><classname>buffer_iterator</classname>&lt; T &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1ae9095a74b60158333a359764ccb3b06b" name="reverse_iterator"><type>std::reverse_iterator&lt; <classname>iterator</classname> &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1vector_1a8c98b012e9f498341e9de59908917781" 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 <classname>context</classname> &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 <classname>context</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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 <classname>buffer</classname> &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_8hpp" name="boost/compute/context.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1context" name="context"><purpose>A compute context. </purpose><description><para>The context class represents a compute context.</para><para>A context object manages a set of OpenCL resources including memory buffers and program objects. Before allocating memory on the device or executing kernels you must set up a context object.</para><para>To create a context for the default device on the system: <programlisting language="c++">// get the default compute device
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1device">boost::compute::device</link> gpu = <link linkend="doxygen.header_reference.classboost_1_1compute_1_1system_1a7e1531ff30d091e9127eaa6d96cbb3b7">boost::compute::system::default_device</link>();

// create a context for the device
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1context">boost::compute::context</link> <link linkend="doxygen.header_reference.classboost_1_1compute_1_1context_1a5f2e11587133c31974e695e7d33c4c00">context</link>(gpu);
</programlisting></para><para>Once a context is created, memory can be allocated using the buffer class and kernels can be executed using the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1command__queue">command_queue</link> class.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1device">device</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1command__queue">command_queue</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1context_1a5f2e11587133c31974e695e7d33c4c00"><purpose>Create a null context object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1context_1a12fa1d3f515e9430b9f2291614422959" specifiers="explicit"><parameter name="device"><paramtype>const <classname>device</classname> &amp;</paramtype></parameter><parameter name="properties"><paramtype>const cl_context_properties *</paramtype><default>0</default></parameter><description><para>Creates a new context for <computeroutput>device</computeroutput> with <computeroutput>properties</computeroutput>.</para><para>See the documentation for </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1context_1a69cb0f8a6d47d644dee18f982c39f6cc" specifiers="explicit"><parameter name="devices"><paramtype>const std::vector&lt; <classname>device</classname> &gt; &amp;</paramtype></parameter><parameter name="properties"><paramtype>const cl_context_properties *</paramtype><default>0</default></parameter><description><para>Creates a new context for <computeroutput>devices</computeroutput> with <computeroutput>properties</computeroutput>.</para><para>See the documentation for </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1context_1a3efec5a0b475ee3c2c068c0f5221cf3b" specifiers="explicit"><parameter name="context"><paramtype>cl_context</paramtype></parameter><parameter name="retain"><paramtype>bool</paramtype><default>true</default></parameter><description><para>Creates a new context object for <computeroutput>context</computeroutput>. If <computeroutput>retain</computeroutput> is <computeroutput>true</computeroutput>, the reference count for <computeroutput>context</computeroutput> will be incremented. </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1context_1ad483eae2d4d154e9cde0266154c227b2"><parameter name="other"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><purpose>Creates a new context object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1context_1a591276b4904366c04f9cebf234e887a0"><type><classname>context</classname> &amp;</type><parameter name="other"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><purpose>Copies the context object from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1context_1a9e5a7ad849fae44839822fc5c37fc7ed" cv="noexcept"><parameter name="other"><paramtype><classname>context</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new context object from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1context_1a6befee3ddd3d6b5aa85b667b68e037a9" cv="noexcept"><type><classname>context</classname> &amp;</type><parameter name="other"><paramtype><classname>context</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the context from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1context_1acb626a4dc9da2f9b53a8485b4cba4ff6"><purpose>Destroys the context object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1context_1a89f7f0223c68917fef1f628f3578138a" name="get" cv="const"><type>cl_context &amp;</type><purpose>Returns the underlying OpenCL context. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1context_1a6b2715e4aaee544f9581441d24a433e5" name="get_device" cv="const"><type><classname>device</classname></type><description><para>Returns the device for the context. If the context contains multiple devices, the first is returned. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1context_1a67e12da0d9c5266410daa13a725d3455" name="get_devices" cv="const"><type>std::vector&lt; <classname>device</classname> &gt;</type><purpose>Returns a vector of devices for the context. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1context_1a832d7bdcbad35a3be691836826b7e248" name="get_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_context_info</paramtype></parameter><description><para>Returns information about the context.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1context_1ae1d7154c6c4d74c364904091c1e60aab" 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_1context_1a0daa5d592019e57d63ebf74af0020b8a" name="operator==" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the context is the same as <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1context_1a25a59589d2a3e87dbbbbcc79a81bfb65" name="operator!=" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the context is different from <computeroutput>other</computeroutput>. </purpose></method>
</method-group>
</class>








































































































































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





















































































































<function id="doxygen.header_reference.interop_2opengl_2context_8hpp_1ac21e2deb8b3dbac5ab375e6beb279666" name="opengl_create_shared_context"><type><classname>context</classname></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.core_8hpp" name="boost/compute/core.hpp">
<para>Meta-header to include all Boost.Compute core headers. </para></header>
<header id="doxygen.header_reference.device_8hpp" name="boost/compute/device.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1device" name="device"><purpose>A compute device. </purpose><description><para>Typical compute devices include GPUs and multi-core CPUs. A list of all compute devices available on a platform can be obtained via the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1platform_1aeaeb2bea6b659fc507f1b087734c1553">platform::devices()</link> method.</para><para>The default compute device for the system can be obtained with the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1system_1a7e1531ff30d091e9127eaa6d96cbb3b7">system::default_device()</link> method. For example:</para><para><programlisting language="c++"/></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1platform">platform</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1context">context</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1command__queue">command_queue</link> </para>
</formalpara>
</para></description><enum id="doxygen.header_reference.classboost_1_1compute_1_1device_1ac1c5e08348d4d2259aa1f48b2a1e9019" name="type"><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1device_1ac1c5e08348d4d2259aa1f48b2a1e9019a9130b5fee16723c0f5084d690cdb84b0" name="cpu"><default>CL_DEVICE_TYPE_CPU</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1device_1ac1c5e08348d4d2259aa1f48b2a1e9019ae96afc80254e8b9516d816189fc84ade" name="gpu"><default>CL_DEVICE_TYPE_GPU</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1device_1ac1c5e08348d4d2259aa1f48b2a1e9019a5f6753545911cf92b4b03c6e5b7b856a" name="accelerator"><default>CL_DEVICE_TYPE_ACCELERATOR</default></enumvalue></enum>
<method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1device_1a34572cfd879d0c81f7673501b889ed2e"><purpose>Creates a null device object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1device_1a173821ef7c558ed6ca08c3d033d9cf65" specifiers="explicit"><parameter name="id"><paramtype>cl_device_id</paramtype></parameter><parameter name="retain"><paramtype>bool</paramtype><default>true</default></parameter><description><para>Creates a new device object for <computeroutput>id</computeroutput>. If <computeroutput>retain</computeroutput> is <computeroutput>true</computeroutput>, the reference count for the device will be incremented. </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1device_1adf843eea9f2ac4fe3517c1af5570c6dc"><parameter name="other"><paramtype>const <classname>device</classname> &amp;</paramtype></parameter><purpose>Creates a new device object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1device_1a94bc47b220d00a37fecaeb0a1cd2fbd7"><type><classname>device</classname> &amp;</type><parameter name="other"><paramtype>const <classname>device</classname> &amp;</paramtype></parameter><purpose>Copies the device from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1device_1abe175aceac41bd108da00bfc6628e70c" cv="noexcept"><parameter name="other"><paramtype><classname>device</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new device object from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1device_1a01a5bf59bbbd4dc35adc8810785e81c6" cv="noexcept"><type><classname>device</classname> &amp;</type><parameter name="other"><paramtype><classname>device</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the device from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1device_1aac6d39c2cf4ff5b85fcd90eddd753b17"><purpose>Destroys the device object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1abb609ffb4f81817bf6d31c0d6246b16e" name="id" cv="const"><type>cl_device_id</type><purpose>Returns the ID of the device. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a50cb4b3368aa9eb6dc214c28edd9e593" name="get" cv="const"><type>cl_device_id &amp;</type><purpose>Returns a reference to the underlying OpenCL device id. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1afe95b17062e1b75864e927a236256a93" name="type" cv="const"><type>cl_device_type</type><purpose>Returns the type of the device. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a72a48bece3d0b07fe3421b180776b6f4" name="platform" cv="const"><type><classname>platform</classname></type><purpose>Returns the platform for the device. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1ab7dd5769bc63986ea4bfe6ebd1b69295" name="name" cv="const"><type>std::string</type><purpose>Returns the name of the device. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a251acb1fb5d1ab410d38adbc8d560335" name="vendor" cv="const"><type>std::string</type><purpose>Returns the name of the vendor for the device. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1acb3b439b7de7c763f8b7939564b55108" name="profile" cv="const"><type>std::string</type><purpose>Returns the device profile string. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a70842354350dc78e4e4e4dc96fd7d9b4" name="version" cv="const"><type>std::string</type><purpose>Returns the device version string. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1ac9ee6fa830bef0db4afba568ae0f68f4" name="driver_version" cv="const"><type>std::string</type><purpose>Returns the driver version string. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1ad7348a98923548f4b46a7629716825f6" name="extensions" cv="const"><type>std::vector&lt; std::string &gt;</type><purpose>Returns a list of extensions supported by the device. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a3f1c59c950024588ff7910469426c064" name="supports_extension" cv="const"><type>bool</type><parameter name="name"><paramtype>const std::string &amp;</paramtype></parameter><description><para>Returns <computeroutput>true</computeroutput> if the device supports the extension with <computeroutput>name</computeroutput>. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1ac749b51d9985902130a84fcc51ae8ca0" name="address_bits" cv="const"><type>uint_</type><purpose>Returns the number of address bits. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1afe670637f21b2e7f767bd1800eafe3d6" name="global_memory_size" cv="const"><type>ulong_</type><purpose>Returns the global memory size in bytes. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1ab48e4b0d017d3c411876b6a3998bc0c3" name="local_memory_size" cv="const"><type>ulong_</type><purpose>Returns the local memory size in bytes. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a7701fabe331790ac4f607fd0fcb01195" name="clock_frequency" cv="const"><type>uint_</type><purpose>Returns the clock frequency for the device's compute units. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1aa6da5b3c3e77d74df28843697126fc9e" name="compute_units" cv="const"><type>uint_</type><purpose>Returns the number of compute units in the device. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a4cb27288c00759182bfcb5f453d16b86" name="preferred_vector_width" cv="const"><type>uint_</type><template>
          <template-type-parameter name="T"/>
        </template><purpose>Returns the preferred vector width for type <computeroutput>T</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1aa12b295f735dafc1ae6dc2800d27c99c" name="profiling_timer_resolution" cv="const"><type>size_t</type><purpose>Returns the profiling timer resolution in nanoseconds. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a17b0fee6d9495b005efa757fbf69dbd7" name="is_subdevice" cv="const"><type>bool</type><purpose>Returns <computeroutput>true</computeroutput> if the device is a sub-device. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1adf511861f68dc3b189c720e8efc0734e" name="get_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_device_info</paramtype></parameter><description><para>Returns information about the device.</para><para>For example, to get the number of compute units: <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1device_1a34572cfd879d0c81f7673501b889ed2e">device</link>.get_info&lt;cl_uint&gt;(CL_DEVICE_MAX_COMPUTE_UNITS);
</programlisting></para><para>Alternatively, the template-specialized version can be used which automatically determines the result type: <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1device_1a34572cfd879d0c81f7673501b889ed2e">device</link>.get_info&lt;CL_DEVICE_MAX_COMPUTE_UNITS&gt;();
</programlisting></para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1ab88bf591a18cbf5159695b4f3bbf79a8" 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_1device_1a095c9be3cfbc8082c4918574f1b4a1c5" name="partition" cv="const"><type>std::vector&lt; <classname>device</classname> &gt;</type><parameter name="properties"><paramtype>const cl_device_partition_property *</paramtype></parameter><description><para>Partitions the device into multiple sub-devices according to <computeroutput>properties</computeroutput>.</para><para><warning><para>This method is only available if the OpenCL version is 1.2 or later. </para>
</warning>
</para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a8e32970b0ace1d16b559d0f2e6a91a03" name="partition_equally" cv="const"><type>std::vector&lt; <classname>device</classname> &gt;</type><parameter name="count"><paramtype>size_t</paramtype></parameter><description><para><warning><para>This method is only available if the OpenCL version is 1.2 or later. </para>
</warning>
</para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a21dbbd6c63d555cfca068a71c0552614" name="partition_by_counts" cv="const"><type>std::vector&lt; <classname>device</classname> &gt;</type><parameter name="counts"><paramtype>const std::vector&lt; size_t &gt; &amp;</paramtype></parameter><description><para><warning><para>This method is only available if the OpenCL version is 1.2 or later. </para>
</warning>
</para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a5052ba2975a49bc0aa4dd19715dc6eb9" name="partition_by_affinity_domain" cv="const"><type>std::vector&lt; <classname>device</classname> &gt;</type><parameter name="domain"><paramtype>cl_device_affinity_domain</paramtype></parameter><description><para><warning><para>This method is only available if the OpenCL version is 1.2 or later. </para>
</warning>
</para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a588dd69953b0401b0f765ac7cd53ad0e" name="get_host_timer" cv="const"><type>ulong_</type><description><para>Returns the current value of the host clock as seen by device in nanoseconds.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a3a50a7dfd946dcec8e4e91fe9dba95b6" name="get_device_and_host_timer" cv="const"><type>std::pair&lt; ulong_, ulong_ &gt;</type><description><para>Returns a reasonably synchronized pair of timestamps from the device timer and the host timer as seen by device in nanoseconds. The first of returned std::pair is a device timer timestamp, the second is a host timer timestamp.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a2c0b782c3410aa2ec3b22af87bb67444" name="get_host_timer" cv="const"><type>Duration</type><template>
          <template-type-parameter name="Duration"/>
        </template><description><para>Returns the current value of the host clock as seen by device as duration.</para><para>For example, to print the current value of the host clock as seen by device in milliseconds: <programlisting language="c++">std::cout &lt;&lt; <link linkend="doxygen.header_reference.classboost_1_1compute_1_1device_1a34572cfd879d0c81f7673501b889ed2e">device</link>.get_host_timer&lt;std::chrono::milliseconds&gt;().count() &lt;&lt; " ms";
</programlisting></para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1a06c0c000a5263eeb2c11bba97c50787a" name="get_device_and_host_timer" cv="const"><type>std::pair&lt; Duration, Duration &gt;</type><template>
          <template-type-parameter name="Duration"/>
        </template><description><para>Returns a reasonably synchronized pair of timestamps from the device timer and the host timer as seen by device as a std::pair&lt;Duration, Duration&gt; value. The first of returned std::pair is a device timer timestamp, the second is a host timer timestamp.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1ad324ba446ca91959140d5b5b2e9753d4" name="operator==" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>device</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the device is the same at <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1ab1a49a01c0424b6a651e5e3dd8d87cc6" name="operator!=" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>device</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the device is different from <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1device_1aa32cc89bf130ae29b0a8737c2183df4c" name="check_version" cv="const"><type>bool</type><parameter name="major"><paramtype>int</paramtype></parameter><parameter name="minor"><paramtype>int</paramtype></parameter><description><para>Returns <computeroutput>true</computeroutput> if the device OpenCL version is major.minor or newer; otherwise returns <computeroutput>false</computeroutput>. </para></description></method>
</method-group>
</class>








































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.event_8hpp" name="boost/compute/event.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1event" name="event"><purpose>An event corresponding to an operation on a compute device. </purpose><description><para>Event objects are used to track operations running on the device (such as kernel executions and memory transfers). Event objects are returned by the various <computeroutput>enqueue_*</computeroutput> methods of the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1command__queue">command_queue</link> class.</para><para>Events can be used to synchronize operations between the host and the device. The <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1event_1a352bf90d88783f5545875485509c20d2">wait()</link></computeroutput> method will block execution on the host until the operation corresponding to the event on the device has completed. The status of the operation can also be polled with the <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1event_1a7c621cda55f7593e39e1a8f4ab3b3353">status()</link></computeroutput> method.</para><para>Event objects can also be used for performance profiling. In order to use events for profiling, the command queue must be constructed with the <computeroutput>CL_QUEUE_PROFILING_ENABLE</computeroutput> flag. Then the <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1event_1a44db66d6117cbe5a2d6eeec403bbdb52">duration()</link></computeroutput> method can be used to retrieve the total duration of the operation on the device: <programlisting language="c++">std::cout &lt;&lt; "time = " &lt;&lt; e.duration&lt;std::chrono::milliseconds&gt;().count() &lt;&lt; "ms\n";
</programlisting></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1future">future&lt;T&gt;</link>, <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_1event_1a367f50657b786c18504601a42318a2a5"><purpose>Creates a null event object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1event_1a7913121d05bed8fcd190e4f068db59f6" specifiers="explicit"><parameter name="event"><paramtype>cl_event</paramtype></parameter><parameter name="retain"><paramtype>bool</paramtype><default>true</default></parameter></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1event_1a146439e64c602057b7f8bd75db9c528b"><parameter name="other"><paramtype>const <classname>event</classname> &amp;</paramtype></parameter><purpose>Makes a new event as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1event_1a90e4937fce194432c2dbdc03f030d79b"><type><classname>event</classname> &amp;</type><parameter name="other"><paramtype>const <classname>event</classname> &amp;</paramtype></parameter><purpose>Copies the event object from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1event_1a1985e71c8a4d0db062724b8bd96e3d70" cv="noexcept"><parameter name="other"><paramtype><classname>event</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new event object from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1event_1a18849e8cf6fc29f197850d3284a150ee" cv="noexcept"><type><classname>event</classname> &amp;</type><parameter name="other"><paramtype><classname>event</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the event from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1event_1a1013086628dbe3d6fbcf89c8fc907348"><purpose>Destroys the event object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1event_1ab5e9004bd6cd09182fd3579375f8a404" name="get" cv="const"><type>cl_event &amp;</type><purpose>Returns a reference to the underlying OpenCL event object. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1event_1a7c621cda55f7593e39e1a8f4ab3b3353" name="status" cv="const"><type>cl_int</type><purpose>Returns the status of the event. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1event_1a4a5e0962726f8a30262326763aa3ebc8" name="get_command_type" cv="const"><type>cl_command_type</type><purpose>Returns the command type for the event. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1event_1afbe904bedc245d46b7066e07c20ee593" name="get_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_event_info</paramtype></parameter><description><para>Returns information about the event.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1event_1a5338450bbfc537dc5b7ecdfa0fae43d3" 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_1event_1aa527bfb85ea1170edea2333e8f69b5b3" name="get_profiling_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_profiling_info</paramtype></parameter><description><para>Returns profiling information for the event.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1event_1a44db66d6117cbe5a2d6eeec403bbdb52">event::duration()</link></para>
</formalpara>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1event_1a352bf90d88783f5545875485509c20d2" name="wait" cv="const"><type>void</type><description><para>Blocks until the actions corresponding to the event have completed. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1event_1a8e1255a0c0306476f80524b42e25b74a" name="set_callback"><type>void</type><parameter name=""><paramtype>void(BOOST_COMPUTE_CL_CALLBACK *callback)(cl_event <classname>event</classname>, cl_int status, void *user_data)</paramtype></parameter><parameter name="status"><paramtype>cl_int</paramtype><default>CL_COMPLETE</default></parameter><parameter name="user_data"><paramtype>void *</paramtype><default>0</default></parameter><description><para>Registers a function to be called when the event status changes to <computeroutput>status</computeroutput> (by default CL_COMPLETE). The callback is passed the OpenCL event object, the event status, and a pointer to arbitrary user data.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1event_1a02210ce1cf936308c5bcd3605b1c9fa2" name="set_callback"><type>void</type><template>
          <template-type-parameter name="Function"/>
        </template><parameter name="callback"><paramtype>Function</paramtype></parameter><parameter name="status"><paramtype>cl_int</paramtype><default>CL_COMPLETE</default></parameter><description><para>Registers a generic function to be called when the event status changes to <computeroutput>status</computeroutput> (by default <computeroutput>CL_COMPLETE</computeroutput>).</para><para>The function specified by <computeroutput>callback</computeroutput> must be invokable with zero arguments (e.g. <computeroutput>callback()</computeroutput>).</para><para><warning><para>This method is only available if the OpenCL version is 1.1 or later. </para>
</warning>
</para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1event_1a44db66d6117cbe5a2d6eeec403bbdb52" name="duration" cv="const"><type>Duration</type><template>
          <template-type-parameter name="Duration"/>
        </template><parameter name="start"><paramtype>cl_profiling_info</paramtype><default>CL_PROFILING_COMMAND_START</default></parameter><parameter name="end"><paramtype>cl_profiling_info</paramtype><default>CL_PROFILING_COMMAND_END</default></parameter><description><para>Returns the total duration of the event from <computeroutput>start</computeroutput> to <computeroutput>end</computeroutput>.</para><para>For example, to print the number of milliseconds the event took to execute: <programlisting language="c++">std::cout &lt;&lt; event.duration&lt;std::chrono::milliseconds&gt;().count() &lt;&lt; " ms" &lt;&lt; std::endl;
</programlisting></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1event_1aa527bfb85ea1170edea2333e8f69b5b3">event::get_profiling_info()</link> </para>
</formalpara>
</para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1event_1a5e27c763ad11f70897484b9752c8f504" name="operator==" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>event</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the event is the same as <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1event_1a6021b25ea885840e6324f828b9f1bc99" name="operator!=" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>event</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the event is different from <computeroutput>other</computeroutput>. </purpose></method>
</method-group>
</class>








































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.exception_8hpp" name="boost/compute/exception.hpp">
<para>Meta-header to include all Boost.Compute exception headers. </para></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 <classname>context</classname> *</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 <classname>context</classname> *</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.function_8hpp" name="boost/compute/function.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1function" name="function"><template>
      <template-type-parameter name="Signature"/>
    </template><purpose>A function object. </purpose><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1function_1a2bf7e23492b97c1825d24237efe0c96c"><parameter name="name"><paramtype>const std::string &amp;</paramtype></parameter><purpose>Creates a new function object with <computeroutput>name</computeroutput>. </purpose></constructor>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1function_1a63fc1d2a9625f95fe825d2899a9f7219"><purpose>Destroys the function object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1function_1af8cacd08600209ab4ba7977067b34a85" name="operator==" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>function</classname>&lt; Signature &gt; &amp;</paramtype></parameter></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1function_1abd4897f3dac0ff11f8b2e74b3e5b99fb" name="operator!=" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>function</classname>&lt; Signature &gt; &amp;</paramtype></parameter></method>
</method-group>
</class><function id="doxygen.header_reference.function_8hpp_1ab250c4a78ed70026560bfc2b633caeaf" name="make_function_from_source"><type><classname>function</classname>&lt; Signature &gt;</type><template>
          <template-type-parameter name="Signature"/>
        </template><parameter name="name"><paramtype>const std::string &amp;</paramtype><description><para>The function name. </para></description></parameter><parameter name="source"><paramtype>const std::string &amp;</paramtype><description><para>The function source code.</para></description></parameter><description><para>Creates a function object given its <computeroutput>name</computeroutput> and <computeroutput>source</computeroutput>.</para><para>
<formalpara><title>See Also:</title><para>BOOST_COMPUTE_FUNCTION() </para>
</formalpara>
</para></description></function>








































































































































</namespace>
</namespace>
<macro id="doxygen.header_reference.function_8hpp_1a84411b4b8143e40300194245742560f2" name="BOOST_COMPUTE_FUNCTION" kind="functionlike"><macro-parameter name="return_type"><description><para>The return type for the function. </para></description></macro-parameter><macro-parameter name="name"><description><para>The name of the function. </para></description></macro-parameter><macro-parameter name="arguments"><description><para>A list of arguments for the function. </para></description></macro-parameter><macro-parameter name="source"><description><para>The OpenCL C source code for the function.</para></description></macro-parameter><description><para>Creates a function object with <computeroutput>name</computeroutput> and <computeroutput>source</computeroutput>.</para><para>
The function declaration and signature are automatically created using the <computeroutput>return_type</computeroutput>, <computeroutput>name</computeroutput>, and <computeroutput>arguments</computeroutput> macro parameters.</para><para>The source code for the function is interpreted as OpenCL C99 source code which is stringified and passed to the OpenCL compiler when the function is invoked.</para><para>For example, to create a function which squares a number: <programlisting language="c++">BOOST_COMPUTE_FUNCTION(float, square, (float x),
{
    return x * x;
});
</programlisting></para><para>And to create a function which sums two numbers: <programlisting language="c++">BOOST_COMPUTE_FUNCTION(int, sum_two, (int x, int y),
{
    return x + y;
});
</programlisting></para><para><formalpara><title>See Also:</title><para>BOOST_COMPUTE_CLOSURE() </para>
</formalpara>
</para></description></macro>
</header>
<header id="doxygen.header_reference.functional_8hpp" name="boost/compute/functional.hpp">
<para>Meta-header to include all Boost.Compute functional headers. </para></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_1a106ca83d69fde10404f7ea514bb6ff9b" 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">boost::compute::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">boost::compute::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">boost::compute::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">boost::compute::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">boost::compute::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">boost::compute::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">boost::compute::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">boost::compute::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">boost::compute::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">boost::compute::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">boost::compute::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_1a1722578b74be474f609d770a3da10326" 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++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1field_1ad0d6ec22c85930c54542931762d5e0be">field&lt;float&gt;</link>("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++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1field_1ad0d6ec22c85930c54542931762d5e0be">field&lt;int2_&gt;</link>("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_1aea139c4e0acb5df02dcf21ad3d0d9767" 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(), <link linkend="doxygen.header_reference.classboost_1_1compute_1_1identity_1af4f662af3892759ae7a82381e9d64192">identity&lt;int&gt;</link>(), 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_1acdec66a03a462abd1a87ef7d5e32b4e6" 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">boost::compute::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.image_8hpp" name="boost/compute/image.hpp">
<para>Meta-header to include all Boost.Compute image headers. </para></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 <classname>context</classname> &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><classname>command_queue</classname> &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 <classname>context</classname> &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 <classname>context</classname> &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 <classname>context</classname> &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><classname>command_queue</classname> &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 <classname>context</classname> &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 <classname>context</classname> &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 <classname>context</classname> &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><classname>command_queue</classname> &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 <classname>context</classname> &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 <classname>context</classname> &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">boost::compute::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 <classname>context</classname> &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 <classname>context</classname> &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 <classname>context</classname> &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><classname>context</classname></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.opengl_8hpp" name="boost/compute/interop/opengl.hpp">
<para>Meta-header to include all Boost.Compute OpenGL interop headers. </para></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><classname>event</classname></type><parameter name="num_objects"><paramtype>const uint_</paramtype></parameter><parameter name="mem_objects"><paramtype>const cl_mem *</paramtype></parameter><parameter name="queue"><paramtype><classname>command_queue</classname> &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><classname>event</classname></type><parameter name="num_objects"><paramtype>const uint_</paramtype></parameter><parameter name="mem_objects"><paramtype>const cl_mem *</paramtype></parameter><parameter name="queue"><paramtype><classname>command_queue</classname> &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><classname>event</classname></type><parameter name="buffer"><paramtype>const <classname>opengl_buffer</classname> &amp;</paramtype></parameter><parameter name="queue"><paramtype><classname>command_queue</classname> &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><classname>event</classname></type><parameter name="buffer"><paramtype>const <classname>opengl_buffer</classname> &amp;</paramtype></parameter><parameter name="queue"><paramtype><classname>command_queue</classname> &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.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">boost::compute::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 <classname>context</classname> &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 <classname>context</classname> &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 <classname>context</classname> &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.iterator_8hpp" name="boost/compute/iterator.hpp">
<para>Meta-header to include all Boost.Compute iterator headers. </para></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><link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer">buffer</link>, make_buffer_iterator() </para>
</formalpara>
</para></description><typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1a865297b15b42e588bba75be69303bff9" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1a6f893ee136bc35727b289b3a1215f811" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1buffer__iterator_1ac2ebc9bbbb1c54bdcf17020804b8c71c" 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 <classname>buffer</classname> &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 <classname>buffer</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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 <classname>buffer</classname> &amp;</paramtype><description><para>the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer">buffer</link> 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_1a0ec79e16772a81ce62ecc94beb824949" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a522ffb0e050e4460ed0c708f824eb922" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1constant__buffer__iterator_1a43e0a92abd82a9a2d474944d259ddba9" 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 <classname>buffer</classname> &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 <classname>buffer</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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 <classname>buffer</classname> &amp;</paramtype><description><para>the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer">buffer</link> 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_1a048531c4f21f859587b4aebdcc9731a0" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator_1a3a418336bc993ae80ef72b8201e4bc2d" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1constant__iterator_1aaf26a557011e39d0e731e9b28f01207a" 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_1ae334deb308139e8f80e70192fae384a8" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1ac85f715e86292ebe5686382f8aae45f3" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1counting__iterator_1a9bea7ef264bf02b9d2a2c7e9000a4b12" 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_1acd28c6f08640b976ef09d42e69147cde" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1discard__iterator_1a52cb299925159ed7cfb5a1c1ff267708" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1discard__iterator_1a6bc3a5c3c759e32a2a580dbeef36d9a0" 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_1a6f6aebf51aed6641d0d71233c5db6881" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a2d3b96ddba8721bc5ec3560b5cf1b280" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a5da16cdb7c98b5bdd2168a85df74b8bd" name="difference_type"><type>super_type::difference_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1function__input__iterator_1a43946b1f15a5e162a8f5ed84f5c0d4d0" 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_1a16cc19a1a33e15247b35fe24ca4db602" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1af431b81c292370b3d9e20639c5d3e38e" name="value_type"><type>super_type::value_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a2858a4d18df93ed6f7e74d27fec180d4" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1aa8acad8855f0c7831ca94d18fc90c30d" name="base_type"><type>super_type::base_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a5755999c8827e29f7c4edef0fe25bfc1" name="difference_type"><type>super_type::difference_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1permutation__iterator_1a560914245290c01a9053c38728fe41bd" 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 <classname>buffer</classname> &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_1a7d593d630a965968c92c4c7b1c6821bb" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a96624c20eca81088a352a41f41f8d3d9" name="value_type"><type>super_type::value_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a0bda25b8706c2b608b5c477ab29f4d1d" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1a59d3c8c129e59aef1d6ff544f3587c81" name="base_type"><type>super_type::base_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1strided__iterator_1ad5ed056ef68dc199193a408b30e4123f" 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 <classname>buffer</classname> &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_1ac65cff5a3544b7d947e1ef76d40d9279" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1af2fc81472b9fa1fc2e58e0093f3a270f" name="value_type"><type>super_type::value_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1ae5c3d6f0625f0f0b0c1c6a4050aac65c" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1a7351dbb09b223168e262b85eeda41d54" name="base_type"><type>super_type::base_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1aa4944c9902934e381f05ea57082e404d" name="difference_type"><type>super_type::difference_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1transform__iterator_1a700d9f4e7d3c882ce8014a31550ef9fd" 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 <classname>buffer</classname> &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_1adcf299b0eb99d181ae2b47a7a81160e4" name="super_type"><type><emphasis>unspecified</emphasis></type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1a9404e3d03ac56e044d7675f8a99cc926" name="value_type"><type>super_type::value_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1a7ccd08a5e3bd566fb74ba396ec1cd5c2" name="reference"><type>super_type::reference</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1a0ec522916d7548a6c658377daaf1ded9" name="difference_type"><type>super_type::difference_type</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1zip__iterator_1a5bc2b54fbc83b74a967629e5663f949e" 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.kernel_8hpp" name="boost/compute/kernel.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1kernel" name="kernel"><purpose>A compute kernel. </purpose><description><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1command__queue">command_queue</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1program">program</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a8b6c59f6781344de4a375bafc1f2d971"><purpose>Creates a null kernel object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a3cca9d785f3bf8a11007ce326145337c" specifiers="explicit"><parameter name="kernel"><paramtype>cl_kernel</paramtype></parameter><parameter name="retain"><paramtype>bool</paramtype><default>true</default></parameter><description><para>Creates a new kernel object for <computeroutput>kernel</computeroutput>. If <computeroutput>retain</computeroutput> is <computeroutput>true</computeroutput>, the reference count for <computeroutput>kernel</computeroutput> will be incremented. </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a8713c0c127f8ece50544c82e9152ef57"><parameter name="program"><paramtype>const <classname>program</classname> &amp;</paramtype></parameter><parameter name="name"><paramtype>const std::string &amp;</paramtype></parameter><purpose>Creates a new kernel object with <computeroutput>name</computeroutput> from <computeroutput>program</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1abd3f5e65d6ae6e7aa239f982379aa23a"><parameter name="other"><paramtype>const <classname>kernel</classname> &amp;</paramtype></parameter><purpose>Creates a new kernel object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1ac9de865945f3dafd4d4ff0f52805f4bf"><type><classname>kernel</classname> &amp;</type><parameter name="other"><paramtype>const <classname>kernel</classname> &amp;</paramtype></parameter><purpose>Copies the kernel object from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a4563cbdea9cf7e1b47c72ba99bcb2190" cv="noexcept"><parameter name="other"><paramtype><classname>kernel</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new kernel object from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a64faa4fba380bdbcc6f4116b3ca977d9" cv="noexcept"><type><classname>kernel</classname> &amp;</type><parameter name="other"><paramtype><classname>kernel</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the kernel from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1afa7d58fe4b20203aeb89559d8c7742b8"><purpose>Destroys the kernel object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1afb0c6eaaf5c4e2c42d3966a86f429721" name="clone"><type><classname>kernel</classname></type><description><para>Creates a new kernel object based on a shallow copy of the undelying OpenCL kernel object.</para><para><warning><para>This method is only available if the OpenCL version is 2.1 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1acc36636b601861b1bed7f9620f99a587" name="get" cv="const"><type>cl_kernel &amp;</type><purpose>Returns a reference to the underlying OpenCL kernel object. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a9a06ca6e3815c47e100f6719472ec3fa" name="name" cv="const"><type>std::string</type><purpose>Returns the function name for the kernel. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a6f57189722bdb1da32ef1ef896c17702" name="arity" cv="const"><type>size_t</type><purpose>Returns the number of arguments for the kernel. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a8ff94268cd280679a159e4da4726a475" name="get_program" cv="const"><type><classname>program</classname></type><purpose>Returns the program for the kernel. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1ab05f261970696c52329fd701992f83b8" name="get_context" cv="const"><type><classname>context</classname></type><purpose>Returns the context for the kernel. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1ad7981f9ebd251a73a27fbeeb09e79ac5" name="get_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_kernel_info</paramtype></parameter><description><para>Returns information about the kernel.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a521072d428048ac241ffb4bd3a1feeb8" 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_1kernel_1a660f1b7424d2d9e047abbdc14be4fe75" name="get_arg_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="index"><paramtype>size_t</paramtype></parameter><parameter name="info"><paramtype>cl_kernel_arg_info</paramtype></parameter><description><para>Returns information about the argument at <computeroutput>index</computeroutput>.</para><para>For example, to get the name of the first argument: <programlisting language="c++">std::string arg = <link linkend="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a8b6c59f6781344de4a375bafc1f2d971">kernel</link>.get_arg_info&lt;std::string&gt;(0, CL_KERNEL_ARG_NAME);
</programlisting></para><para>Note, this function requires that the program be compiled with the <computeroutput>"-cl-kernel-arg-info"</computeroutput> flag. For example: <programlisting language="c++">program.build("-cl-kernel-arg-info");
</programlisting></para><para><warning><para>This method is only available if the OpenCL version is 1.2 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a70ed290ea6d993ca0aefec76dc3357e9" name="get_arg_info" cv="const"><type><emphasis>unspecified</emphasis></type><template>
          <template-nontype-parameter name="Enum"><type>int</type></template-nontype-parameter>
        </template><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_1kernel_1a47fca8ecdeaca09ff1ed7a973c9b43c8" name="get_work_group_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="device"><paramtype>const <classname>device</classname> &amp;</paramtype></parameter><parameter name="info"><paramtype>cl_kernel_work_group_info</paramtype></parameter><description><para>Returns work-group information for the kernel with <computeroutput>device</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a6c59710e631cbf5c8d54a95af14d421e" name="get_sub_group_info" cv="const"><type>boost::optional&lt; T &gt;</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="device"><paramtype>const <classname>device</classname> &amp;</paramtype></parameter><parameter name="info"><paramtype>cl_kernel_sub_group_info</paramtype></parameter><parameter name="input_size"><paramtype>const size_t</paramtype></parameter><parameter name="input"><paramtype>const void *</paramtype></parameter><description><para>Returns sub-group information for the kernel with <computeroutput>device</computeroutput>. Returns a null optional if <computeroutput>device</computeroutput> is not 2.1 device, or is not 2.0 device with support for cl_khr_subgroups extension.</para><para><warning><para>This method is only available if the OpenCL version is 2.1 or later. See the documentation for </para>
</warning>
</para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1ad784796451c84323a6b6d738ab53ec81" name="get_sub_group_info" cv="const"><type>boost::optional&lt; T &gt;</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="device"><paramtype>const <classname>device</classname> &amp;</paramtype></parameter><parameter name="info"><paramtype>cl_kernel_sub_group_info</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_1kernel_1a68702fbd27f0dc68687a4c4960e26b61" name="get_sub_group_info" cv="const"><type>boost::optional&lt; T &gt;</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="device"><paramtype>const <classname>device</classname> &amp;</paramtype></parameter><parameter name="info"><paramtype>cl_kernel_sub_group_info</paramtype></parameter><parameter name="input"><paramtype>const 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_1kernel_1aebba6af6f80671954d066d2cd6540e4b" name="get_sub_group_info" cv="const"><type>boost::optional&lt; T &gt;</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="device"><paramtype>const <classname>device</classname> &amp;</paramtype></parameter><parameter name="info"><paramtype>cl_kernel_sub_group_info</paramtype></parameter><parameter name="input"><paramtype>const std::vector&lt; size_t &gt;</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_1kernel_1a85aa168290952ad5943eef2cd564d655" name="set_arg"><type>void</type><parameter name="index"><paramtype>size_t</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="value"><paramtype>const void *</paramtype></parameter><description><para>Sets the argument at <computeroutput>index</computeroutput> to <computeroutput>value</computeroutput> with <computeroutput>size</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a100c26d8c0ec20ce2c07040e87a98ae9" name="set_arg"><type>void</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="index"><paramtype>size_t</paramtype></parameter><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><description><para>Sets the argument at <computeroutput>index</computeroutput> to <computeroutput>value</computeroutput>.</para><para>For built-in types (e.g. <computeroutput>float</computeroutput>, <computeroutput>int4_</computeroutput>), this is equivalent to calling set_arg(index, sizeof(type), &amp;value).</para><para>Additionally, this method is specialized for device memory objects such as buffer and <link linkend="doxygen.header_reference.classboost_1_1compute_1_1image2d">image2d</link>. This allows for them to be passed directly without having to extract their underlying cl_mem object.</para><para>This method is also specialized for device container types such as vector&lt;T&gt; and array&lt;T, N&gt;. This allows for them to be passed directly as kernel arguments without having to extract their underlying buffer.</para><para>For setting local memory arguments (e.g. "__local float *buf"), the local_buffer&lt;T&gt; class may be used: <programlisting language="c++">// set argument to a local buffer with storage for 32 float's
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a8b6c59f6781344de4a375bafc1f2d971">kernel</link>.set_arg(0, local_buffer&lt;float&gt;(32));
</programlisting></para><para>For setting NULL to global and constant memory arguments (C++11): <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a8b6c59f6781344de4a375bafc1f2d971">kernel</link>.set_arg(0, nullptr);
</programlisting> </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1abf365907d4a83f9b188649723f7df7ff" name="set_arg"><type>void</type><parameter name="index"><paramtype>size_t</paramtype></parameter><parameter name="nul"><paramtype>std::nullptr_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_1kernel_1abe6c99cb7e6107b72bf749d658333d87" name="set_args"><type>void</type><template>
          <template-nontype-parameter name="T"><type>class...</type></template-nontype-parameter>
        </template><parameter name="args"><paramtype>T &amp;&amp;...</paramtype></parameter><purpose>Sets the arguments for the kernel to <computeroutput>args</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a30a8c077cae0fb0ea37effe43c15a77e" name="set_exec_info"><type>void</type><parameter name="info"><paramtype>cl_kernel_exec_info</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="value"><paramtype>const void *</paramtype></parameter><description><para>Sets additional execution information for the kernel.</para><para><warning><para>This method is only available if the OpenCL version is 2.0 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a2a19599b8137fd25b5e04ec29024502c" name="operator==" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>kernel</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the kernel is the same at <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1kernel_1a7c7009b1bebd3580e62a8d0b23d1383e" name="operator!=" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>kernel</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the kernel is different from <computeroutput>other</computeroutput>. </purpose></method>
</method-group>
<method-group name="public static functions">
</method-group>
<method-group name="private member functions">
</method-group>
</class>








































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.memory_8hpp" name="boost/compute/memory.hpp">
<para>Meta-header to include all Boost.Compute memory headers. </para></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, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1local__buffer_1abfd551a184c9a229f80f432fff414cb6">local_buffer&lt;float&gt;</link>(32));
</programlisting></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer">buffer</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1kernel">kernel</link> </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_1a9c4068a6832123e9e228efb6ef86b4aa" name="value_type"><type>T</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1ab67087622262c2f680d40681388cfe55" name="difference_type"><type>std::ptrdiff_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1af3b0ca53903c40c5b9e071b102c40e69" name="pointer"><type>T *</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1accc7bab6f984771e91d5d6362707d937" name="reference"><type>T &amp;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1svm__ptr_1a0f9617a1d4cd9d97839f4e4366f671d0" 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 <classname>context</classname> &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 <classname>context</classname> &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.memory__object_8hpp" name="boost/compute/memory_object.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1memory__object" name="memory_object"><purpose>Base-class for memory objects. </purpose><description><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1memory__object">memory_object</link> class is the base-class for memory objects on compute devices.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1buffer">buffer</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1vector">vector</link> </para>
</formalpara>
</para></description><enum id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1aadbed46e5fd319c9905a97aa88a36da2" name="mem_flags"><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1aadbed46e5fd319c9905a97aa88a36da2a61b24c0f55f49b8eaa895a1ebc66a5a3" name="read_write"><default>CL_MEM_READ_WRITE</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1aadbed46e5fd319c9905a97aa88a36da2ac77e8c5cf1142f16eb67090d53cfd573" name="read_only"><default>CL_MEM_READ_ONLY</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1aadbed46e5fd319c9905a97aa88a36da2a69effe0eef9914543fe69785d98c1394" name="write_only"><default>CL_MEM_WRITE_ONLY</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1aadbed46e5fd319c9905a97aa88a36da2aa12e2684c7e5c042332a1a671459ca94" name="use_host_ptr"><default>CL_MEM_USE_HOST_PTR</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1aadbed46e5fd319c9905a97aa88a36da2a1fd63f5a063e0ead9dd6f0b8917e936b" name="alloc_host_ptr"><default>CL_MEM_ALLOC_HOST_PTR</default></enumvalue><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1aadbed46e5fd319c9905a97aa88a36da2ac3de9faed4f3a82c9f787d0cc3a46a90" name="copy_host_ptr"><default>CL_MEM_COPY_HOST_PTR</default></enumvalue><purpose>Flags for the creation of memory objects. </purpose></enum>
<enum id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a07b5a9cbbb991231d749b3e0de193b1d" name="address_space"><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a07b5a9cbbb991231d749b3e0de193b1dafeeb0200d0f3f1f6c2711d7898ca8d98" name="global_memory"/><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a07b5a9cbbb991231d749b3e0de193b1dac85f41146caecf967d3eda2f7941774e" name="local_memory"/><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a07b5a9cbbb991231d749b3e0de193b1dabca53dbe3fdf860ef2f8c31dd1f1f751" name="private_memory"/><enumvalue id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a07b5a9cbbb991231d749b3e0de193b1da537a5122edfc074642d0f75ee9fdce3c" name="constant_memory"/><purpose>Symbolic names for the OpenCL address spaces. </purpose></enum>
<method-group name="public member functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1ae06ba468411f9b8270ab00183d08b25f" name="get" cv="const"><type>cl_mem &amp;</type><purpose>Returns the underlying OpenCL memory object. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1abd68b6de97b96a86f0426a122d2d2887" name="get_memory_size" cv="const"><type>size_t</type><purpose>Returns the size of the memory object in bytes. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a990f9c4d98ca2cae07f0140642f431e4" name="get_memory_type" cv="const"><type>cl_mem_object_type</type><purpose>Returns the type for the memory object. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a382b3a7aba4e6c45f6a50971a5662117" name="get_memory_flags" cv="const"><type>cl_mem_flags</type><purpose>Returns the flags for the memory object. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a28ecd1d5bfe6d1f137c85497d4d14b1b" name="get_context" cv="const"><type><classname>context</classname></type><purpose>Returns the context for the memory object. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a124e7556e21b084acc251888d249efcc" name="get_host_ptr" cv="const"><type>void *</type><purpose>Returns the host pointer associated with the memory object. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a7095b834af0ae3e7eaa297c917605683" name="reference_count" cv="const"><type>uint_</type><purpose>Returns the reference count for the memory object. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a5027c85debb69f0ca1998389127445d1" name="get_memory_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 memory object.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a35b52b986c5d1c2d3b82369ff4b94e61" name="set_destructor_callback"><type>void</type><parameter name=""><paramtype>void(BOOST_COMPUTE_CL_CALLBACK *callback)(cl_mem memobj, void *user_data)</paramtype></parameter><parameter name="user_data"><paramtype>void *</paramtype><default>0</default></parameter><description><para>Registers a function to be called when the memory object is deleted and its resources freed.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a4812d1cd29e7c9b77e6fb030c99ff6b3" name="set_destructor_callback"><type>void</type><template>
          <template-type-parameter name="Function"/>
        </template><parameter name="callback"><paramtype>Function</paramtype></parameter><description><para>Registers a function to be called when the memory object is deleted and its resources freed.</para><para>The function specified by <computeroutput>callback</computeroutput> must be invokable with zero arguments (e.g. <computeroutput>callback()</computeroutput>).</para><para><warning><para>This method is only available if the OpenCL version is 1.1 or later. </para>
</warning>
</para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1a6772b7927ef0a3d95ad010866ccc7efb" name="operator==" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>memory_object</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the memory object is the same as <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1memory__object_1af6928fc21db78ff9381ca4013fe50772" name="operator!=" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>memory_object</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the memory object is different from <computeroutput>other</computeroutput>. </purpose></method>
</method-group>
<method-group name="protected member functions">
</method-group>
</class>








































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.pipe_8hpp" name="boost/compute/pipe.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1pipe" name="pipe"><inherit access="public">boost::compute::memory_object</inherit><purpose>A FIFO data pipe. </purpose><description><para><warning><para>This method is only available if the OpenCL version is 2.0 or later.</para>
</warning>
<formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1memory__object">memory_object</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1pipe_1a20bf90619deb9aaa6af247c9a3bc6ddd"><purpose>Creates a null pipe object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1pipe_1a66c41318e50c1971b8cacd80c7d98bd6" specifiers="explicit"><parameter name="mem"><paramtype>cl_mem</paramtype></parameter><parameter name="retain"><paramtype>bool</paramtype><default>true</default></parameter><description><para>Creates a pipe object for <computeroutput>mem</computeroutput>. If <computeroutput>retain</computeroutput> is <computeroutput>true</computeroutput>, the reference count for <computeroutput>mem</computeroutput> will be incremented. </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1pipe_1a12a38831e27a7069a5b712006ed08a5c"><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><parameter name="pipe_packet_size"><paramtype>uint_</paramtype></parameter><parameter name="pipe_max_packets"><paramtype>uint_</paramtype></parameter><parameter name="flags"><paramtype>cl_mem_flags</paramtype><default>read_write</default></parameter><parameter name="properties"><paramtype>const cl_pipe_properties *</paramtype><default>0</default></parameter><purpose>Creates a new pipe in <computeroutput>context</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1pipe_1a56244ef6b0cde335d96ba44581550722"><parameter name="other"><paramtype>const <classname>pipe</classname> &amp;</paramtype></parameter><purpose>Creates a new pipe object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1pipe_1a63f9813ddb96ca074239bf2623313cd6"><type><classname>pipe</classname> &amp;</type><parameter name="other"><paramtype>const <classname>pipe</classname> &amp;</paramtype></parameter><purpose>Copies the pipe object from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1pipe_1a8a0fa0b94154d7e28a6c1f448b993b64" cv="noexcept"><parameter name="other"><paramtype><classname>pipe</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new pipe object from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1pipe_1a38c9e305916ea135fa5ef5d1ea419bab" cv="noexcept"><type><classname>pipe</classname> &amp;</type><parameter name="other"><paramtype><classname>pipe</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the pipe from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1pipe_1a847454da1b7ce42e9f725cbbe6d73dd3"><purpose>Destroys the pipe object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1pipe_1a9432a9f6e67837f992d5863c4a58a134" name="packet_size" cv="const"><type>uint_</type><purpose>Returns the packet size. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1pipe_1acd065269b0e6f2861d4d4a68800f2717" name="max_packets" cv="const"><type>uint_</type><purpose>Returns the max number of packets. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1pipe_1abf9f9269802b5e88824a387c7df87f17" name="get_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_pipe_info</paramtype></parameter><description><para>Returns information about the pipe.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1pipe_1ace9863cf0a941b0e27bea9b6d00c47d9" 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-group>
</class>








































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.platform_8hpp" name="boost/compute/platform.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1platform" name="platform"><purpose>A compute platform. </purpose><description><para>The platform class provides an interface to an OpenCL platform.</para><para>To obtain a list of all platforms on the system use the <link linkend="doxygen.header_reference.classboost_1_1compute_1_1system_1ad57f8e101db7f85d6f0a8e79911734a2">system::platforms()</link> method.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1device">device</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1context">context</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a8cc76895693c9a751907ee37e817bc27" specifiers="explicit"><parameter name="id"><paramtype>cl_platform_id</paramtype></parameter><purpose>Creates a new platform object for <computeroutput>id</computeroutput>. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a86538657d4f9e1d240d3c18f7f9aa08d"><parameter name="other"><paramtype>const <classname>platform</classname> &amp;</paramtype></parameter><purpose>Creates a new platform as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a6c6c6eae40817b49cdc94ab5a8c0516b"><type><classname>platform</classname> &amp;</type><parameter name="other"><paramtype>const <classname>platform</classname> &amp;</paramtype></parameter><purpose>Copies the platform id from <computeroutput>other</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a4b9227b5dee795a2438b3660438bdc97"><purpose>Destroys the platform object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a61d4cbe1afe4d4e6e629568ce56a0dde" name="id" cv="const"><type>cl_platform_id</type><purpose>Returns the ID of the platform. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a5e357798383c127994a5418391314199" name="name" cv="const"><type>std::string</type><purpose>Returns the name of the platform. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a5c5e7d05bac51816fdc3bc2267340f08" name="vendor" cv="const"><type>std::string</type><purpose>Returns the name of the vendor for the platform. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a47025e6938629b8d9ec7799b2ae5117a" name="profile" cv="const"><type>std::string</type><purpose>Returns the profile string for the platform. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1ad431440e986e554e05414e8872e3349c" name="version" cv="const"><type>std::string</type><purpose>Returns the version string for the platform. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1ab69085218c67aa3d1abae13cd778e012" name="extensions" cv="const"><type>std::vector&lt; std::string &gt;</type><purpose>Returns a list of extensions supported by the platform. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1aaefae3de47f368bd33f0b6aaa9046315" name="supports_extension" cv="const"><type>bool</type><parameter name="name"><paramtype>const std::string &amp;</paramtype></parameter><description><para>Returns <computeroutput>true</computeroutput> if the platform supports the extension with <computeroutput>name</computeroutput>. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1aeaeb2bea6b659fc507f1b087734c1553" name="devices" cv="const"><type>std::vector&lt; <classname>device</classname> &gt;</type><parameter name="type"><paramtype>cl_device_type</paramtype><default>CL_DEVICE_TYPE_ALL</default></parameter><purpose>Returns a list of devices on the platform. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a04d476e94216e455b4fabe0cbb8bc253" name="device_count" cv="const"><type>size_t</type><parameter name="type"><paramtype>cl_device_type</paramtype><default>CL_DEVICE_TYPE_ALL</default></parameter><purpose>Returns the number of devices on the platform. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1ab323b9d4e994e1436d163c6a3a00922b" name="get_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_platform_info</paramtype></parameter><description><para>Returns information about the platform.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a8178d287d6f4953fecec771e64949421" 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_1platform_1abd2c6fb0043baff3cf7092e51540c81d" name="get_extension_function_address" cv="const"><type>void *</type><parameter name="function_name"><paramtype>const char *</paramtype></parameter><description><para>Returns the address of the <computeroutput>function_name</computeroutput> extension function. Returns <computeroutput>0</computeroutput> if <computeroutput>function_name</computeroutput> is invalid. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a2735397cc59125b1807e1dbad0949fa9" name="unload_compiler"><type>void</type><purpose>Requests that the platform unload any compiler resources. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a2981af350e7739182ee827803bf3763b" name="operator==" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>platform</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the platform is the same at <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a27996b682656d2c32c1f2842b7a613c7" name="operator!=" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>platform</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the platform is different from <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1platform_1a1d7aa04f7f3f9fbca5521fe4003e4930" name="check_version" cv="const"><type>bool</type><parameter name="major"><paramtype>int</paramtype></parameter><parameter name="minor"><paramtype>int</paramtype></parameter><description><para>Returns <computeroutput>true</computeroutput> if the platform OpenCL version is major.minor or newer; otherwise returns <computeroutput>false</computeroutput>. </para></description></method>
</method-group>
</class>








































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.program_8hpp" name="boost/compute/program.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1program" name="program"><purpose>A compute program. </purpose><description><para>The program class represents an OpenCL program.</para><para>Program objects are created with one of the static <computeroutput>create_with_*</computeroutput> functions. For example, to create a program from a source string:</para><para><programlisting language="c++"/></para><para>And to create a program from a source file: <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1program">boost::compute::program</link> bar_program =
    <link linkend="doxygen.header_reference.classboost_1_1compute_1_1program_1aab3b701a00d80281d70e1e79479b77b8">boost::compute::program::create_with_source_file</link>("/path/to/bar.cl", context);
</programlisting></para><para>Once a program object has been successfully created, it can be compiled using the <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1program_1a2b383f843f941cfdde53798beee992b0">build()</link></computeroutput> method: <programlisting language="c++">// build the program
foo_program.build();
</programlisting></para><para>Once the program is built, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1kernel">kernel</link> objects can be created using the <computeroutput><link linkend="doxygen.header_reference.classboost_1_1compute_1_1program_1af77053f8cdc3c3d820db73069eb37c62">create_kernel()</link></computeroutput> method by passing their name: <programlisting language="c++">// create a kernel from the compiled program
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1kernel">boost::compute::kernel</link> foo_kernel = foo_program.create_kernel("foo");
</programlisting></para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1kernel">kernel</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1program_1a4f64827fd723e730ad223fe86e30c309"><purpose>Creates a null program object. </purpose></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1program_1a96eaab395d0e8ff26f3391c622b9017a" specifiers="explicit"><parameter name="program"><paramtype>cl_program</paramtype></parameter><parameter name="retain"><paramtype>bool</paramtype><default>true</default></parameter><description><para>Creates a program object for <computeroutput>program</computeroutput>. If <computeroutput>retain</computeroutput> is <computeroutput>true</computeroutput>, the reference count for <computeroutput>program</computeroutput> will be incremented. </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1program_1ad7f2a5644c4972213a0c79b3ec5d590b"><parameter name="other"><paramtype>const <classname>program</classname> &amp;</paramtype></parameter><purpose>Creates a new program object as a copy of <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1program_1a5d8dd882a299e5f934068212cfcdf9c7"><type><classname>program</classname> &amp;</type><parameter name="other"><paramtype>const <classname>program</classname> &amp;</paramtype></parameter><purpose>Copies the program object from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1program_1ab584574359a297dedb877eec27a0b26b" cv="noexcept"><parameter name="other"><paramtype><classname>program</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new program object from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1program_1ad7adc37bc815f31608a4b114993629c8" cv="noexcept"><type><classname>program</classname> &amp;</type><parameter name="other"><paramtype><classname>program</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the program from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<destructor id="doxygen.header_reference.classboost_1_1compute_1_1program_1a54399c0074837a4872099fc21cfff33d"><purpose>Destroys the program object. </purpose></destructor>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a907546998353147a0d4eff5d292e44e8" name="get" cv="const"><type>cl_program &amp;</type><purpose>Returns the underlying OpenCL program. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a6f4ef511579df2cca89824b105f1fdb4" name="source" cv="const"><type>std::string</type><purpose>Returns the source code for the program. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a541e7734d59b72b54f7869d34ee87848" name="binary" cv="const"><type>std::vector&lt; unsigned char &gt;</type><purpose>Returns the binary for the program. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a838982129567954eef0be185b1648943" name="il_binary" cv="const"><type>std::vector&lt; unsigned char &gt;</type><purpose>Returns the SPIR-V binary for the program. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1ab41a6d7c4dfee453d315716fe8ecb1f5" name="get_devices" cv="const"><type>std::vector&lt; <classname>device</classname> &gt;</type></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a82bea407f47627129b69931e2f419bd1" name="get_context" cv="const"><type><classname>context</classname></type><purpose>Returns the context for the program. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a140d5a53c5be03b50d4de41dc3892a30" name="get_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_program_info</paramtype></parameter><description><para>Returns information about the program.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a6d5c84416552ffc5f8d9edab0e4cc86c" 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_1program_1a6307069d4df2770133e2ef9f2eb30352" name="get_build_info" cv="const"><type>T</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="info"><paramtype>cl_program_build_info</paramtype></parameter><parameter name="device"><paramtype>const <classname>device</classname> &amp;</paramtype></parameter><description><para>Returns build information about the program.</para><para>For example, this function can be used to retreive the options used to build the program: <programlisting language="c++">std::string build_options =
    <link linkend="doxygen.header_reference.classboost_1_1compute_1_1program_1a4f64827fd723e730ad223fe86e30c309">program</link>.get_build_info&lt;std::string&gt;(CL_PROGRAM_BUILD_OPTIONS);
</programlisting></para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a2b383f843f941cfdde53798beee992b0" name="build"><type>void</type><parameter name="options"><paramtype>const std::string &amp;</paramtype><default>std::string()</default></parameter><description><para>Builds the program with <computeroutput>options</computeroutput>.</para><para>If the program fails to compile, this function will throw an <link linkend="doxygen.header_reference.classboost_1_1compute_1_1opencl__error">opencl_error</link> exception. <programlisting language="c++">try {
    // attempt to compile to program
    <link linkend="doxygen.header_reference.classboost_1_1compute_1_1program_1a4f64827fd723e730ad223fe86e30c309">program</link>.build();
}
catch(<link linkend="doxygen.header_reference.classboost_1_1compute_1_1opencl__error">boost::compute::opencl_error</link> &amp;e){
    // program failed to compile, print out the build log
    std::cout &lt;&lt; <link linkend="doxygen.header_reference.classboost_1_1compute_1_1program_1a4f64827fd723e730ad223fe86e30c309">program</link>.build_log() &lt;&lt; std::endl;
}
</programlisting></para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a1335c2a08fc5d6d9b2f5e07e527ee7ab" name="compile"><type>void</type><parameter name="options"><paramtype>const std::string &amp;</paramtype><default>std::string()</default></parameter><parameter name="headers"><paramtype>const std::vector&lt; std::pair&lt; std::string, <classname>program</classname> &gt; &gt; &amp;</paramtype><default>std::vector&lt; std::pair&lt; std::string, program &gt; &gt;()</default></parameter><description><para>Compiles the program with <computeroutput>options</computeroutput>.</para><para><warning><para>This method is only available if the OpenCL version is 1.2 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1af5600ec070eb2838b22668a0256b0722" name="build_log" cv="const"><type>std::string</type><purpose>Returns the build log. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1af77053f8cdc3c3d820db73069eb37c62" name="create_kernel" cv="const"><type><classname>kernel</classname></type><parameter name="name"><paramtype>const std::string &amp;</paramtype></parameter><description><para>Creates and returns a new kernel object for <computeroutput>name</computeroutput>.</para><para>For example, to create the <computeroutput>"foo"</computeroutput> kernel (after the program has been created and built): <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1kernel">boost::compute::kernel</link> foo_kernel = foo_program.create_kernel("foo");
</programlisting> </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a6452082d347cb04adc905537724395a8" name="operator==" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>program</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the program is the same at <computeroutput>other</computeroutput>. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a9052f25f6a6279e506a589918342057f" name="operator!=" cv="const"><type>bool</type><parameter name="other"><paramtype>const <classname>program</classname> &amp;</paramtype></parameter><purpose>Returns <computeroutput>true</computeroutput> if the program is different from <computeroutput>other</computeroutput>. </purpose></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a6b5ace74143372faae6094069c44d3ba" name="link" specifiers="static"><type><classname>program</classname></type><parameter name="programs"><paramtype>const std::vector&lt; <classname>program</classname> &gt; &amp;</paramtype></parameter><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><parameter name="options"><paramtype>const std::string &amp;</paramtype><default>std::string()</default></parameter><description><para>Links the programs in <computeroutput>programs</computeroutput> with <computeroutput>options</computeroutput> in <computeroutput>context</computeroutput>.</para><para><warning><para>This method is only available if the OpenCL version is 1.2 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1ae8c5092400528f5b3b24a2fa06b50d6c" name="create_with_source" specifiers="static"><type><classname>program</classname></type><parameter name="source"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><description><para>Creates a new program with <computeroutput>source</computeroutput> in <computeroutput>context</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1ae331ca4aacd612fb4eeb042f59e097ee" name="create_with_source" specifiers="static"><type><classname>program</classname></type><parameter name="sources"><paramtype>const std::vector&lt; std::string &gt; &amp;</paramtype></parameter><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><description><para>Creates a new program with <computeroutput>sources</computeroutput> in <computeroutput>context</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1aab3b701a00d80281d70e1e79479b77b8" name="create_with_source_file" specifiers="static"><type><classname>program</classname></type><parameter name="file"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><description><para>Creates a new program with <computeroutput>file</computeroutput> in <computeroutput>context</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1aa2207eb40c0b8cb94abe98e25f9c617b" name="create_with_source_file" specifiers="static"><type><classname>program</classname></type><parameter name="files"><paramtype>const std::vector&lt; std::string &gt; &amp;</paramtype></parameter><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><description><para>Creates a new program with <computeroutput>files</computeroutput> in <computeroutput>context</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a19faee32269b9151fb03e853c1372151" name="create_with_binary" specifiers="static"><type><classname>program</classname></type><parameter name="binary"><paramtype>const unsigned char *</paramtype></parameter><parameter name="binary_size"><paramtype>size_t</paramtype></parameter><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><description><para>Creates a new program with <computeroutput>binary</computeroutput> of <computeroutput>binary_size</computeroutput> in <computeroutput>context</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a57c603fe356f72659b3571ad6297ab96" name="create_with_binary" specifiers="static"><type><classname>program</classname></type><parameter name="binary"><paramtype>const std::vector&lt; unsigned char &gt; &amp;</paramtype></parameter><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><description><para>Creates a new program with <computeroutput>binary</computeroutput> in <computeroutput>context</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1ab77ede0b4c33e24a9abef0b1c7978caf" name="create_with_binary_file" specifiers="static"><type><classname>program</classname></type><parameter name="file"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><description><para>Creates a new program with <computeroutput>file</computeroutput> in <computeroutput>context</computeroutput>.</para><para>See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a10d2b53fed3930707ef476985176a501" name="create_with_builtin_kernels" specifiers="static"><type><classname>program</classname></type><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><parameter name="devices"><paramtype>const std::vector&lt; <classname>device</classname> &gt; &amp;</paramtype></parameter><parameter name="kernel_names"><paramtype>const std::string &amp;</paramtype></parameter><description><para>Creates a new program with the built-in kernels listed in <computeroutput>kernel_names</computeroutput> for <computeroutput>devices</computeroutput> in <computeroutput>context</computeroutput>.</para><para><warning><para>This method is only available if the OpenCL version is 1.2 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a651d58f356a26f7af9834f506c03cbae" name="create_with_il" specifiers="static"><type><classname>program</classname></type><parameter name="il_binary"><paramtype>const void *</paramtype></parameter><parameter name="il_size"><paramtype>const size_t</paramtype></parameter><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><description><para>Creates a new program with <computeroutput>il_binary</computeroutput> (SPIR-V binary) of <computeroutput>il_size</computeroutput> size in <computeroutput>context</computeroutput>.</para><para><warning><para>This method is only available if the OpenCL version is 2.1 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a4c5816a263f6a74a805108a41e603f6c" name="create_with_il" specifiers="static"><type><classname>program</classname></type><parameter name="il_binary"><paramtype>const std::vector&lt; unsigned char &gt; &amp;</paramtype></parameter><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><description><para>Creates a new program with <computeroutput>il_binary</computeroutput> (SPIR-V binary) in <computeroutput>context</computeroutput>.</para><para><warning><para>This method is only available if the OpenCL version is 2.1 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1aad8775780ef7692042343cbaf67f7500" name="create_with_il_file" specifiers="static"><type><classname>program</classname></type><parameter name="file"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><description><para>Creates a new program in <computeroutput>context</computeroutput> using SPIR-V binary <computeroutput>file</computeroutput>.</para><para><warning><para>This method is only available if the OpenCL version is 2.1 or later.</para>
</warning>
See the documentation for </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a8024b4a11ecf79df018c476ec986d7cf" name="build_with_source" specifiers="static"><type><classname>program</classname></type><parameter name="source"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><parameter name="options"><paramtype>const std::string &amp;</paramtype><default>std::string()</default></parameter><purpose>Create a new program with <computeroutput>source</computeroutput> in <computeroutput>context</computeroutput> and builds it with <computeroutput>options</computeroutput>. </purpose><description><para>In case BOOST_COMPUTE_USE_OFFLINE_CACHE macro is defined, the compiled binary is stored for reuse in the offline cache located in $HOME/.boost_compute on UNIX-like systems and in APPDATA%/boost_compute on Windows. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a2503e9ea874f16db42975d783a5e4f28" name="build_with_source_file" specifiers="static"><type><classname>program</classname></type><parameter name="file"><paramtype>const std::string &amp;</paramtype></parameter><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><parameter name="options"><paramtype>const std::string &amp;</paramtype><default>std::string()</default></parameter><purpose>Create a new program with <computeroutput>file</computeroutput> in <computeroutput>context</computeroutput> and builds it with <computeroutput>options</computeroutput>. </purpose><description><para>In case BOOST_COMPUTE_USE_OFFLINE_CACHE macro is defined, the compiled binary is stored for reuse in the offline cache located in $HOME/.boost_compute on UNIX-like systems and in APPDATA%/boost_compute on Windows. </para></description></method>
</method-group>
<method-group name="private static functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1program_1a20809267e7a1db843d19a6d5a50cf3be" name="read_source_file" specifiers="static"><type>std::string</type><parameter name="file"><paramtype>const std::string &amp;</paramtype></parameter></method>
</method-group>
</class>








































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.random_8hpp" name="boost/compute/random.hpp">
<para>Meta-header to include all Boost.Compute random headers. </para></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><classname>command_queue</classname> &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_1a7839eaa209d39cea77dcd41dd1c2caa7" 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><classname>command_queue</classname> &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_1a53e00b6e0ce7ca66c3f66c9f1e3ca831" 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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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_1a3c817c9e087d18e73361dedc1bce9c30" 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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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_1adf2a3fda6c146d2062b545b46f292e16" 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><classname>command_queue</classname> &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_1a2c9897b4993cc71568a3cae83167e26e" 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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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><classname>command_queue</classname> &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_1a0782beed8ebeb299b05883acfc85f356" 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><classname>command_queue</classname> &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_1a05fee20a3059b67b7c58e5b990898e26" 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><classname>command_queue</classname> &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.svm_8hpp" name="boost/compute/svm.hpp">
<namespace name="boost">
<namespace name="compute">

<function id="doxygen.header_reference.svm_8hpp_1a491036858efc0c5123152d9acadba890" name="svm_alloc"><type>svm_ptr&lt; T &gt;</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><parameter name="size"><paramtype>size_t</paramtype></parameter><parameter name="flags"><paramtype>cl_svm_mem_flags</paramtype><default>CL_MEM_READ_WRITE</default></parameter><parameter name="alignment"><paramtype>unsigned int</paramtype><default>0</default></parameter><purpose>Allocates a shared virtual memory (SVM) buffer. </purpose><description><para><warning><para>This method is only available if the OpenCL version is 2.0 or later.</para>
</warning>
See the documentation for </para></description></function>
<function id="doxygen.header_reference.svm_8hpp_1a255906cdcabe24a70b6d9be2862eb96e" name="svm_free"><type>void</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="ptr"><paramtype>svm_ptr&lt; T &gt;</paramtype></parameter><description><para>Deallocates a shared virtual memory (SVM) buffer.</para><para><warning><para>This method is only available if the OpenCL version is 2.0 or later.</para>
</warning>
See the documentation for </para></description></function>
<function id="doxygen.header_reference.svm_8hpp_1a2f2d0ab0a312cbb7a8c1d70aea0f8f19" name="svm_free"><type>void</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><parameter name="ptr"><paramtype>svm_ptr&lt; T &gt;</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></function>





































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.system_8hpp" name="boost/compute/system.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1system" name="system"><purpose>Provides access to platforms and devices on the system. </purpose><description><para>The system class contains a set of static functions which provide access to the OpenCL platforms and compute devices on the host system.</para><para>The <link linkend="doxygen.header_reference.classboost_1_1compute_1_1system_1a7e1531ff30d091e9127eaa6d96cbb3b7">default_device()</link> convenience method automatically selects and returns the "best" compute device for the system following a set of heuristics and environment variables. This simplifies setup of the OpenCL enviornment.</para><para><formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1platform">platform</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1device">device</link>, <link linkend="doxygen.header_reference.classboost_1_1compute_1_1context">context</link> </para>
</formalpara>
</para></description><method-group name="public static functions">
<method id="doxygen.header_reference.classboost_1_1compute_1_1system_1a7e1531ff30d091e9127eaa6d96cbb3b7" name="default_device" specifiers="static"><type><classname>device</classname></type><description><para>Returns the default compute device for the system.</para><para>The default device is selected based on a set of heuristics and can be influenced using one of the following environment variables:</para><para><itemizedlist>
<listitem><para><computeroutput>BOOST_COMPUTE_DEFAULT_DEVICE</computeroutput> - name of the compute device (e.g. "GTX TITAN") </para>
</listitem>
<listitem><para><computeroutput>BOOST_COMPUTE_DEFAULT_DEVICE_TYPE</computeroutput> type of the compute device (e.g. "GPU" or "CPU") </para>
</listitem>
<listitem><para><computeroutput>BOOST_COMPUTE_DEFAULT_PLATFORM</computeroutput> - name of the platform (e.g. "NVIDIA CUDA") </para>
</listitem>
<listitem><para><computeroutput>BOOST_COMPUTE_DEFAULT_VENDOR</computeroutput> - name of the device vendor (e.g. "NVIDIA") </para>
</listitem>
<listitem><para><computeroutput>BOOST_COMPUTE_DEFAULT_ENFORCE</computeroutput> - If this is set to "1", then throw a no_device_found() exception if any of the above environment variables is set, but a matching device was not found.</para>
</listitem>
</itemizedlist>
The default device is determined once on the first time this function is called. Calling this function multiple times will always result in the same device being returned.</para><para>If no OpenCL device is found on the system, a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1no__device__found">no_device_found</link> exception is thrown.</para><para>For example, to print the name of the default compute device on the system: <programlisting language="c++">// get the default compute device
<link linkend="doxygen.header_reference.classboost_1_1compute_1_1device">boost::compute::device</link> device = <link linkend="doxygen.header_reference.classboost_1_1compute_1_1system_1a7e1531ff30d091e9127eaa6d96cbb3b7">boost::compute::system::default_device</link>();

// print the name of the device
std::cout &lt;&lt; "default device: " &lt;&lt; device.<link linkend="doxygen.header_reference.classboost_1_1compute_1_1device_1ab7dd5769bc63986ea4bfe6ebd1b69295">name</link>() &lt;&lt; std::endl;
</programlisting> </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1system_1ac1e672e68806fac394f599e20bb9851e" name="find_device" specifiers="static"><type><classname>device</classname></type><parameter name="name"><paramtype>const std::string &amp;</paramtype></parameter><description><para>Returns the device with <computeroutput>name</computeroutput>.</para><para>
</para></description><throws><simpara><classname>no_device_found</classname> if no device with <computeroutput>name</computeroutput> is found. </simpara>
</throws></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1system_1a6589507510ad9b5523da29a9be22a77b" name="devices" specifiers="static"><type>std::vector&lt; <classname>device</classname> &gt;</type><description><para>Returns a vector containing all of the compute devices on the system.</para><para>For example, to print out the name of each OpenCL-capable device available on the system: <programlisting language="c++">for(const auto &amp;device : <link linkend="doxygen.header_reference.classboost_1_1compute_1_1system_1a6589507510ad9b5523da29a9be22a77b">boost::compute::system::devices</link>()){
    std::cout &lt;&lt; device.name() &lt;&lt; std::endl;
}
</programlisting> </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1system_1ae87337c3f1872d457989c5746304e7d1" name="device_count" specifiers="static"><type>size_t</type><purpose>Returns the number of compute devices on the system. </purpose></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1system_1af1deeb26296a766b0e96880459e6ce91" name="default_context" specifiers="static"><type><classname>context</classname></type><description><para>Returns the default context for the system.</para><para>The default context is created for the default device on the system (as returned by <link linkend="doxygen.header_reference.classboost_1_1compute_1_1system_1a7e1531ff30d091e9127eaa6d96cbb3b7">default_device()</link>).</para><para>The default context is created once on the first time this function is called. Calling this function multiple times will always result in the same context object being returned. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1system_1a6196ebd5ef73c5ac11060487e5b79043" name="default_queue" specifiers="static"><type><classname>command_queue</classname> &amp;</type><parameter name="user_queue"><paramtype>const <classname>command_queue</classname> &amp;</paramtype><default>command_queue()</default></parameter><description><para>Returns the default command queue for the system.</para><para>If user-provided command queue is given, the system-wide default context and default device will be set up appropriately so that the default queue matches the default context and device.</para><para>If the OpenCL context and device associated with user-provided command queue does not match the default context and device that have already been set, a <link linkend="doxygen.header_reference.classboost_1_1compute_1_1set__default__queue__error">set_default_queue_error</link> exception is thrown. For example:</para><para><programlisting language="c++"/></para><para>The default queue is created once on the first time this function is called. Calling this function multiple times will always result in the same command queue object being returned. </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1system_1ad27c65975f74ebcb57fe9e0ff118df98" name="finish" specifiers="static"><type>void</type><description><para>Blocks until all outstanding computations on the default command queue are complete.</para><para>This is equivalent to: <programlisting language="c++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1system_1a6196ebd5ef73c5ac11060487e5b79043">system::default_queue</link>().<link linkend="doxygen.header_reference.classboost_1_1compute_1_1command__queue_1a562fa4aeee34d148a036456ffbf9ac49">finish</link>();
</programlisting> </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1system_1ad57f8e101db7f85d6f0a8e79911734a2" name="platforms" specifiers="static"><type>std::vector&lt; <classname>platform</classname> &gt;</type><description><para>Returns a vector containing each of the OpenCL platforms on the system.</para><para>For example, to print out the name of each OpenCL platform present on the system: <programlisting language="c++">for(const auto &amp;platform : <link linkend="doxygen.header_reference.classboost_1_1compute_1_1system_1ad57f8e101db7f85d6f0a8e79911734a2">boost::compute::system::platforms</link>()){
    std::cout &lt;&lt; platform.name() &lt;&lt; std::endl;
}
</programlisting> </para></description></method>
<method id="doxygen.header_reference.classboost_1_1compute_1_1system_1aaa8d78a2a12c0bfa54d061b5728c3afe" name="platform_count" specifiers="static"><type>size_t</type><purpose>Returns the number of compute platforms on the system. </purpose></method>
</method-group>
<method-group name="private static functions">
</method-group>
</class>








































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.type__traits_8hpp" name="boost/compute/type_traits.hpp">
</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_1a1e1ee3a20596343b1d639101f6dd6849" 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_1a4ca7bead954f39208ab8fd14c01195ed">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.types_8hpp" name="boost/compute/types.hpp">
<para>Meta-header to include all Boost.Compute types headers. </para></header>
<header id="doxygen.header_reference.struct_8hpp" name="boost/compute/types/struct.hpp">
<namespace name="boost">
<namespace name="compute">









































































































































</namespace>
</namespace>
<macro id="doxygen.header_reference.struct_8hpp_1a525e6ab6d127d3f3ae51c3c22479a488" name="BOOST_COMPUTE_ADAPT_STRUCT" kind="functionlike"><macro-parameter name="type"><description><para>The C++ type. </para></description></macro-parameter><macro-parameter name="name"><description><para>The OpenCL name. </para></description></macro-parameter><macro-parameter name="members"><description><para>A tuple of the struct's members.</para></description></macro-parameter><description><para>The BOOST_COMPUTE_ADAPT_STRUCT() macro makes a C++ struct/class available to OpenCL kernels.</para><para>
For example, to adapt a 2D particle struct with position (x, y) and velocity (dx, dy): <programlisting language="c++">// c++ struct definition
struct Particle
{
    float x, y;
    float dx, dy;
};

// adapt struct for OpenCL
BOOST_COMPUTE_ADAPT_STRUCT(Particle, Particle, (x, y, dx, dy))
</programlisting></para><para>After adapting the struct it can be used in Boost.Compute containers and with Boost.Compute algorithms: <programlisting language="c++">// create vector of particles
boost::compute::vector&lt;Particle&gt; particles = ...

// function to compare particles by their x-coordinate
BOOST_COMPUTE_FUNCTION(bool, sort_by_x, (Particle a, Particle b),
{
    return a.x &lt; b.x;
});

// sort particles by their x-coordinate
boost::compute::sort(
    particles.begin(), particles.end(), sort_by_x, queue
);
</programlisting></para><para>Due to differences in struct padding between the host compiler and the device compiler, the <computeroutput>BOOST_COMPUTE_ADAPT_STRUCT()</computeroutput> macro requires that the adapted struct is packed (i.e. no padding bytes between members).</para><para><formalpara><title>See Also:</title><para>type_name() </para>
</formalpara>
</para></description></macro>
</header>
<header id="doxygen.header_reference.user__event_8hpp" name="boost/compute/user_event.hpp">
<namespace name="boost">
<namespace name="compute">
<class id="doxygen.header_reference.classboost_1_1compute_1_1user__event" name="user_event"><inherit access="public">boost::compute::event</inherit><purpose>An user-created event. </purpose><description><para><warning><para>This method is only available if the OpenCL version is 1.1 or later.</para>
</warning>
<formalpara><title>See Also:</title><para><link linkend="doxygen.header_reference.classboost_1_1compute_1_1event">event</link> </para>
</formalpara>
</para></description><method-group name="public member functions">
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1user__event_1a9e8b667c1c0ec510ece3bfda4475017c" specifiers="explicit"><parameter name="context"><paramtype>const <classname>context</classname> &amp;</paramtype></parameter><description><para>Creates a new user-event object.</para><para>See the documentation for </para></description></constructor>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1user__event_1ad85e7daeb48401b9a1de2318736e8faf"><parameter name="other"><paramtype>const <classname>user_event</classname> &amp;</paramtype></parameter><purpose>Creates a new user-event from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1user__event_1a4ca6017e23587f25ca351d51030c31ab"><type><classname>user_event</classname> &amp;</type><parameter name="other"><paramtype>const <classname>user_event</classname> &amp;</paramtype></parameter><purpose>Copies the user-event from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<constructor id="doxygen.header_reference.classboost_1_1compute_1_1user__event_1afd0842f02e1a7edfbe73cb17cbc47f55" cv="noexcept"><parameter name="other"><paramtype><classname>user_event</classname> &amp;&amp;</paramtype></parameter><purpose>Move-constructs a new user event object from <computeroutput>other</computeroutput>. </purpose></constructor>
<copy-assignment id="doxygen.header_reference.classboost_1_1compute_1_1user__event_1a2283f4c6f37cfb95f6d920a28e49d323" cv="noexcept"><type><classname>user_event</classname> &amp;</type><parameter name="other"><paramtype><classname>user_event</classname> &amp;&amp;</paramtype></parameter><purpose>Move-assigns the user event from <computeroutput>other</computeroutput> to <computeroutput>*this</computeroutput>. </purpose></copy-assignment>
<method id="doxygen.header_reference.classboost_1_1compute_1_1user__event_1ada9763582af569101b0e5e8df50d6949" name="set_status"><type>void</type><parameter name="execution_status"><paramtype>cl_int</paramtype></parameter><description><para>Sets the execution status for the user-event.</para><para>See the documentation for </para></description></method>
</method-group>
</class>








































































































































</namespace>
</namespace>
</header>
<header id="doxygen.header_reference.utility_8hpp" name="boost/compute/utility.hpp">
</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_1accb3bfab8e3df786b5cf99598ef2dca7" name="size_type"><type>size_t</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a3fc7be8647201cef497d1e4ce11510bf" name="array_type"><type>boost::array&lt; size_t, N &gt;</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1extents_1ad916deb7604c388928c90acc89c8cd48" name="iterator"><type>array_type::iterator</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1extents_1a523dee1f07336992540ac793bb4e7bad" 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++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1extents_1a3b690142c5152a19830eec0a0181a077">extents&lt;3&gt;</link> 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++"><link linkend="doxygen.header_reference.classboost_1_1compute_1_1extents_1a3b690142c5152a19830eec0a0181a077">extents&lt;3&gt;</link> 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><classname>command_queue</classname> &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 <link linkend="doxygen.header_reference.classboost_1_1compute_1_1program">program</link> 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><link linkend="doxygen.header_reference.classboost_1_1compute_1_1program">program</link> </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; <classname>program</classname> &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; <classname>program</classname> &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 <classname>program</classname> &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 <classname>program</classname> &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><classname>program</classname></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 <classname>context</classname> &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 = <link linkend="doxygen.header_reference.classboost_1_1compute_1_1program_1ae8c5092400528f5b3b24a2fa06b50d6c">program::create_with_source</link>(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 <classname>context</classname> &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><link linkend="doxygen.header_reference.classboost_1_1compute_1_1event">event</link>, <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_1a56420babb4a0dd075c1177c7457bc433" name="iterator"><type>std::vector&lt; <classname>event</classname> &gt;::iterator</type></typedef>
<typedef id="doxygen.header_reference.classboost_1_1compute_1_1wait__list_1aec1d722d969dbef51e901f6ff4579669" name="const_iterator"><type>std::vector&lt; <classname>event</classname> &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 <classname>event</classname> &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; <classname>event</classname> &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 <classname>event</classname> &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 <classname>event</classname> &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><classname>event</classname> &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>
<header id="doxygen.header_reference.version_8hpp" name="boost/compute/version.hpp">
<macro id="doxygen.header_reference.version_8hpp_1a4952fde74bcf944ce849c298e135aba4" name="BOOST_COMPUTE_VERSION_MAJOR"/>
<macro id="doxygen.header_reference.version_8hpp_1a96e87dcefa8d2e0280c2903f1198d175" name="BOOST_COMPUTE_VERSION_MINOR"/>
<macro id="doxygen.header_reference.version_8hpp_1a2a4b23058133c1b8c0033cb46470caf8" name="BOOST_COMPUTE_VERSION_PATCH"/>
</header>
</library-reference>