70fcd1d1 Update CoordinateSystem to use the Virtual Array
950b12b1 Add ArrayHandleVirtualCoordinates
a4d0b57b Make ForEachValidDevice internal
59dc78fd Add ErrorBadDevice
4810cef7 Field::SetData should accept any ArrayHandle type
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1021
d07c696b vtkMath.h now opts out of clang-format to make updates through pyexpander easy
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1052
* Add FindDeviceAdapterTagAndCall
* Add support for multiple arguments to be passed to the functor in
'ForEachValidDevice' and 'FindDeviceAdapterTagAndCall'.
a9e64c4b FloatPointReturnType is float if 'T' is < 32bytes instead of being double.
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Acked-by: Thomas Otahal <tjotaha@sandia.gov>
Merge-request: !1048
fe9594c1 Add hint to read source code for help
c3889a1a Give better error reporting when an Invoke parameter is wrong
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1022
In trying to give error diagnostics with template definitions of invalid
types, the user encounters some pretty confusing error messages at
first. There is no way to get the compiler to give exactly the
diagnostics we want in a nice readable error message, so we are putting
some verbose instructions as comments in the code. However, a user might
not know to look at the source code since the error happens deep in an
unfamiliar (and complicated) class. Thus, add (yet another) error at the
front that gives a (hopefully) clear indication to look at the source
code for help in understanding the errors.
When one of the parameters to DispatcherBase::Invoke is incorrect, you
get an error in a strange place. It is deep in a call stack using some
heavily templated types rather than where the Invoke is actually called.
Formerly, the code was structured to give a very obfuscated error
message. Try to make this easier on users by first adding helpful hints
in the code around where the error is to explain why the error occured
and helpful advice on how to track down the problem. Second, reconfigure
the static_assert so that the compiler gives a readable error message.
Third, add some auxiliary error messages that provide additional
information about the types and classes involved in the error.
f1d351f2 Updated FunctionInterfaceDetailPre.h based on pyexpander output
e90dfd93 Merge branch 'increase-worklet-arguments' of https://gitlab.kitware.com/mletter1/vtk-m into increase-worklet-arguments
172a1ba0 Merge branch 'master' of https://gitlab.kitware.com/vtk/vtk-m into increase-worklet-arguments
104f5418 Revert "updated based on pyexpander output"
6908952f updated based on pyexpander output
c3737c72 Merge branch 'master' into increase-worklet-arguments
d9c51d65 increased the number of arguments to worklets
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Acked-by: Matt Larsen <mlarsen@cs.uoregon.edu>
Merge-request: !1049
There were some recent changes to supress some CUDA errors in (among
many other places) some Math.h functions. These changes were done to
Math.h, but they also need to be reflected in Math.h.in so we can
continue to mainting the automatically generated functions.
Previously FloatPointReturnType would always be double for types that
are not float, which caused Int8/Int16 types to promote to double instead
of float.
When using vtkm::dot on narrow types you easily rollover the values.
Instead the result type of vtkm::dot should be wide enough to store the results
(32bits) when this occurs.
Fixes#193
MultiBlock now uses `diy::reduce` for reductions rather than using proxy
collectives. To support using `diy::reduce` operations on a
vtkm::cont::MultiBlock, added AssignerMultiBlock and
DecomposerMultiBlock classes. This are helper classes that provide DIY
concepts on top of a existing MultiBlock.
vtkm::Bounds and vtkm::Range now uses default copy-constructor and
assignment operator. That way `std::is_trivially_copyable` succeeds for
these basic types.