Skip to content

Commit 479d8a8

Browse files
ndellingwoodeeprude
authored andcommitted
minitensor: update ArithTraits namespace for KOKKOS_VERSION > 40799
Compatibility update corresponding to kokkos/kokkos-kernels#2771 Signed-off-by: Nathan Ellingwood <ndellin@sandia.gov>
1 parent 1e1f98d commit 479d8a8

File tree

4 files changed

+60
-0
lines changed

4 files changed

+60
-0
lines changed

packages/minitensor/src/MiniTensor_LinearAlgebra.t.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77
// *****************************************************************************
88
// @HEADER
99

10+
#if KOKKOS_VERSION > 40799
11+
#include "KokkosKernels_ArithTraits.hpp"
12+
#else
1013
#include "Kokkos_ArithTraits.hpp"
14+
#endif
1115
#if !defined(MiniTensor_LinearAlgebra_t_h)
1216
#define MiniTensor_LinearAlgebra_t_h
1317

@@ -4216,7 +4220,11 @@ polar_rotation(Tensor<T, N> const & A)
42164220
tol_scale = 0.01;
42174221

42184222
T const tol_conv =
4223+
#if KOKKOS_VERSION > 40799
4224+
KokkosKernels::ArithTraits<Index>::sqrt(dimension) * machine_epsilon<T>();
4225+
#else
42194226
Kokkos::ArithTraits<Index>::sqrt(dimension) * machine_epsilon<T>();
4227+
#endif
42204228

42214229
Tensor<T, N>
42224230
X = A;

packages/minitensor/src/MiniTensor_TensorBase.i.h

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,23 +346,43 @@ TensorBase<T, ST>::fill(Filler const value)
346346
case Filler::ZEROS:
347347
for (Index i = 0; i < number_components; ++i) {
348348
auto & entry = (*this)[i];
349+
#if KOKKOS_VERSION > 40799
350+
fill_AD<T>(entry, KokkosKernels::ArithTraits<S>::zero());
351+
#else
349352
fill_AD<T>(entry, Kokkos::ArithTraits<S>::zero());
353+
#endif
354+
#if KOKKOS_VERSION > 40799
355+
entry = KokkosKernels::ArithTraits<S>::zero();
356+
#else
350357
entry = Kokkos::ArithTraits<S>::zero();
358+
#endif
351359
}
352360
break;
353361

354362
case Filler::ONES:
355363
for (Index i = 0; i < number_components; ++i) {
356364
auto & entry = (*this)[i];
365+
#if KOKKOS_VERSION > 40799
366+
fill_AD<T>(entry, KokkosKernels::ArithTraits<S>::zero());
367+
#else
357368
fill_AD<T>(entry, Kokkos::ArithTraits<S>::zero());
369+
#endif
370+
#if KOKKOS_VERSION > 40799
371+
entry = KokkosKernels::ArithTraits<S>::one();
372+
#else
358373
entry = Kokkos::ArithTraits<S>::one();
374+
#endif
359375
}
360376
break;
361377

362378
case Filler::SEQUENCE:
363379
for (Index i = 0; i < number_components; ++i) {
364380
auto & entry = (*this)[i];
381+
#if KOKKOS_VERSION > 40799
382+
fill_AD<T>(entry, KokkosKernels::ArithTraits<S>::zero());
383+
#else
365384
fill_AD<T>(entry, Kokkos::ArithTraits<S>::zero());
385+
#endif
366386
entry = static_cast<S>(i);
367387
}
368388
break;
@@ -379,7 +399,11 @@ TensorBase<T, ST>::fill(Filler const value)
379399
KOKKOS_IF_ON_HOST((
380400
for (Index i = 0; i < number_components; ++i) {
381401
auto & entry = (*this)[i];
402+
#if KOKKOS_VERSION > 40799
403+
fill_AD<T>(entry, KokkosKernels::ArithTraits<S>::zero());
404+
#else
382405
fill_AD<T>(entry, Kokkos::ArithTraits<S>::zero());
406+
#endif
383407
entry = random<S>();
384408
}
385409
break;
@@ -392,7 +416,11 @@ TensorBase<T, ST>::fill(Filler const value)
392416
KOKKOS_IF_ON_HOST((
393417
for (Index i = 0; i < number_components; ++i) {
394418
auto & entry = (*this)[i];
419+
#if KOKKOS_VERSION > 40799
420+
fill_AD<T>(entry, KokkosKernels::ArithTraits<S>::zero());
421+
#else
395422
fill_AD<T>(entry, Kokkos::ArithTraits<S>::zero());
423+
#endif
396424
entry = random_uniform<S>();
397425
}
398426
break;
@@ -405,7 +433,11 @@ TensorBase<T, ST>::fill(Filler const value)
405433
KOKKOS_IF_ON_HOST((
406434
for (Index i = 0; i < number_components; ++i) {
407435
auto & entry = (*this)[i];
436+
#if KOKKOS_VERSION > 40799
437+
fill_AD<T>(entry, KokkosKernels::ArithTraits<S>::zero());
438+
#else
408439
fill_AD<T>(entry, Kokkos::ArithTraits<S>::zero());
440+
#endif
409441
entry = random_normal<S>();
410442
}
411443
break;
@@ -438,7 +470,11 @@ TensorBase<T, ST>::fill(T const & s)
438470

439471
for (Index i = 0; i < number_components; ++i) {
440472
auto & entry = (*this)[i];
473+
#if KOKKOS_VERSION > 40799
474+
fill_AD<T>(entry, KokkosKernels::ArithTraits<S>::zero());
475+
#else
441476
fill_AD<T>(entry, Kokkos::ArithTraits<S>::zero());
477+
#endif
442478
entry = s;
443479
}
444480

packages/minitensor/src/MiniTensor_Utilities.i.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@
1313
#include <cfloat>
1414
#include <cmath>
1515
#include <limits>
16+
#if KOKKOS_VERSION > 40799
17+
#include "KokkosKernels_ArithTraits.hpp"
18+
#else
1619
#include "Kokkos_ArithTraits.hpp"
20+
#endif
1721
#include "Teuchos_ScalarTraits.hpp"
1822

1923
namespace minitensor {
@@ -101,7 +105,11 @@ typename Sacado::ScalarType<T>::type
101105
not_a_number()
102106
{
103107
using S = typename Sacado::ScalarType<T>::type;
108+
#if KOKKOS_VERSION > 40799
109+
return KokkosKernels::ArithTraits<S>::nan();
110+
#else
104111
return Kokkos::ArithTraits<S>::nan();
112+
#endif
105113
}
106114

107115
//
@@ -116,7 +124,11 @@ typename Sacado::ScalarType<T>::type
116124
machine_epsilon()
117125
{
118126
using S = typename Sacado::ScalarType<T>::type;
127+
#if KOKKOS_VERSION > 40799
128+
return KokkosKernels::ArithTraits<S>::epsilon();
129+
#else
119130
return Kokkos::ArithTraits<S>::epsilon();
131+
#endif
120132
}
121133

122134
//

packages/minitensor/src/MiniTensor_Vector.i.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77
// *****************************************************************************
88
// @HEADER
99

10+
#if KOKKOS_VERSION > 40799
11+
#include "KokkosKernels_ArithTraits.hpp"
12+
#else
1013
#include "Kokkos_ArithTraits.hpp"
14+
#endif
1115
#if !defined(MiniTensor_Vector_i_h)
1216
#define MiniTensor_Vector_i_h
1317

0 commit comments

Comments
 (0)