vtk-m/vtkm
Kenneth Moreland 723c9ed2f0 Support Fill for ArrayHandleStride
Previously, if you called `Fill` on an `ArrayHandleStride`, you would get
an exception that said the feature was not supported. It turns out that
filling values is very useful in situations where, for example, you need to
initialize an array when processing an unknown type (and thus dealing with
extracted components).

This implementation of `Fill` first attempts to call `Fill` on the
contained array. This only works if the stride is set to 1. If this does
not work, then the code leverages the precompiled `ArrayCopy`. It does this
by first creating a new `ArrayHandleStride` containing the fill value and a
modulo of 1 so that value is constantly repeated. It then reconstructs an
`ArrayHandleStride` for itself with a modified size and offset to match the
start and end indices.

Referencing the `ArrayCopy` was tricky because it kept creating circular
dependencies among `ArrayHandleStride`, `ArrayExtractComponent`, and
`UnknownArrayHandle`. These dependencies were broken by having
`ArrayHandleStride` directly use the internal `ArrayCopyUnknown` function
and to use a forward declaration of `UnknownArrayHandle` rather than
including its header.
2024-02-02 13:50:21 -05:00
..
cont Support Fill for ArrayHandleStride 2024-02-02 13:50:21 -05:00
exec Deprecate the GetCounts() method in Keys objects 2024-01-25 16:13:54 -05:00
filter Merge topic 'partitionedRendering' 2024-01-05 11:37:23 -05:00
internal clang-tidy: fix modernize-redundant-void-arg lints 2023-12-01 07:01:11 -05:00
interop support more volume types via array element conversion + ensure scalar data 2023-12-11 11:16:12 -06:00
io Continue transfer of Users' Guide text 2023-11-21 10:33:45 -07:00
random Add module mechanism 2022-10-26 12:51:05 -06:00
rendering add this-> 2024-01-03 17:43:26 -05:00
source Oscillator: use a type of the right size for oIdx 2023-12-01 07:01:11 -05:00
testing Implement VecTraits class for all types 2023-03-16 12:59:38 -06:00
thirdparty loguru: do not declare an install interface 2023-12-04 11:34:19 -05:00
worklet Deprecate the GetCounts() method in Keys objects 2024-01-25 16:13:54 -05:00
.gitattributes
Assert.h Disable VTKM_ASSERT when using HIP 2020-09-25 11:06:57 -04:00
Atomic.h Switch Kokkos atomic functions to use desul library 2023-06-28 14:34:54 -04:00
BinaryOperators.h Make BinaryOperators/Predicates more flexible. 2019-12-18 15:51:59 -05:00
BinaryPredicates.h Make BinaryOperators/Predicates more flexible. 2019-12-18 15:51:59 -05:00
Bitset.h Add unittest for particlearraycopy 2020-06-18 15:45:36 -04:00
Bounds.h revert superfluous corners distance 2024-01-04 14:13:01 -07:00
CellClassification.h Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
CellShape.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
CellTraits.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
CMakeLists.txt Remove deprecated features from VTK-m 2022-11-17 07:12:31 -06:00
Deprecated.h Disable deprecation for MSVC 2017 2021-04-26 12:47:44 -06:00
ErrorCode.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
Flags.h Update the developing algorithms section of the user's guide 2023-12-08 08:50:18 -05:00
Geometry.h
Geometry.hxx Update vtkm/Geometry.hxx to follow clangs rules on function markup 2020-09-25 09:37:46 -04:00
Hash.h
ImplicitFunction.h Update the developing algorithms section of the user's guide 2023-12-08 08:50:18 -05:00
List.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
LowerBound.h split vtkm/Algorithms.h into UpperBound.h, LowerBound.h, and BinarySearch.h 2021-04-07 18:53:09 +00:00
Math.h Fix unresolved external symbol __popcnt on win-arm64 2022-11-27 19:51:17 -05:00
Math.h.in Fix unresolved external symbol __popcnt on win-arm64 2022-11-27 19:46:13 -05:00
Matrix.h Break LUP factorization when invalid matrix found 2021-07-12 10:29:46 -06:00
NewtonsMethod.h
Pair.h
Particle.h Removing particle property num punctures 2023-08-16 18:23:22 -07:00
Range.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
RangeId2.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
RangeId3.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
RangeId.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
StaticAssert.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
Swap.h Fix compile issues when using cuda 12 2023-02-06 12:26:55 -05:00
TopologyElementTag.h clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
Transform3D.h
Tuple.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
Tuple.h.in Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
TypeList.h Enable reinterpreting UnknownArrayHandle to compatible C types 2021-01-13 09:19:27 -07:00
Types.h Add VTK-m User's Guide to source 2023-10-17 11:31:27 -04:00
TypeTraits.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
UnaryPredicates.h
UpperBound.h split vtkm/Algorithms.h into UpperBound.h, LowerBound.h, and BinarySearch.h 2021-04-07 18:53:09 +00:00
VecAxisAlignedPointCoordinates.h Add VecFlat class 2020-12-16 17:22:44 -07:00
VecFlat.h Implement VecTraits class for all types 2023-03-16 12:59:38 -06:00
VecFromPortal.h Improve = operators in VecFromPortal 2023-08-08 21:43:01 -04:00
VecFromPortalPermute.h
VectorAnalysis.h Avoid floating point exception in Orthonormalize 2021-07-12 10:29:46 -06:00
VecTraits.h Add advanced types chapter to user's guide 2023-12-18 14:22:40 -07:00
VecVariable.h Generalize fields for particle advection 2020-07-20 21:15:46 -04:00
Version.h.in
vtkm.module Add module mechanism 2022-10-26 12:51:05 -06:00