Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <boost/compute/algorithm/copy.hpp>
- #include <boost/compute/container/vector.hpp>
- #include <boost/compute/types/struct.hpp>
- #include <boost/compute/algorithm/transform.hpp>
- namespace compute = boost::compute;
- struct Unit{
- bool center, left_up,
- up, right_up,
- right,right_down,
- down, left_down,
- left;
- };
- BOOST_COMPUTE_ADAPT_STRUCT(Unit, Unit, (center, left_up, up, right_up, right, right_down, down, left_down, left))
- int main(){
- compute::device device = compute::system::default_device();
- compute::context context(device);
- compute::command_queue queue(context, device);
- BOOST_COMPUTE_FUNCTION(bool, testing, (Unit a),{
- return false;
- });
- std::vector<Unit> t(1);
- t.push_back(Unit{true, true, true, true, true, true, true, true, true});
- compute::vector<Unit> dev_v(1, context);
- compute::vector<bool> dev_o(1, context);
- compute::copy(
- t.begin(), t.end(), dev_v.begin(), queue
- );
- std::vector<bool> host_v(1);
- compute::transform(dev_v.begin(), dev_v.end(), dev_o.begin(), testing, queue);
- compute::copy(
- dev_o.begin(), dev_o.end(), host_v.begin(), queue
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement