More traits for unary and binary operations #119
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR aims at adding more traits for unary and binary operations to
KokkosFFT_traits.hpp
.This will be applied in another PR to improve error handlings as commented in #80
Following modifications are made
Static assertion to Unary (
fftshift
,ifftshift
) and Binary (Plan
andfft
functions) APIs. Applications of new traits (unchecked tasks) would be done in another PR.is_view_operatable_v
for Unary operation (Views can be accessible fromExecspace
and the base value types arefloat/double/Kokkos::complex<float>/Kokkos::complex<double>
. In addition, layout is eitherKokkos::LayoutLeft
orKokkos::LayoutRight
.are_views_operatable_v
for Binary operation (Both Views areoperatable
and have the sameprecision
,layout
andrank
)have_same_precision_v
have_same_base_floating_point_type_v
for Binary operation (the values have the sameprecisionbase floating point type. For example,float
andKokkos::complex<float>
have the same precision)have_same_layout_v
for Binary operationhave_same_rank_v
for Binary operationare_views_operatable_v
to binary APIs. Exec space and memory space consistency, precision consistency, layout consistency and rank consistency.is_view_operatable_v
to unary APIs. Exec space and memory space consistency.