vtk-m/vtkm/cont
Kenneth Moreland 58fc99c2f8 Fix fast paths for ArrayRangeCompute
The precompiled `ArrayRangeCompute` function was not following proper fast
paths for special arrays. For example, when computing the range of an
`ArrayHandleUniformPointCoordinates`, the ranges should be taken from the
origin and spacing of the special array. However, the precompiled version
was calling the generic range computation, which was doing an unnecessary
reduction over the entire array. These fast paths have been fixed.

These mistakes in the code were caused by quirks in how templated method
overloading works. To prevent this mistake from happening again in the
precompiled `ArrayRangeCompute` function and elsewhere, all templated forms
of `ArrayRangeCompute` have been deprecated. Most will call
`ArrayRangeCompute` with no issues. For those that need the templated
version, `ArrayRangeComputeTemplate` replaces the old templated
`ArrayRangeCompute`. There is exactly one templated declaration of
`ArrayRangeComputeTemplate` that uses a class, `ArrayRangeComputeImpl`,
with partial specialization to ensure the correct form is used.
2023-03-08 12:36:53 -07:00
..
arg Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
cuda cmake: namespace vtkm export targets 2022-12-09 18:46:56 -05:00
internal Remove NUMA regions option 2023-01-30 09:53:57 -07:00
kokkos Fix for building SERIAL unit tests with KOKKOS_HIP/CUDA enabled 2023-02-20 08:28:34 -06:00
openmp cmake: namespace vtkm export targets 2022-12-09 18:46:56 -05:00
serial Remove deprecated virtual methods 2022-10-28 10:56:52 -06:00
tbb cmake: namespace vtkm export targets 2022-12-09 18:46:56 -05:00
testing Fix fast paths for ArrayRangeCompute 2023-03-08 12:36:53 -07:00
testlib Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
Algorithm.h Deprecate ArrayHandle::GetDeviceAdapterId 2021-07-28 12:51:51 -06:00
ArrayCopy.cxx Add ArrayCopy specialization for Counting and Permutation array 2022-01-24 12:17:23 -07:00
ArrayCopy.h Add ArrayCopy specialization for Counting and Permutation array 2022-01-24 12:17:23 -07:00
ArrayCopyDevice.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ArrayExtractComponent.h Use types for different options in PA filters. 2022-06-23 15:25:31 -04:00
ArrayGetValues.cxx Better fallback for ArrayGetValue 2022-01-03 10:08:39 -07:00
ArrayGetValues.h Better fallback for ArrayGetValue 2022-01-03 10:08:39 -07:00
ArrayHandle.cxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ArrayHandle.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ArrayHandleBasic.cxx Make new style of ArrayHandle the expected style 2021-01-12 07:17:53 -07:00
ArrayHandleBasic.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ArrayHandleBitField.h Allow ArrayHandle to have a runtime selectable number of buffers 2022-07-11 07:48:25 -06:00
ArrayHandleCartesianProduct.h Fix fast paths for ArrayRangeCompute 2023-03-08 12:36:53 -07:00
ArrayHandleCast.h Fix range warning in ArrayHandleCast 2022-02-01 11:42:16 -07:00
ArrayHandleCompositeVector.h Force functions passed as templates to be functors 2023-01-03 13:56:29 -07:00
ArrayHandleConcatenate.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ArrayHandleConstant.h Fix fast paths for ArrayRangeCompute 2023-03-08 12:36:53 -07:00
ArrayHandleCounting.h Fix fast paths for ArrayRangeCompute 2023-03-08 12:36:53 -07:00
ArrayHandleDecorator.h Allow ArrayHandle to have a runtime selectable number of buffers 2022-07-11 07:48:25 -06:00
ArrayHandleDiscard.h Allow ArrayHandle to have a runtime selectable number of buffers 2022-07-11 07:48:25 -06:00
ArrayHandleExtractComponent.h Merge topic 'resizable-arrayhandle-buffer-vec' 2022-07-12 12:04:24 -04:00
ArrayHandleGroupVec.h Allow ArrayHandle to have a runtime selectable number of buffers 2022-07-11 07:48:25 -06:00
ArrayHandleGroupVecVariable.h Correct documentation about ArrayHandles with Vec-like values 2023-02-16 12:46:34 -07:00
ArrayHandleImplicit.h Allow ArrayHandle to have a runtime selectable number of buffers 2022-07-11 07:48:25 -06:00
ArrayHandleIndex.h Fix fast paths for ArrayRangeCompute 2023-03-08 12:36:53 -07:00
ArrayHandleMultiplexer.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ArrayHandleOffsetsToNumComponents.h Allow ArrayHandle to have a runtime selectable number of buffers 2022-07-11 07:48:25 -06:00
ArrayHandlePermutation.h Allow ArrayHandle to have a runtime selectable number of buffers 2022-07-11 07:48:25 -06:00
ArrayHandleRandomStandardNormal.h
ArrayHandleRandomUniformBits.h
ArrayHandleRandomUniformReal.h
ArrayHandleRecombineVec.h Correct documentation about ArrayHandles with Vec-like values 2023-02-16 12:46:34 -07:00
ArrayHandleReverse.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ArrayHandleRuntimeVec.h Automatically convert between ArrayHandleBasic and ArrayHandleRuntimeVec 2023-02-20 07:39:49 -07:00
ArrayHandleSOA.cxx Support ArrayHandleSOA only for Vec value types 2021-01-06 13:20:58 -07:00
ArrayHandleSOA.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ArrayHandleStride.cxx Make new style of ArrayHandle the expected style 2021-01-12 07:17:53 -07:00
ArrayHandleStride.h Add ability to resize ArrayHandleStride 2023-01-18 14:29:23 -06:00
ArrayHandleSwizzle.h Simplify ArrayHandleSwizzle 2020-11-25 09:28:49 -07:00
ArrayHandleTransform.h Allow ArrayHandle to have a runtime selectable number of buffers 2022-07-11 07:48:25 -06:00
ArrayHandleUniformPointCoordinates.cxx Fix fast paths for ArrayRangeCompute 2023-03-08 12:36:53 -07:00
ArrayHandleUniformPointCoordinates.h Fix fast paths for ArrayRangeCompute 2023-03-08 12:36:53 -07:00
ArrayHandleView.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ArrayHandleXGCCoordinates.h Allow ArrayHandle to have a runtime selectable number of buffers 2022-07-11 07:48:25 -06:00
ArrayHandleZip.h Allow ArrayHandle to have a runtime selectable number of buffers 2022-07-11 07:48:25 -06:00
ArrayPortal.h
ArrayPortalToIterators.h
ArrayRangeCompute.cxx Fix fast paths for ArrayRangeCompute 2023-03-08 12:36:53 -07:00
ArrayRangeCompute.h Fix fast paths for ArrayRangeCompute 2023-03-08 12:36:53 -07:00
ArrayRangeComputeTemplate.h Fix fast paths for ArrayRangeCompute 2023-03-08 12:36:53 -07:00
AssignerPartitionedDataSet.cxx
AssignerPartitionedDataSet.h Fix doxygen groups 2022-09-09 10:37:31 +08:00
AtomicArray.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
BitField.cxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
BitField.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
BoundsCompute.cxx
BoundsCompute.h
BoundsGlobalCompute.cxx
BoundsGlobalCompute.h
CastAndCall.h Deprecate old methods from DynamicCellSet 2022-01-05 08:18:17 -07:00
CellLocatorBoundingIntervalHierarchy.cxx Deprecate old methods from DynamicCellSet 2022-01-05 08:18:17 -07:00
CellLocatorBoundingIntervalHierarchy.h Define LastCell type in cell locator structure 2022-08-05 12:43:50 -06:00
CellLocatorChooser.h Deprecate DynamicCellSet and remove from code 2022-01-04 15:38:18 -07:00
CellLocatorGeneral.cxx Deprecate DynamicCellSet and remove from code 2022-01-04 15:38:18 -07:00
CellLocatorGeneral.h Expose the Variant helper class 2022-11-01 07:52:41 -06:00
CellLocatorPartitioned.cxx Support providing a Token to ReadPortal and WritePortal 2022-11-01 09:29:17 -06:00
CellLocatorPartitioned.h add partitioned cell locator 2022-11-01 11:08:18 +01:00
CellLocatorRectilinearGrid.cxx Deprecate old methods from DynamicCellSet 2022-01-05 08:18:17 -07:00
CellLocatorRectilinearGrid.h Define LastCell type in cell locator structure 2022-08-05 12:43:50 -06:00
CellLocatorTwoLevel.cxx Deprecate old methods from DynamicCellSet 2022-01-05 08:18:17 -07:00
CellLocatorTwoLevel.h Define LastCell type in cell locator structure 2022-08-05 12:43:50 -06:00
CellLocatorUniformBins.cxx Add a new unstructured cell locator 2022-11-22 09:51:40 -05:00
CellLocatorUniformBins.h Add a new unstructured cell locator 2022-11-22 09:51:40 -05:00
CellLocatorUniformGrid.cxx Deprecate old methods from DynamicCellSet 2022-01-05 08:18:17 -07:00
CellLocatorUniformGrid.h Define LastCell type in cell locator structure 2022-08-05 12:43:50 -06:00
CellSet.cxx
CellSet.h Store UnknownCellSet instead of DynamicCellSet in DataSet 2022-01-03 13:52:30 -07:00
CellSetExplicit.cxx CellSetExplicit: reword warning message 2021-11-01 12:33:41 -04:00
CellSetExplicit.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
CellSetExplicit.hxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
CellSetExtrude.cxx Response to code review. 2021-03-12 21:14:50 +00:00
CellSetExtrude.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
CellSetList.h
CellSetPermutation.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
CellSetSingleType.h Suppress deprecation warning for CellSetSingleType::GetCellShape 2021-09-17 09:48:26 -06:00
CellSetStructured.cxx
CellSetStructured.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
CMakeLists.txt Add ArrayHandleRuntimeVec 2023-02-16 07:04:10 -07:00
ColorTable.cxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ColorTable.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ColorTableMap.h Compile more sources without device compiler 2022-01-03 08:23:04 -07:00
ColorTablePresets.cxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ColorTableSamples.h
ConvertNumComponentsToOffsets.cxx Precompile ConvertNumComponentsToOffsets 2021-09-16 14:27:14 -06:00
ConvertNumComponentsToOffsets.h Precompile ConvertNumComponentsToOffsets 2021-09-16 14:27:14 -06:00
CoordinateSystem.cxx Coordinate systems are stored as Fields 2022-11-11 06:17:58 -07:00
CoordinateSystem.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
DataSet.cxx Simplify serialization of DataSet objects 2023-03-03 09:17:44 -07:00
DataSet.h Simplify serialization of DataSet objects 2023-03-03 09:17:44 -07:00
DataSetBuilderCurvilinear.cxx Add helper class to build curvilinear datasets. 2021-06-09 13:50:01 -04:00
DataSetBuilderCurvilinear.h Clarify dimension values for 2d, 1d. fix test 2021-06-09 16:16:34 -04:00
DataSetBuilderExplicit.cxx
DataSetBuilderExplicit.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
DataSetBuilderRectilinear.cxx
DataSetBuilderRectilinear.h Fix slow ArrayCopy calls 2022-01-24 14:15:45 -07:00
DataSetBuilderUniform.cxx
DataSetBuilderUniform.h
DefaultTypes.h.in Add ability to convert fields to known types 2021-08-19 07:10:20 -06:00
DeviceAdapter.h Remove ArrayManagerExecution 2020-12-08 13:18:44 -07:00
DeviceAdapterAlgorithm.h Clarify ScanExtended 2021-09-17 09:09:38 -06:00
DeviceAdapterList.h
DeviceAdapterTag.cxx
DeviceAdapterTag.h
EnvironmentTracker.cxx
EnvironmentTracker.h
Error.h Set what string in Error::SetMessage 2021-03-29 06:04:22 -06:00
ErrorBadAllocation.h
ErrorBadDevice.cxx
ErrorBadDevice.h
ErrorBadType.cxx
ErrorBadType.h Deprecate VariantArrayHandle 2021-04-07 16:12:38 -06:00
ErrorBadValue.h
ErrorExecution.h
ErrorFilterExecution.h
ErrorInternal.h
ErrorUserAbort.h Add Abort execution feature 2023-02-06 14:29:58 -05:00
ExecutionAndControlObjectBase.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
ExecutionObjectBase.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
Field.cxx Change of Field::Association names. 2022-08-29 06:40:42 -04:00
Field.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
FieldRangeCompute.cxx Compile more sources without device compiler 2022-01-03 08:23:04 -07:00
FieldRangeCompute.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
FieldRangeGlobalCompute.cxx
FieldRangeGlobalCompute.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
Initialize.cxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
Initialize.h update vtkm initialize flags to have 'vtkm' prefix and deprecate old flags 2021-04-29 00:58:50 +00:00
Invoker.h
Logging.cxx Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
Logging.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
MergePartitionedDataSet.cxx Update use of field association enumerations 2022-03-17 11:02:37 -06:00
MergePartitionedDataSet.h add merge partitioned dataset capability 2021-10-18 15:37:13 -06:00
ParticleArrayCopy.cxx
ParticleArrayCopy.h Support for dist-memory pathlines. 2021-02-05 09:40:50 -05:00
ParticleArrayCopy.hxx Hide Particle class members 2022-12-13 13:19:21 -05:00
PartitionedDataSet.cxx Use {} initialization of FieldCollection. 2022-08-29 16:53:17 -04:00
PartitionedDataSet.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
PointLocatorSparseGrid.cxx Fix slow ArrayCopy calls 2022-01-24 14:15:45 -07:00
PointLocatorSparseGrid.h Compile more sources without device compiler 2022-01-03 08:23:04 -07:00
RuntimeDeviceInformation.cxx Remove NUMA regions option 2023-01-30 09:53:57 -07:00
RuntimeDeviceInformation.h implement return codes and protected virtual parsing of arguments 2021-06-23 17:58:38 +00:00
RuntimeDeviceTracker.cxx Add Abort execution feature 2023-02-06 14:29:58 -05:00
RuntimeDeviceTracker.h Add Abort execution feature 2023-02-06 14:29:58 -05:00
SerializableTypeString.h Add missing types to serialization of UnknownArrayHandle 2021-01-13 09:19:34 -07:00
Serialization.h
Storage.cxx Add standard support for read-only storage 2020-12-10 13:39:28 -07:00
Storage.h Allow ArrayHandle to have a runtime selectable number of buffers 2022-07-11 07:48:25 -06:00
StorageList.h Unify common storage types 2021-05-13 08:18:33 -06:00
Timer.cxx Fix intermittent UnitTestTimer failures with CUDA 2022-07-12 08:52:12 -06:00
Timer.h Fix intermittent UnitTestTimer failures with CUDA 2022-07-12 08:52:12 -06:00
Token.cxx
Token.h
TryExecute.cxx Add Abort execution feature 2023-02-06 14:29:58 -05:00
TryExecute.h Add Abort execution feature 2023-02-06 14:29:58 -05:00
UncertainArrayHandle.h Merge topic 'less-brigand' 2022-02-10 20:36:50 -05:00
UncertainCellSet.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
UnknownArrayHandle.cxx Automatically convert between ArrayHandleBasic and ArrayHandleRuntimeVec 2023-02-20 07:39:49 -07:00
UnknownArrayHandle.h Automatically convert between ArrayHandleBasic and ArrayHandleRuntimeVec 2023-02-20 07:39:49 -07:00
UnknownCellSet.cxx Fix some copy/paste errors with comments and variable names 2021-12-16 08:20:42 -07:00
UnknownCellSet.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
Variant.h Expose the Variant helper class 2022-11-01 07:52:41 -06:00
vtkm.module Add Abort execution feature 2023-02-06 14:29:58 -05:00