10#ifndef TPETRA_DETAILS_RANDOM_HPP
11#define TPETRA_DETAILS_RANDOM_HPP
13#include "TpetraCore_config.h"
14#include "Kokkos_Random.hpp"
19template<
class ExecutionSpace>
20class Static_Random_XorShift64_Pool {
24 static void resetPool(
int mpi_rank);
29 static Kokkos::Random_XorShift64_Pool<ExecutionSpace> & getPool();
33#ifdef KOKKOS_ENABLE_CUDA
35class Static_Random_XorShift64_Pool<typename Kokkos::CudaSpace::execution_space> {
37 static void resetPool(
int mpi_rank);
39 static Kokkos::Random_XorShift64_Pool<typename Kokkos::CudaSpace::execution_space> & getPool();
44#ifdef KOKKOS_ENABLE_HIP
46class Static_Random_XorShift64_Pool<typename Kokkos::HIPSpace::execution_space> {
48 static void resetPool(
int mpi_rank);
50 static Kokkos::Random_XorShift64_Pool<typename Kokkos::HIPSpace::execution_space> & getPool();
55#ifdef KOKKOS_ENABLE_SYCL
57class Static_Random_XorShift64_Pool<typename Kokkos::Experimental::SYCLDeviceUSMSpace::execution_space> {
59 static void resetPool(
int mpi_rank);
61 static Kokkos::Random_XorShift64_Pool<typename Kokkos::Experimental::SYCLDeviceUSMSpace::execution_space> & getPool();
65#ifdef KOKKOS_ENABLE_OPENMP
67class Static_Random_XorShift64_Pool<typename Kokkos::OpenMP> {
69 static void resetPool(
int mpi_rank);
71 static Kokkos::Random_XorShift64_Pool<typename Kokkos::OpenMP> & getPool();
75#ifdef KOKKOS_ENABLE_SERIAL
77class Static_Random_XorShift64_Pool<typename Kokkos::Serial> {
79 static void resetPool(
int mpi_rank);
81 static Kokkos::Random_XorShift64_Pool<typename Kokkos::Serial> & getPool();
Nonmember function that computes a residual Computes R = B - A * X.
Namespace Tpetra contains the class and methods constituting the Tpetra library.