ForwardTransform interface works. Maybe to give filters a class?

This commit is contained in:
Samuel Li 2016-07-06 21:39:29 -06:00
parent 765192e4e0
commit 68bd1d023b
2 changed files with 12 additions and 10 deletions

@ -64,8 +64,8 @@ public:
{
public:
typedef void ControlSignature(WholeArrayIn<ScalarAll>, // sigIn
WholeArrayIn<vtkm::Float64>, // lowFilter
WholeArrayIn<vtkm::Float64>, // highFilter
WholeArrayIn<Scalar>, // lowFilter
WholeArrayIn<Scalar>, // highFilter
FieldOut<ScalarAll>); // cA in even indices,
// cD in odd indices
typedef void ExecutionSignature(_1, _2, _3, _4, WorkIndex);
@ -93,14 +93,14 @@ public:
OutputCoeffType &coeffOut,
const vtkm::Id &workIndex) const
{
vtkm::Float64 tmp = static_cast<vtkm::Float64>(signalIn.Get(workIndex));
vtkm::Float64 tmp = static_cast<vtkm::Float64>(signalIn.Get( workIndex ));
if( workIndex % 2 == 0 ) // calculate cA, approximate coeffs
{
coeffOut = static_cast<OutputCoeffType>( tmp + lowFilter.Get(0) );
coeffOut = static_cast<OutputCoeffType>( tmp + lowFilter.Get( workIndex/2 ) );
}
else // calculate cD, detail coeffs
{
coeffOut = static_cast<OutputCoeffType>( tmp + highFilter.Get(0) );
coeffOut = static_cast<OutputCoeffType>( tmp + highFilter.Get( (workIndex-1)/2 ) );
}
}

@ -43,11 +43,11 @@ void TestWavelets()
// make two filter array handles
vtkm::cont::ArrayHandle<vtkm::Float64> lowFilter =
// vtkm::cont::make_ArrayHandle(vtkm::worklet::internal::hm4_44, 9);
vtkm::cont::make_ArrayHandle( tmpVector );
vtkm::cont::make_ArrayHandle(vtkm::worklet::internal::hm4_44, 9);
// vtkm::cont::make_ArrayHandle( tmpVector );
vtkm::cont::ArrayHandle<vtkm::Float64> highFilter =
// vtkm::cont::make_ArrayHandle(vtkm::worklet::internal::h4, 9);
vtkm::cont::make_ArrayHandle( tmpVector );
vtkm::cont::make_ArrayHandle(vtkm::worklet::internal::h4, 9);
// vtkm::cont::make_ArrayHandle( tmpVector );
vtkm::worklet::Wavelets::ForwardTransform forwardTransform;
@ -62,7 +62,9 @@ void TestWavelets()
for (vtkm::Id i = 0; i < outputArray1.GetNumberOfValues(); ++i)
{
std::cout<< outputArray1.GetPortalConstControl().Get(i) << std::endl;
std::cout << outputArray1.GetPortalConstControl().Get(i) << ", ";
if( i % 2 != 0 )
std::cout << std::endl;
// << outputArray2.GetPortalConstControl().Get(i) << std::endl;
// VTKM_TEST_ASSERT(
// test_equal( output1DArray.GetPortalConstControl().Get(i),