 
 //  >
 CollOfBool equelleCUDA::operator>(const CollOfScalar& lhs, const CollOfScalar& rhs) {
-    CollOfBool out(lhs.size());
-    bool* out_ptr = thrust::raw_pointer_cast( &out[0] );
-    kernelSetup s = lhs.setup();
-    comp_collGTcoll_kernel<<<s.grid,s.block>>>(out_ptr, lhs.data(), rhs.data(), lhs.size());
-    return out;
+    return ( lhs.val_ > rhs.val_ );
 }
 
 CollOfBool equelleCUDA::operator>(const CollOfScalar& lhs, const Scalar rhs) {
-    CollOfBool out(lhs.size());
-    bool* out_ptr = thrust::raw_pointer_cast( &out[0] );
-    kernelSetup s = lhs.setup();
-    comp_collGTscal_kernel<<<s.grid, s.block>>>(out_ptr, lhs.data(), rhs, lhs.size());
-    return out;
+    return ( lhs.val_ > rhs );
 }
 
 CollOfBool equelleCUDA::operator>(const Scalar lhs, const CollOfScalar& rhs) {
-    CollOfBool out(rhs.size());
-    bool* out_ptr = thrust::raw_pointer_cast( &out[0] );
-    kernelSetup s = rhs.setup();
-    comp_scalGTcoll_kernel<<<s.grid, s.block>>>(out_ptr, lhs, rhs.data(), rhs.size());
-    return out;
+    return ( lhs > rhs.val_ );
 }
 
 

}

CollOfScalar equelleCUDA::operator/(const Scalar lhs, const CollOfScalar& rhs) {
    CollOfScalar out = rhs;
    kernelSetup s = out.setup();
    divScalCollection_kernel<<<s.grid,s.block>>>(out.data(), lhs, out.size());
    return out;
}

CollOfScalar equelleCUDA::operator-(const CollOfScalar& arg) {


// >=
CollOfBool equelleCUDA::operator>=(const CollOfScalar& lhs, const CollOfScalar& rhs) {
    return ( lhs.val_ >= rhs.val_ );
}

CollOfBool equelleCUDA::operator>=(const CollOfScalar& lhs, const Scalar rhs) {
    return ( lhs.val_ >= rhs );
}

CollOfBool equelleCUDA::operator>=(const Scalar lhs, const CollOfScalar& rhs) {
    return ( lhs >= rhs.val_ );
}


