thrust::square

Defined in thrust/functional.h

template<typename T = void>
struct square

square is a function object. Specifically, it is an Adaptable Unary Function. If f is an object of class square<T>, and x is an object of class T, then f(x) returns x*x.

The following code snippet demonstrates how to use square to square the elements of a device_vector of floats.

#include <thrust/device_vector.h>
#include <thrust/functional.h>
#include <thrust/sequence.h>
#include <thrust/transform.h>
...
const int N = 1000;
thrust::device_vector<float> V1(N);
thrust::device_vector<float> V2(N);

thrust::sequence(V1.begin(), V1.end(), 1);

thrust::transform(V1.begin(), V1.end(), V2.begin(),
                  thrust::square<float>());
// V2 is now {1, 4, 9, ..., 1000000}

See also

unary_function

Template Parameters

T – is a model of Assignable, and if x is an object of type T, then x*x must be defined and must have a return type that is convertible to T.

Public Types

using argument_type = T
using result_type = T

Public Functions

inline constexpr T operator()(const T &x) const