Correct the implementation of DeviceAdapterAlgorithmGeneral::Unique
The implementation of the simplified version of DeviceAdapterAlgorithmGeneral::Unique had two errors. First, the implementation is such that it calls the more complex version of Unique (which specifies a binary predicate to establish equality). However, it was not calling the Unique method in the DerivedAlgorithm like it should have been. Instead, it was calling its own Unique algorithm, which might not be as efficient as the specialized Unique for the device. Second, it was using std::equal_to as its binary predicate. Using functors from std can be dangerous because they are not marked with VTKM_EXEC, so have the potential to not work in the execution environment. Instead, use the readily available vtkm::Equal binary predicate.
Showing with 2 additions and 1 deletion