//============================================================================ // Copyright (c) Kitware, Inc. // All rights reserved. // See LICENSE.txt for details. // // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notice for more information. //============================================================================ #ifndef vtk_m_filter_Entropy_hxx #define vtk_m_filter_Entropy_hxx #include namespace vtkm { namespace filter { //----------------------------------------------------------------------------- inline VTKM_CONT Entropy::Entropy() : NumberOfBins(10) { this->SetOutputFieldName("entropy"); } //----------------------------------------------------------------------------- template inline VTKM_CONT vtkm::cont::DataSet Entropy::DoExecute( const vtkm::cont::DataSet& inDataSet, const vtkm::cont::ArrayHandle& field, const vtkm::filter::FieldMetadata& fieldMetadata, const vtkm::filter::PolicyBase&) { vtkm::worklet::FieldEntropy worklet; vtkm::Float64 e = worklet.Run(field, this->NumberOfBins); //the entropy vector only contain one element, the entorpy of the input field vtkm::cont::ArrayHandle entropy; entropy.Allocate(1); entropy.WritePortal().Set(0, e); return CreateResult(inDataSet, entropy, this->GetOutputFieldName(), fieldMetadata); } } } // namespace vtkm::filter #endif