diff --git a/vtkm/worklet/Wavelets.h b/vtkm/worklet/Wavelets.h index 609d32176..bab0aa1c7 100644 --- a/vtkm/worklet/Wavelets.h +++ b/vtkm/worklet/Wavelets.h @@ -66,11 +66,12 @@ public: typedef void ControlSignature(WholeArrayIn, // sigIn WholeArrayIn, // lowFilter WholeArrayIn, // highFilter - FieldOut); // cA in even indices, cD in odd indices + FieldOut); // cA in even indices, + // cD in odd indices typedef void ExecutionSignature(_1, _2, _3, _4, WorkIndex); typedef _1 InputDomain; - typedef vtkm::Float64 FLOAT; +// typedef vtkm::Float64 FLOAT; // ForwardTransform constructor VTKM_CONT_EXPORT @@ -92,12 +93,12 @@ public: OutputCoeffType &coeffOut, const vtkm::Id &workIndex) const { - FLOAT tmp = static_cast(signalIn.Get(workIndex)); - if( workIndex % 2 == 0 ) // work on cA, approximate coeffs + vtkm::Float64 tmp = static_cast(signalIn.Get(workIndex)); + if( workIndex % 2 == 0 ) // calculate cA, approximate coeffs { - coeffOut = static_cast( tmpi + lowFilter.Get(0) ); + coeffOut = static_cast( tmp + lowFilter.Get(0) ); } - else // work on cD, detail coeffs + else // calculate cD, detail coeffs { coeffOut = static_cast( tmp + highFilter.Get(0) ); } diff --git a/vtkm/worklet/testing/UnitTestWavelets.cxx b/vtkm/worklet/testing/UnitTestWavelets.cxx index 85e6614e3..927df2980 100644 --- a/vtkm/worklet/testing/UnitTestWavelets.cxx +++ b/vtkm/worklet/testing/UnitTestWavelets.cxx @@ -30,24 +30,33 @@ void TestWavelets() { std::cout << "Testing Wavelets Worklet" << std::endl; - vtkm::Id arraySize = 10; - std::vector tmpVector; + vtkm::Id arraySize = 18; + + // make input data array handle + std::vector tmpVector; for( vtkm::Id i = 0; i < arraySize; i++ ) - tmpVector.push_back(static_cast(i)); + tmpVector.push_back( 0.0 ); - - vtkm::cont::ArrayHandle input1DArray = + vtkm::cont::ArrayHandle input1DArray = vtkm::cont::make_ArrayHandle(tmpVector); - vtkm::cont::ArrayHandle outputArray1; -/* - outputArray1.Allocate( arraySize ); - vtkm::cont::ArrayHandle outputArray2; - outputArray2.Allocate( arraySize ); -*/ + vtkm::cont::ArrayHandle outputArray1; + + // make two filter array handles + vtkm::cont::ArrayHandle lowFilter = +// vtkm::cont::make_ArrayHandle(vtkm::worklet::internal::hm4_44, 9); + vtkm::cont::make_ArrayHandle( tmpVector ); + vtkm::cont::ArrayHandle highFilter = +// vtkm::cont::make_ArrayHandle(vtkm::worklet::internal::h4, 9); + vtkm::cont::make_ArrayHandle( tmpVector ); + vtkm::worklet::Wavelets::ForwardTransform forwardTransform; - vtkm::worklet::DispatcherMapField dispatcher(forwardTransform); - dispatcher.Invoke(input1DArray, outputArray1); + vtkm::worklet::DispatcherMapField + dispatcher(forwardTransform); + dispatcher.Invoke(input1DArray, + lowFilter, + highFilter, + outputArray1); std::cerr << "Invoke succeeded" << std::endl;