doesn't compile, try on Alaska
This commit is contained in:
parent
f785fcb18f
commit
765192e4e0
@ -66,11 +66,12 @@ public:
|
||||
typedef void ControlSignature(WholeArrayIn<ScalarAll>, // sigIn
|
||||
WholeArrayIn<vtkm::Float64>, // lowFilter
|
||||
WholeArrayIn<vtkm::Float64>, // highFilter
|
||||
FieldOut<ScalarAll>); // cA in even indices, cD in odd indices
|
||||
FieldOut<ScalarAll>); // 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<FLOAT>(signalIn.Get(workIndex));
|
||||
if( workIndex % 2 == 0 ) // work on cA, approximate coeffs
|
||||
vtkm::Float64 tmp = static_cast<vtkm::Float64>(signalIn.Get(workIndex));
|
||||
if( workIndex % 2 == 0 ) // calculate cA, approximate coeffs
|
||||
{
|
||||
coeffOut = static_cast<OutputCoeffType>( tmpi + lowFilter.Get(0) );
|
||||
coeffOut = static_cast<OutputCoeffType>( tmp + lowFilter.Get(0) );
|
||||
}
|
||||
else // work on cD, detail coeffs
|
||||
else // calculate cD, detail coeffs
|
||||
{
|
||||
coeffOut = static_cast<OutputCoeffType>( tmp + highFilter.Get(0) );
|
||||
}
|
||||
|
@ -30,24 +30,33 @@ void TestWavelets()
|
||||
{
|
||||
std::cout << "Testing Wavelets Worklet" << std::endl;
|
||||
|
||||
vtkm::Id arraySize = 10;
|
||||
std::vector<vtkm::Float32> tmpVector;
|
||||
vtkm::Id arraySize = 18;
|
||||
|
||||
// make input data array handle
|
||||
std::vector<vtkm::Float64> tmpVector;
|
||||
for( vtkm::Id i = 0; i < arraySize; i++ )
|
||||
tmpVector.push_back(static_cast<vtkm::Float32>(i));
|
||||
tmpVector.push_back( 0.0 );
|
||||
|
||||
|
||||
vtkm::cont::ArrayHandle<vtkm::Float32> input1DArray =
|
||||
vtkm::cont::ArrayHandle<vtkm::Float64> input1DArray =
|
||||
vtkm::cont::make_ArrayHandle(tmpVector);
|
||||
vtkm::cont::ArrayHandle<vtkm::Float32> outputArray1;
|
||||
/*
|
||||
outputArray1.Allocate( arraySize );
|
||||
vtkm::cont::ArrayHandle<vtkm::Float32> outputArray2;
|
||||
outputArray2.Allocate( arraySize );
|
||||
*/
|
||||
vtkm::cont::ArrayHandle<vtkm::Float64> outputArray1;
|
||||
|
||||
// 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::ArrayHandle<vtkm::Float64> highFilter =
|
||||
// vtkm::cont::make_ArrayHandle(vtkm::worklet::internal::h4, 9);
|
||||
vtkm::cont::make_ArrayHandle( tmpVector );
|
||||
|
||||
|
||||
vtkm::worklet::Wavelets::ForwardTransform forwardTransform;
|
||||
vtkm::worklet::DispatcherMapField<vtkm::worklet::Wavelets::ForwardTransform> dispatcher(forwardTransform);
|
||||
dispatcher.Invoke(input1DArray, outputArray1);
|
||||
vtkm::worklet::DispatcherMapField<vtkm::worklet::Wavelets::ForwardTransform>
|
||||
dispatcher(forwardTransform);
|
||||
dispatcher.Invoke(input1DArray,
|
||||
lowFilter,
|
||||
highFilter,
|
||||
outputArray1);
|
||||
|
||||
std::cerr << "Invoke succeeded" << std::endl;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user