/* * Copyright 2008-2012 NVIDIA Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once #include #include #include #include #include namespace thrust { namespace detail { namespace functional { template __host__ __device__ actor< composite< binary_operator, actor, typename as_actor::type > > operator&&(const actor &_1, const T2 &_2) { return compose(binary_operator(), make_actor(_1), make_actor(_2)); } // end operator&&() template __host__ __device__ actor< composite< binary_operator, typename as_actor::type, actor > > operator&&(const T1 &_1, const actor &_2) { return compose(binary_operator(), make_actor(_1), make_actor(_2)); } // end operator&&() template __host__ __device__ actor< composite< binary_operator, actor, actor > > operator&&(const actor &_1, const actor &_2) { return compose(binary_operator(), make_actor(_1), make_actor(_2)); } // end operator&&() template __host__ __device__ actor< composite< binary_operator, actor, typename as_actor::type > > operator||(const actor &_1, const T2 &_2) { return compose(binary_operator(), make_actor(_1), make_actor(_2)); } // end operator&&() template __host__ __device__ actor< composite< binary_operator, typename as_actor::type, actor > > operator||(const T1 &_1, const actor &_2) { return compose(binary_operator(), make_actor(_1), make_actor(_2)); } // end operator&&() template __host__ __device__ actor< composite< binary_operator, actor, actor > > operator||(const actor &_1, const actor &_2) { return compose(binary_operator(), make_actor(_1), make_actor(_2)); } // end operator&&() template __host__ __device__ actor< composite< unary_operator, actor > > operator!(const actor &_1) { return compose(unary_operator(), _1); } // end operator!() } // end functional } // end detail } // end thrust