Template Struct logical_not

Struct Documentation

template<typename T>
struct logical_not

logical_not is a function object. Specifically, it is an Adaptable Predicate, which means it is a function object that tests the truth or falsehood of some condition. If f is an object of class logical_not<T> and x is an object of class T (where T is convertible to bool) then f(x) returns true if and only if x is false.

The following code snippet demonstrates how to use

logical_not to transform a device_vector of bools into its logical complement.
Template Parameters
  • T: must be convertible to bool.

#include <thrust/device_vector.h>
#include <thrust/transform.h>
#include <thrust/functional.h>
...
thrust::device_vector<bool> V;
...
thrust::transform(V.begin(), V.end(), V.begin(), thrust::logical_not<bool>());
// The elements of V are now the logical complement of what they were prior

See

http://www.sgi.com/tech/stl/logical_not.html

See

unary_function

Public Types

typedef first_argument_type

The type of the function object’s first argument.

typedef second_argument_type

The type of the function object’s second argument.

typedef result_type

The type of the function object’s result;.

Public Functions

__host__ __device__ bool thrust::logical_not::operator()(const T & x) const

Function call operator. The return value is !x.