 struct bbox_transformation
 {
     __host__ __device__
-    bbox operator()(float2 point)
+    bbox operator()(point2d point)
     {
         return bbox(point, point);
     }

#include <thrust/device_vector.h>
#include <thrust/pair.h>

#include <cuda.h>    // for float2
#include <stdlib.h>  // for rand()


// This example shows how to compute a bounding box
// for a set of points in two dimensions.


// bounding box type
typedef thrust::pair<float2, float2> bbox;

// reduce a pair of bounding boxes (a,b) to a bounding box containing a and b
struct bbox_reduction

    const size_t N = 40;
    
    // allocate storage for points
    thrust::device_vector<point2d> points(N);

    // generate some random points in the unit square
    for(size_t i = 0; i < N; i++)
        points[i] = point2d( ((float) rand() / (RAND_MAX + 1.0)), ((float) rand() / (RAND_MAX + 1.0)) );

    // initial bounding box contains first point
    bbox init = bbox(points[0], points[0]);
