Fixes for CrossProduct and DotProduct.

This commit is contained in:
Utkarsh Ayachit 2018-03-06 14:55:24 -05:00
parent 4fd3203bc2
commit d1a59aad20
2 changed files with 8 additions and 6 deletions

@ -43,15 +43,16 @@ inline VTKM_CONT vtkm::filter::Result CrossProduct::DoExecute(
const vtkm::filter::PolicyBase<DerivedPolicy>& policy, const vtkm::filter::PolicyBase<DerivedPolicy>& policy,
const DeviceAdapter&) const DeviceAdapter&)
{ {
vtkm::cont::ArrayHandle<vtkm::Vec<T, 3>, StorageType> outArray; vtkm::cont::ArrayHandle<vtkm::Vec<T, 3>> outArray;
vtkm::worklet::DispatcherMapField<vtkm::worklet::CrossProduct, DeviceAdapter> dispatcher( vtkm::worklet::DispatcherMapField<vtkm::worklet::CrossProduct, DeviceAdapter> dispatcher(
this->Worklet); this->Worklet);
vtkm::cont::ArrayHandle<vtkm::Vec<T, 3>, StorageType> secondaryField; vtkm::cont::ArrayHandle<vtkm::Vec<T, 3>> secondaryField;
try try
{ {
vtkm::filter::ApplyPolicy(inDataSet.GetField(SecondaryFieldName), policy) using Traits = vtkm::filter::FilterTraits<CrossProduct>;
vtkm::filter::ApplyPolicy(inDataSet.GetField(SecondaryFieldName), policy, Traits())
.CopyTo(secondaryField); .CopyTo(secondaryField);
} }
catch (const vtkm::cont::Error&) catch (const vtkm::cont::Error&)

@ -43,15 +43,16 @@ inline VTKM_CONT vtkm::filter::Result DotProduct::DoExecute(
const vtkm::filter::PolicyBase<DerivedPolicy>& policy, const vtkm::filter::PolicyBase<DerivedPolicy>& policy,
const DeviceAdapter&) const DeviceAdapter&)
{ {
vtkm::cont::ArrayHandle<T, StorageType> outArray; vtkm::cont::ArrayHandle<T> outArray;
vtkm::worklet::DispatcherMapField<vtkm::worklet::DotProduct, DeviceAdapter> dispatcher( vtkm::worklet::DispatcherMapField<vtkm::worklet::DotProduct, DeviceAdapter> dispatcher(
this->Worklet); this->Worklet);
vtkm::cont::ArrayHandle<vtkm::Vec<T, 3>, StorageType> secondaryField; vtkm::cont::ArrayHandle<vtkm::Vec<T, 3>> secondaryField;
try try
{ {
vtkm::filter::ApplyPolicy(inDataSet.GetField(SecondaryFieldName), policy) using Traits = vtkm::filter::FilterTraits<DotProduct>;
vtkm::filter::ApplyPolicy(inDataSet.GetField(SecondaryFieldName), policy, Traits())
.CopyTo(secondaryField); .CopyTo(secondaryField);
} }
catch (const vtkm::cont::Error&) catch (const vtkm::cont::Error&)